{"action":"created","issue":{"url":"https://api.github.com/repos/Zhouzi/logicalornot/issues/5","labels_url":"https://api.github.com/repos/Zhouzi/logicalornot/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/Zhouzi/logicalornot/issues/5/comments","events_url":"https://api.github.com/repos/Zhouzi/logicalornot/issues/5/events","html_url":"https://github.com/Zhouzi/logicalornot/pull/5","id":124170825,"number":5,"title":"Refactoring following the MVP pattern","user":{"login":"Zhouzi","id":2291025,"avatar_url":"https://avatars.githubusercontent.com/u/2291025?v=3","gravatar_id":"","url":"https://api.github.com/users/Zhouzi","html_url":"https://github.com/Zhouzi","followers_url":"https://api.github.com/users/Zhouzi/followers","following_url":"https://api.github.com/users/Zhouzi/following{/other_user}","gists_url":"https://api.github.com/users/Zhouzi/gists{/gist_id}","starred_url":"https://api.github.com/users/Zhouzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zhouzi/subscriptions","organizations_url":"https://api.github.com/users/Zhouzi/orgs","repos_url":"https://api.github.com/users/Zhouzi/repos","events_url":"https://api.github.com/users/Zhouzi/events{/privacy}","received_events_url":"https://api.github.com/users/Zhouzi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"clemp6r","id":4757677,"avatar_url":"https://avatars.githubusercontent.com/u/4757677?v=3","gravatar_id":"","url":"https://api.github.com/users/clemp6r","html_url":"https://github.com/clemp6r","followers_url":"https://api.github.com/users/clemp6r/followers","following_url":"https://api.github.com/users/clemp6r/following{/other_user}","gists_url":"https://api.github.com/users/clemp6r/gists{/gist_id}","starred_url":"https://api.github.com/users/clemp6r/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clemp6r/subscriptions","organizations_url":"https://api.github.com/users/clemp6r/orgs","repos_url":"https://api.github.com/users/clemp6r/repos","events_url":"https://api.github.com/users/clemp6r/events{/privacy}","received_events_url":"https://api.github.com/users/clemp6r/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-12-29T06:37:38Z","updated_at":"2015-12-29T08:37:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Zhouzi/logicalornot/pulls/5","html_url":"https://github.com/Zhouzi/logicalornot/pull/5","diff_url":"https://github.com/Zhouzi/logicalornot/pull/5.diff","patch_url":"https://github.com/Zhouzi/logicalornot/pull/5.patch"},"body":""},"comment":{"url":"https://api.github.com/repos/Zhouzi/logicalornot/issues/comments/167745176","html_url":"https://github.com/Zhouzi/logicalornot/pull/5#issuecomment-167745176","issue_url":"https://api.github.com/repos/Zhouzi/logicalornot/issues/5","id":167745176,"user":{"login":"clemp6r","id":4757677,"avatar_url":"https://avatars.githubusercontent.com/u/4757677?v=3","gravatar_id":"","url":"https://api.github.com/users/clemp6r","html_url":"https://github.com/clemp6r","followers_url":"https://api.github.com/users/clemp6r/followers","following_url":"https://api.github.com/users/clemp6r/following{/other_user}","gists_url":"https://api.github.com/users/clemp6r/gists{/gist_id}","starred_url":"https://api.github.com/users/clemp6r/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clemp6r/subscriptions","organizations_url":"https://api.github.com/users/clemp6r/orgs","repos_url":"https://api.github.com/users/clemp6r/repos","events_url":"https://api.github.com/users/clemp6r/events{/privacy}","received_events_url":"https://api.github.com/users/clemp6r/received_events","type":"User","site_admin":false},"created_at":"2015-12-29T08:37:51Z","updated_at":"2015-12-29T08:37:51Z","body":"My first advice:\r\n\r\nIn MVP the view should instantiate the presenter, and it should call presenter methods directly. This also means that the \"PubSub\" event bus should not be used.\r\n\r\nAs a good practice, do not run logic in the presenter constructor, just initialize properties. You can add a presenter method \"onViewReady()\" or something if you need to run logic at startup.\r\n \r\nAlso MVP was designed to improve testability, so it would be nice to have Presenter tests (with a mocked View)."}}