{"action":"created","issue":{"url":"https://api.github.com/repos/novoda/novoda/issues/31","repository_url":"https://api.github.com/repos/novoda/novoda","labels_url":"https://api.github.com/repos/novoda/novoda/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/novoda/novoda/issues/31/comments","events_url":"https://api.github.com/repos/novoda/novoda/issues/31/events","html_url":"https://github.com/novoda/novoda/pull/31","id":166988588,"number":31,"title":"[Swift] style guide - discuss inheritance over composition issue","user":{"login":"amlcurran","id":666285,"avatar_url":"https://avatars.githubusercontent.com/u/666285?v=3","gravatar_id":"","url":"https://api.github.com/users/amlcurran","html_url":"https://github.com/amlcurran","followers_url":"https://api.github.com/users/amlcurran/followers","following_url":"https://api.github.com/users/amlcurran/following{/other_user}","gists_url":"https://api.github.com/users/amlcurran/gists{/gist_id}","starred_url":"https://api.github.com/users/amlcurran/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amlcurran/subscriptions","organizations_url":"https://api.github.com/users/amlcurran/orgs","repos_url":"https://api.github.com/users/amlcurran/repos","events_url":"https://api.github.com/users/amlcurran/events{/privacy}","received_events_url":"https://api.github.com/users/amlcurran/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2016-07-22T07:46:18Z","updated_at":"2016-07-25T09:02:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/novoda/novoda/pulls/31","html_url":"https://github.com/novoda/novoda/pull/31","diff_url":"https://github.com/novoda/novoda/pull/31.diff","patch_url":"https://github.com/novoda/novoda/pull/31.patch"},"body":"This PR is to discuss what I raised in https://github.com/novoda/novoda/pull/21#discussion_r71110639.\r\n\r\nEssentially, using extensions to group protocol conformance is a nice idea in practise but makes it far more difficult to see that, in fact, this is very bad practise. Whilst the code _looking_ nicely organised, this violates the [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) and also we should promote [composition over inheritance](https://en.wikipedia.org/wiki/Composition_over_inheritance). I don't agree that, whilst this is common practise in iOS code, it is a practise that should be replicated.\r\n\r\nMy proposal is to prefer making multiple protocol conformance explicit by forcing it to be explicit. That way it is far easier to see the issue in the code, and by making it more painful to read the code, people should be more inclined to refactor this to a better solution"},"comment":{"url":"https://api.github.com/repos/novoda/novoda/issues/comments/234896511","html_url":"https://github.com/novoda/novoda/pull/31#issuecomment-234896511","issue_url":"https://api.github.com/repos/novoda/novoda/issues/31","id":234896511,"user":{"login":"wltrup","id":1015142,"avatar_url":"https://avatars.githubusercontent.com/u/1015142?v=3","gravatar_id":"","url":"https://api.github.com/users/wltrup","html_url":"https://github.com/wltrup","followers_url":"https://api.github.com/users/wltrup/followers","following_url":"https://api.github.com/users/wltrup/following{/other_user}","gists_url":"https://api.github.com/users/wltrup/gists{/gist_id}","starred_url":"https://api.github.com/users/wltrup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wltrup/subscriptions","organizations_url":"https://api.github.com/users/wltrup/orgs","repos_url":"https://api.github.com/users/wltrup/repos","events_url":"https://api.github.com/users/wltrup/events{/privacy}","received_events_url":"https://api.github.com/users/wltrup/received_events","type":"User","site_admin":false},"created_at":"2016-07-25T09:02:51Z","updated_at":"2016-07-25T09:02:51Z","body":"That conflict is now propagating itself into all the other PRs. :("}}
{"actor":{"display_login":"wltrup"}}