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

20220227 可読性って大事

kuma
March 14, 2022

20220227 可読性って大事

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を書かなくて済むから好きな書き方です。