{"action":"opened","issue":{"url":"https://api.github.com/repos/sim642/shy/issues/37","repository_url":"https://api.github.com/repos/sim642/shy","labels_url":"https://api.github.com/repos/sim642/shy/issues/37/labels{/name}","comments_url":"https://api.github.com/repos/sim642/shy/issues/37/comments","events_url":"https://api.github.com/repos/sim642/shy/issues/37/events","html_url":"https://github.com/sim642/shy/issues/37","id":153173744,"number":37,"title":"Phase 2 feedback","user":{"login":"sim642","id":378740,"avatar_url":"https://avatars.githubusercontent.com/u/378740?v=3","gravatar_id":"","url":"https://api.github.com/users/sim642","html_url":"https://github.com/sim642","followers_url":"https://api.github.com/users/sim642/followers","following_url":"https://api.github.com/users/sim642/following{/other_user}","gists_url":"https://api.github.com/users/sim642/gists{/gist_id}","starred_url":"https://api.github.com/users/sim642/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sim642/subscriptions","organizations_url":"https://api.github.com/users/sim642/orgs","repos_url":"https://api.github.com/users/sim642/repos","events_url":"https://api.github.com/users/sim642/events{/privacy}","received_events_url":"https://api.github.com/users/sim642/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/sim642/shy/labels/cli","name":"cli","color":"fbca04"},{"url":"https://api.github.com/repos/sim642/shy/labels/refactor","name":"refactor","color":"b60205"},{"url":"https://api.github.com/repos/sim642/shy/labels/storage","name":"storage","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/sim642/shy/milestones/3","html_url":"https://github.com/sim642/shy/milestones/Phase%203","labels_url":"https://api.github.com/repos/sim642/shy/milestones/3/labels","id":1624606,"number":3,"title":"Phase 3","description":"","creator":{"login":"sim642","id":378740,"avatar_url":"https://avatars.githubusercontent.com/u/378740?v=3","gravatar_id":"","url":"https://api.github.com/users/sim642","html_url":"https://github.com/sim642","followers_url":"https://api.github.com/users/sim642/followers","following_url":"https://api.github.com/users/sim642/following{/other_user}","gists_url":"https://api.github.com/users/sim642/gists{/gist_id}","starred_url":"https://api.github.com/users/sim642/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sim642/subscriptions","organizations_url":"https://api.github.com/users/sim642/orgs","repos_url":"https://api.github.com/users/sim642/repos","events_url":"https://api.github.com/users/sim642/events{/privacy}","received_events_url":"https://api.github.com/users/sim642/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":0,"state":"open","created_at":"2016-03-06T17:34:23Z","updated_at":"2016-05-05T06:09:24Z","due_on":"2016-05-15T21:00:00Z","closed_at":null},"comments":0,"created_at":"2016-05-05T06:09:24Z","updated_at":"2016-05-05T06:09:24Z","closed_at":null,"body":"- [ ] `NestedFileLocator` class on omaette suht mõttetu, võiks `GitFileLocator`iga kokku panna. Sügavad _inheritance_ hierarhiad on PITA, võiks vältida. Liigne funktsionaalsus, mida tegelikult vaja ei lähe, on ainult _maintenance overhead_. _You ain't gonna need it_ (YAGNI). Vähem koodi on parem kood.\r\n- [ ] `ee.shy.map` defineerib hunniku _interface_'si, väga uhketes hierarhiates. Selliste asjadega mängimine on lõbus, aga siin võiks tõsiselt üle mõelda, kas sellel ka praktiline väärtus on (ja kui on, siis kas piisav). Mõnikord on _concrete implementation_ lihtsalt mõistlikum - koodist saab kohe peale vaadates aru ja _mental overhead_ on väiksem. See on väga väärtuslik omadus.\r\n- [ ] `CheckState` annotatsioon tundub _overkill_. Kas ei piisaks, kui teha\r\n\r\n    ```java\r\n    interface Validated {\r\n        void assertValid();\r\n    }\r\n    ```\r\nja siis `CheckStateTypeAdapterFactory` lihtsalt teeb `instanceof + assertValid`? Vähem _magic_, IDE oskab `assertValid` usages näidata jne. Miks `@Required` lihtsalt `CheckState` kontrollides _implement_-itud ei ole, st miks on loodud kaks sama eesmärgiga mehanismi?\r\n- [ ] _Feature request_: `status` _command_, mis ütleb, mis failid on _commit_-i hakkavad minema. (#36)"}}