課題の実装の進め方¶ ↑
: author
須藤功平
: institution
株式会社クリアコード
: content-source
実践リーダブルコード
: date
2015-03-06
: allotted-time
5m
: theme
clear-code
実装する目的¶ ↑
((‘tag:center’)) 午後の作業の布石n ↓
* 課題の仕様を理解するため * 読まれることを意識して\n 書かれたコードを用意するため * リーダブルなコードを書いて!
目的じゃないこと¶ ↑
* テクニックをたくさん覚える * 難しいプログラムでも\n 実装できるようになる * 速く実装できるようになる
課題の傾向¶ ↑
* 技術的に難しいことは\n 意図的に避けている * 段階的に改良していく * 時間内で実装しきれない分量 * ((*すべて実装する必要はない!*))
練習としてやること¶ ↑
仕様1を実装n ((‘note:進め方の詳細はtask.mdを参照’))
メモ¶ ↑
* 工夫したことはmemo.mdに書く * memo.mdはリポジトリーにpush * ↓を含める * 実際のコードのURL * リーダブルな理由
メモ例¶ ↑
# _ ## 統一されたスタイル ← リーダブルな書き方の名前 URL: https://github.com/kou/.../commit/eb02be コード: @@ -64,7 +64,7 @@ void add_recipe_to_RecipeList(...) { void open_RecipeList(RecipeList *list, char *path) { FILE *fp; /* ファイルを開く */ - if ((fp = fopen(path , "r")) == NULL){ + if ((fp = fopen(path , "r")) == NULL) { fprintf (stderr, "ファイルが開けません\n"); fclose(fp); exit(EXIT_FAILURE); 理由: ファイル内でスタイルを統一しているので読みやすくなっている。
リーダブルコードとは¶ ↑
* 読む人基準 * 「読む人」が 読みやすいなら\n リーダブル * 読む人の視点を意識してみて * どんな人が読む? * どんな前提知識がある?
困ったら1¶ ↑
* チューターに相談 * チューターは((*答えを教えない*)) * 一緒に考えてくれる * なんで!?答えを教えてよ! * 講師が禁止している\n (('note:(参加者が考える機会を奪わないため)')) * チューターは意地悪ではない
困ったら2¶ ↑
* まわりの参加者に相談 * 答えを教えてもよい * 一緒に考えてもよい * 条件 * 答えを教えるときは理由も伝える\n (('note:(教える参加者が考える機会になる!)')) * 聞く人は理由も聞く\n (('note:(考え方を知ると新しい視点でコードを読める!)'))