# 読みやすく変更に強いコードのために 追記してください😇 ## 全体 - nest を減らす => 早期リターンするなど - 結合度を下げる - なんでも長くしすぎない(切れるところは切る) - simpleに書く(not easy) - loopの中は絶対に長くしない、多重loopは可能な限り避ける - スコープをできるだけ小さくする - テストを意識してコードを書く - dry - import文を書く - IDEが理解できるcodeにする(view usage, code jumpできるように) - schemaを書く// http requestで何が飛んでくることを期待しているのか - classに複数の役割を与えない(現状DBのtable自体とrow/entityが同一のclass) - data class的なものを使いたい - typoどうにかしたい - 巨大な連想配列を使わない - code formatterを使う - linterを使う - methodの順番を考える(code fomatterがやってくれそう) - 1fn 30line 1class300line(テキトー)超えたらかなり怪しい ## やめたいもの - evel 、reflection - stringでclassやmethodを指定 - コピペコード - 無理やりすぎる共通化 - staticやめよう - 大量のwarning - magic number ## variable - 変数に適切な名前をつける - ~flagはNG is~とか - 変数は使う直前に宣言する - 変数はなるべく少なく、無駄な変数は使わない - mutableを可能な限り使わない - なるべくmutationしない - 型を明確にする - nullableか明示する ## function - 適切な名前をつける(後から読んだ人がここは読まなくてよさそうと思えるようにfnを切る) ``` if(is_career_deleted($career)) { do_something(); } ``` is_career_delete()の内容は読まなくてもなんとなくわかる 関係なければdo_somethingも読まなくても良さそう とか出来るだけ読み飛ばせるようにする。 - 名前以上のことをやらない - なるべくstateless - 出来るだけ副作用を起こさない - 1function1機能、複数のことをしない - 1機能内でもその機能に本質的に関係ないものは分ける
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up