Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20220227 可読性って大事

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for kuma kuma
March 14, 2022

20220227 可読性って大事

Avatar for kuma

kuma

March 14, 2022
Tweet

More Decks by kuma

Other Decks in Programming

Transcript

  1. 自己紹介 • 実務入って半年 • PHP(Laravel)、JavaScript(Vue)を書いてます。 • 仕事もマッチングアプリも伸び悩み中。。。 • 好き↓ •

    タガが外れたように満腹まで食べる • ラーメンハシゴ、次郎マシマシ…etc • 甘いもの • ミスド食べ放題15個の実績(尚、ぼっち参戦) • スイパラ行くのが直近目標(もちろん、ぼっち参戦) P-01
  2. 目次 • 話すこと • 話さないこと • 本LTのゴール • 動機 •

    なんで「きれいなコード」は大事か • どうやって「きれいなコード」を実現するか • 俺的ピックアップ • おわりに P-01
  3. 1, 【変数】明確な単語を選ぶ “「空虚な」単語は避けるべき” Ex, ‘get’ P-01 // pageをどこからとってくる?ローカルキャッシュ?データベース? def GetPage(url):

    … Ex, ‘Stop’ // どんな操作を指す?取り消しができないならKill、あとから再実行できるならPause()のがいい class Thread { void Stop(); … } ※プログラミングでよく使う英単語のまとめ【随時更新】 https://qiita.com/Ted-HM/items/7dde25dcffae4cdc7923
  4. 2, 【変数】値の単位 “計測できるものであれば変数名に単位を入れる…” Ex. ‘getTime()’ P-01 // getTime()はミリ秒を返すので、start_ms, elapsed_ms…のがいい var

    start = (new Date()).getTime(); … var elapsed = (new Date()).getTime() – start; Document.writeIn(“読み込み時間: ” + elapsed + “秒”);
  5. 4, 【変数】不要な単語を投げ捨てる “含まれる単語を削除しても情報が全く損なわれないこと もある。” Ex. ‘ConvertToString’ P-01 // 「文字列に変換ね」ってなる ConvertToString

    ⇒ ToString Ex. ‘DoServeLoop’ // 「ループに入る(※)のね」ってなる ※日本語訳が正直不明…ゴメンナサイ… DoServeLoop ⇒ ServeLoop
  6. 5, 【変数】スコープが小さければ短い名前でもいい “識別子の「スコープ」が小さければ、多くの情報を詰め 込む必要はない” P-01 if (debug) { map<string, int>

    m; // 引数mはすぐ近くにあるmap<string, int>だとわかる Print(m); } // 個人的にはやりすぎ(省略しすぎ)感あるけど… ※個人的主観:今はこれが主流では? ⇒これまで話した1~4のルールは発行時期的にグローバルスコープへの定義 とかやってた時代を考慮してのルールかと思う
  7. 7, 【制御文】関数から早く返す “関数で複数のreturn文を使ってはいけないと思っている 人がいる。あほくさ。関数から早く返すことはいいことだ。” P-01 public boolean Contains(String str, String

    substr) { if (str == null || substr == null) return false; // 早々にreturnする if (substr .equals(“”)) return true; // ここでもreturnする … } ※個人的にはelseを書かなくて済むから好きな書き方です。