課題の実装の進め方¶ ↑
: author
須藤功平
: institution
株式会社クリアコード
: content-source
実践リーダブルコード
: date
2015-06-24
: allotted-time
5m
: theme
clear-code
実装する目的¶ ↑
((‘tag:center’)) 午後の作業の布石n ↓
* 課題の仕様を理解するため * 読まれることを意識して\n 書かれたコードを用意するため * リーダブルなコードを書いて!
目的じゃないこと¶ ↑
* テクニックをたくさん覚える * 難しいプログラムでも\n 実装できるようになる * 速く実装できるようになる
課題の傾向¶ ↑
* 技術的に難しいことは\n 意図的に避けている * 段階的に改良していく * 時間内で実装しきれない分量 * ((*すべて実装する必要はない!*))
メモを書く¶ ↑
* 工夫したことはissueに書く * 1つのissueに1つの工夫でOK * メモに含めること * 実際のコードの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¶ ↑
* チューターに相談 * チューターは((*答えを教えない*)) * 一緒に考えてくれる * 答えを教えない理由 * 参加者が考える機会を奪わないため * 一緒に考えると新しい視点が増える
困ったら2¶ ↑
* まわりの参加者に相談 * 答えを教えてもよい * 一緒に考えてもよい * 条件 * 答えを教えるときは理由も伝える\n (('note:(教える参加者が考える機会になる!)')) * 聞く人は理由も聞く\n (('note:(考え方を知ると新しい視点でコードを読める!)'))
実装開始¶ ↑
* 仕様 * task.md * 練習 * 講師がtask.mdを読んで説明 * 仕様1をみんなで実装 * 実装できたら休憩→仕様2以降実装