Slide 1

Slide 1 text

若手が可読性を上げるために 気を付けたこと 名里 梨佐

Slide 2

Slide 2 text

自己紹介 • 氏名 • 名里梨佐(ナザトリサ) • 所属 • 株式会社ラクス • 仕事 • Mail Dealerの開発をしています

Slide 3

Slide 3 text

本日のお話 個人でプログラムを書くことしかしていなかった人間が、 グループの一員として開発に関わるようになって2年と少し。 可読性を良くするために考えさせられたことを 多かった指摘のコメントランキングと共にお話します。

Slide 4

Slide 4 text

第3位 コメントが(不要です/必要です)

Slide 5

Slide 5 text

コメント • 自分一人しか見ないコードは結構コメントを適当に書いていた • コメントの要否の判断の重要性 • 短いコードにいちいちコメントを付ける必要はない • 複雑な処理をしているコードや関数は意味が分かるようにコメントを付ける → 致し方なくこういうコードにしなければならなかった背景・理由など

Slide 6

Slide 6 text

第2位 名前が分かりにくい

Slide 7

Slide 7 text

たかが命名、されど命名 • 接頭辞を使う • isXXX • hasXXX • canXXX • 具体的な名前を使っているか • Get()は使いやすいが、状況によってはDownload()などの方がより明確に伝わるか も • Itemなども便利ではあるが、汎用的なので分かりにくい時もある。 例)「checkItem()」→「checkSortItem()」

Slide 8

Slide 8 text

たかが命名、されど命名 • 一般的な単語を使っているか 命名時 翻訳してみよう→そのまま使うはNG 簡潔な単語を使っても、一般的に使われる単語でなければ、他の人が分からない ただ、逆に簡単な言葉を使って分かりにくくなるケースも… 例)項目名が正しいかをチェックする関数を作りたい 「checkItemName()」 → 「validateItemName()」 checkは便利だが、何をチェックしているかわからない 正しいことをチェックすることがわかるようにしないといけない

Slide 9

Slide 9 text

第1位 冗長です

Slide 10

Slide 10 text

何日か後の自分は他人です • 何日か後の自分が読みにくいコードが、他人に読めるはずがない • ネストが深いコードは読みにくさがMAX → 何か月か後に自分が書いたコードだと思って修正しようとすると 思ったより読めない • 対策 • 関数として切り分ける • 複数の処理を関数内で持たせるのは避ける • 複雑にせざるを得ない場合はコメントを残す 特に試行錯誤してやっとできたコードほど読みにくくないかを確認すべし!!

Slide 11

Slide 11 text

early return • メソッドの先頭で渡された引数が不正な値でないかチェックして、もし不 正な値であれば return で即メソッドを抜ける →その後の処理は引数に不正な値でないか気にする必要がなくなるので、 コードがスッキリ

Slide 12

Slide 12 text

コメントでコーディング • 状況に応じた粒度で実装の流れを書いてみる →やりたいことが明確になる //実行権限のチェップロードしたファイル関連のチェック //実行権限のチェック //アップロードしたファイル関連のチェック //ファイルの存在確認 //ファイルを読み込めているかチェック //空チェック //項目数のチェック //項目のデータのチェック //登録処理 イメージ(ファイル関連の処理)

Slide 13

Slide 13 text

まとめ 可読性の高いコードを書く方法については段々つかめてきたが、 コードを書くということは可読性だけを気にしていたらいいわけではない 次は保守性、拡張性との戦いへ…

Slide 14

Slide 14 text

ご清聴ありがとうございました!!