{"action":"opened","issue":{"url":"https://api.github.com/repos/aorin/15-pelin-ratkaisija/issues/2","labels_url":"https://api.github.com/repos/aorin/15-pelin-ratkaisija/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/aorin/15-pelin-ratkaisija/issues/2/comments","events_url":"https://api.github.com/repos/aorin/15-pelin-ratkaisija/issues/2/events","html_url":"https://github.com/aorin/15-pelin-ratkaisija/issues/2","id":110467501,"number":2,"title":"Koodikatselmointi 2","user":{"login":"prodprod","id":1929123,"avatar_url":"https://avatars.githubusercontent.com/u/1929123?v=3","gravatar_id":"","url":"https://api.github.com/users/prodprod","html_url":"https://github.com/prodprod","followers_url":"https://api.github.com/users/prodprod/followers","following_url":"https://api.github.com/users/prodprod/following{/other_user}","gists_url":"https://api.github.com/users/prodprod/gists{/gist_id}","starred_url":"https://api.github.com/users/prodprod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prodprod/subscriptions","organizations_url":"https://api.github.com/users/prodprod/orgs","repos_url":"https://api.github.com/users/prodprod/repos","events_url":"https://api.github.com/users/prodprod/events{/privacy}","received_events_url":"https://api.github.com/users/prodprod/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-08T14:46:12Z","updated_at":"2015-10-08T14:46:12Z","closed_at":null,"body":"Hei! Tämä katselmointi koskee 8.10.2015 16:50 ladattua ohjelman versiota.\r\n\r\nOhjelman käyttäminen on näppärää. Diggaan erityisesti ratkaisun visualisaatiosta. Ratkaisua olisi kylläkin kiva pystyä kelaamaan siirto kerrallaan eteenpäin omaan tahtiin. Tällä hetkellä ratkaisua on vähän hankala seurata.\r\n\r\nItse koodin rakenne on selkeä ja luokkajako on hyvin mietitty. Monet ohjelman toiminnan kannalta keskeiset metodit ovat kuitenkin yhä vailla kommentteja. Esimerkiksi IDAStar-luokan search-metodilla ei ole vielä minkäänlaisia kommentteja, vaikka se on käytännössä luokan tärkein metodi. Kommentit voisivat kertoa myös ehkä vähän enemmän itse metodin toimintaperiaatteesta. SolvabilityDeterminer-luokan metodin puzzeIsSolvable (ilmeisesti muuten kirjoitettu väärin) javadocissa olisi esimerkiksi kiva antaa vähän infoa siitä miten pelin ratkaisemisen mahdollisuus oikeasti selvitetään. Metodin palautusarvon määräytyminen on muuten aika kryptistä.  \r\n\r\npuzzeIsSolvable laskee myös pelilaudan leveyden komennolla puzzle.values.length() Puzzle-luokan oman metodin n() sijaan. Tämän metodin käyttäminen tekisi koodista helppolukuisempaa (ja konsistentimpaa). Luokan Puzzle metodi n() on myös perusluonteeltaan getteri, joten loogisempi nimi olisi esim. getN tai joku vastaava. \r\n\r\nTestit vaikuttavat hyvin kirjoitetuilta ja kattavilta. Luokkaa List ei kuitenkaan ole vielä näköjään testattu ollenkaan. Sen testaaminen olisi ehkä suotavaa.\r\n\r\nKaikin puolin ohjelma vaikuttaa todella hyvältä, on vaikeaa löytää siitä mitään moitittavaa. Heuristiikkojenkin toteutus on kivan modulaarinen; uusien heuristiikkojen lisäys olisi helppoa rakenteen johdosta. Great work!\r\n\r\n"}}