{"action":"created","issue":{"url":"https://api.github.com/repos/clear-code/readable-code-workshop/issues/12","labels_url":"https://api.github.com/repos/clear-code/readable-code-workshop/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/clear-code/readable-code-workshop/issues/12/comments","events_url":"https://api.github.com/repos/clear-code/readable-code-workshop/issues/12/events","html_url":"https://github.com/clear-code/readable-code-workshop/issues/12","id":123399434,"number":12,"title":"2015-12-22: リーダブルコードメモ","user":{"login":"kou","id":27350,"avatar_url":"https://avatars.githubusercontent.com/u/27350?v=3","gravatar_id":"","url":"https://api.github.com/users/kou","html_url":"https://github.com/kou","followers_url":"https://api.github.com/users/kou/followers","following_url":"https://api.github.com/users/kou/following{/other_user}","gists_url":"https://api.github.com/users/kou/gists{/gist_id}","starred_url":"https://api.github.com/users/kou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kou/subscriptions","organizations_url":"https://api.github.com/users/kou/orgs","repos_url":"https://api.github.com/users/kou/repos","events_url":"https://api.github.com/users/kou/events{/privacy}","received_events_url":"https://api.github.com/users/kou/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":25,"created_at":"2015-12-22T02:25:30Z","updated_at":"2015-12-22T05:32:13Z","closed_at":null,"body":"「自分が書いたリーダブルコード」と「自分が見つけたリーダブルコード」をここにメモしていっていてください。目的は「リーダブルコードを見つける練習」です。単に「書く」「見つける」だけでなく、「メモとしてまとめる」ことまですることで「再利用可能な状態」（＝他の人に説明できる、他の場面で同じ書き方を適用できる）まで自分の中で整理されることを期待しています。\r\n\r\n1つのリーダブルコードにつき1つのコメントにしてください。\r\n\r\n各コメントには次の内容を含めてください。\r\n\r\n* サマリー（あるいはタイトルあるいは一言説明）\r\n* 実際のコード\r\n* どうしてリーダブルだと考えたかの説明\r\n* 「見つけた」場合のみ：見つけた経緯（あるいはきっかけ）\r\n\r\nコメントに書くときは次のテンプレートを使ってください。\r\n\r\n    ### サマリー\r\n\r\n    （ここにサマリーを書く）\r\n\r\n    ### 実際のコード\r\n\r\n    ```java\r\n    （ここに実際のコードを書く）\r\n    ```\r\n\r\n    ### どうしてリーダブルだと考えたかの説明\r\n\r\n    （ここに説明を書く）\r\n\r\n    ### 見つけた経緯\r\n\r\n    （「見つけた」場合のみ。ここに見つけた経緯を書く。）\r\n\r\n\r\n以下は具体例です。\r\n\r\n---\r\n\r\n### サマリー\r\n\r\n自己記述的定数名\r\n\r\n### 実際のコード\r\n\r\nhttps://github.com/doraemon13x/doraemon13x-sezemi-2014-readable-code-2/blob/master/mission3.c#L9\r\n\r\n```c\r\nexit(EXIT_FAILURE);\t/* エラーの場合は異常終了する */\r\n```\r\n\r\n### どうしてリーダブルだと考えたかの説明\r\n\r\nコマンドの終了ステータスは、正常終了するときは`0`、異常終了するときは`0`以外の値を返すのが通例です。そのため、このコードは次のようにしても通例通りの動きになります。\r\n\r\n```c\r\nexit(1);\r\n```\r\n\r\nただ、動くのは動きますが、`EXIT_FAILURE`という名前を使っている方が「失敗して終了するんだな」というのがわかりやすいのでリーダブルだと考えました。\r\n\r\nなお、`EXIT_SUCCESS`というのもあるので、同様の理由で正常終了するときはそれを使うのがよいと思います。\r\n\r\n### 見つけた経緯\r\n\r\nちゃんとエラー処理をしていて立派だなぁと思って読み進めたら異常終了することがわかりやすいコードだと気づきました。\r\n\r\n----\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/clear-code/readable-code-workshop/issues/comments/166513202","html_url":"https://github.com/clear-code/readable-code-workshop/issues/12#issuecomment-166513202","issue_url":"https://api.github.com/repos/clear-code/readable-code-workshop/issues/12","id":166513202,"user":{"login":"suzukke-js","id":16345121,"avatar_url":"https://avatars.githubusercontent.com/u/16345121?v=3","gravatar_id":"","url":"https://api.github.com/users/suzukke-js","html_url":"https://github.com/suzukke-js","followers_url":"https://api.github.com/users/suzukke-js/followers","following_url":"https://api.github.com/users/suzukke-js/following{/other_user}","gists_url":"https://api.github.com/users/suzukke-js/gists{/gist_id}","starred_url":"https://api.github.com/users/suzukke-js/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/suzukke-js/subscriptions","organizations_url":"https://api.github.com/users/suzukke-js/orgs","repos_url":"https://api.github.com/users/suzukke-js/repos","events_url":"https://api.github.com/users/suzukke-js/events{/privacy}","received_events_url":"https://api.github.com/users/suzukke-js/received_events","type":"User","site_admin":false},"created_at":"2015-12-22T05:32:13Z","updated_at":"2015-12-22T05:32:13Z","body":"### サマリー\r\n\r\n複雑な型定義をtypedef宣言\r\n\r\n### 実際のコード\r\n\r\n```c++\r\ntypedef std::vector<std::wstring> StringVector;\r\n\r\nclass RecipeData\r\n{\r\n\tStringVector m_titles;\r\n};\r\n```\r\n\r\n### どうしてリーダブルだと考えたかの説明\r\n\r\ntypedefすることで、型の意図（StringのVectorであること）がより明確に分かる。\r\n\r\n### 見つけた経緯\r\n\r\n吉岡さんのコードを読んでいて。"}}