= コードチェンジ : author 結城洋志 : institution 株式会社クリアコード : content-source 実践リーダブルコード : date 2022-11-02 : allotted-time 10m : theme clear-code = 目的 * 他の人の基準で書かれた\n リーダブルコードを探す = おさらい:今日の体験内容 * ((*まず自分が読み始める*)) * 他の人が書いたコードから\n ((*リーダブルコードの工夫*))を探す\n (('note:(「読みにくいコード」は探さない)')) * リーダブルの基準を\n 他人と共有する\n (('note:(チームのリーダブルコードができる)')) = これからやること * 他の人のリポジトリを\n forkする * forkしたリポジトリの\n 開発を引き継ぐ * リーダブルなコードを探す = ポイント (('tag:center')) リーダブルじゃないコードより\n リーダブルなコード ((' ')) = リーダブルじゃないコード * 見つけやすい * 異質 * 読んでいると詰まる * 今日のチャレンジ * 気をとられない = リーダブルじゃない例 # _ void open_TermList(TermList *list, char *path) { FILE *fp; /* ファイルを開く */ if ((fp = fopen(path , "r")) == NULL){ fprintf (stderr, "ファイルが開けません\n"); fclose(fp); exit(EXIT_FAILURE); == ノート ここでは、1行目で閉じ丸括弧と波括弧の間にスペースが空いているのに対して、4行目では閉じ丸括弧と波括弧の間にスペースが空いていない。 = リーダブルなコード * 見つけにくい * まわりのコードになじんでいるから * すーっと理解できてひっかからない * 今日のチャレンジ * 意識して見つけよう! = リーダブルな例 # _ void open_TermList(TermList *list, char *path) { FILE *fp; /* ファイルを開く */ if ((fp = fopen(path , "r")) == NULL) { fprintf (stderr, "ファイルが開けません\n"); fclose(fp); exit(EXIT_FAILURE); == ノート ここでは、先ほどの逆で、1行目と4行目でどちらも、閉じ丸括弧と波括弧の間にスペースが空いている。つまりコーディングスタイルが統一されている。 = やること * 同じ言語の他の人の\n リポジトリーをfork * どこまで進んでいるかを把握 * リーダブルコードを探す * 開発を継続(改良) * リーダブルコードを探す = リーダブルコードを発見! * メモに残す * 自分達の元の作業リポジトリーの\n issueに書く * メモの内容 * 実際のコードのURL/コード片 * リーダブルと思った理由 * 見つけたきっかけ メモの書き方は先ほどと同じ。 = メモ例 # _ タイトル:統一されたスタイル ← リーダブルな書き方の名前 ↓本文↓ -- URL: https://github.com/kou/.../commit/eb02be コード: ``` void open_TermList(TermList *list, char *path) { FILE *fp; /* ファイルを開く */ if ((fp = fopen(path , "r")) == NULL) { fprintf (stderr, "ファイルが開けません\n"); fclose(fp); exit(EXIT_FAILURE); ``` 理由: ファイル内で「)」と「{」の間にスペースを空ける、という スタイルに統一しているので読みやすくなっている。 = リーダブルコードとは * 読む人基準 * 「読む人」が 読みやすいなら\n リーダブル = どんなコードがリーダブルと言えるか? * 読む人(=自分)基準でよい * 自分はどんなコードが\n リーダブルだと思うのか\n 言語化してみよう * 凝った書き方を見つけるのは\n 目的ではない! == ノート 「えっこんなことでいいの?」と思うようなことでも、まずは書き出してみよう。 自分達のチームで実装したときにやっていなかったことは、特にメモに書き出してみよう。 = 見つけ方のポイント (('tag:center')) 引き継いだ後\n ((*スムーズに続きの作業に\n 取りかかれた*)) →気付きのチャンス = ここまでの説明 腑に落ちましたか? = 開始 14:45まで