結論
先に結論なんですけど、リーダブルコードは当たり前の事が書いてあります。
ただその当たり前の事が出来ていないと感じたのですぐに実践できることを備忘録として残したいと思います。
プログラマーとして
forのネスト
ループがネストしている場合はインデックスを分かりやすく定義してあげる。
以下のコードではループする変数の接頭辞をインデックスの接頭辞に着けることで、インデックスの使用を楽に出来る!!
※めちゃくちゃ便利!わかりやすい!
※ループをネストしないコードをかければ一番良いかもねぇ
$users = array(
//複数要素
);
$entry_point = array(
//複数要素
);
for($u_i=0;$i<count($users);$u_i<$users){
for($e_i=0;$e_i<count($entry_point);$e_i<$entry_point){
//処理
}
}
視覚的に優しく
縦に並べる
DB::table('ex_stores')->insert([
[
'store_id' => '123456',
'logo_path' => 'demo_cafe.png',
'big_category' => '食べ物',
'small_category' => 'カフェ',
'tag1' => 'ゆったり',
'tag2' => 'まったり',
'tag3' => '潮風に揺られながら',
'top_url' => 'main',
]
]);
コメント
コードに指摘を入れる場合
自分が書いたにしろ他人が書いたにしろ、何かを感じた場合は下記のようにコメント残したいです。
特にGitのコメントに使えそう。
コメント接頭辞 | 内容 | 備考 |
TODO: | やるべきこと。後で手を付ける。 | 複数案件抱えている時などにかなり役立ちそう |
FIX: | 既知の不具合があるコード。 | 修正するべき内容 |
HACK: | あまりきれいじゃない解決策。 | 「改修の余地あるよー」を伝える時? |
DANGER:
IMPORTANT: |
危険 | リーダブルコードには「XXX:」と記載されているが、自分なりに改変。 |
コメントの基本原則として以下を抑えておきたい。
クラスやメソッドはひと目で分かるように
クラスやメソッド内での処理がすぐに理解できるように、処理内容をコメントする。
パターンとしては以下がある。
- 実例をコメント
-
- XXXを○○○して△△△という形式に変更
-
- 処理をブロックごとに分けてコメントする
-
- 大きいメソッドなどは適切なタイミングでコメント
-
問題になりそうな箇所は先に明示する
※かなり大事な気がするので例を書きます。
仮にインサート関数とデリート関数を定義してインサート関数の前にデリート関数を実行させる処理を行いたいとする。
class DB{
public function insert($data){
DB::delete();
}
public function delete(){
}
}
インサート関数の中でデリート関数を呼び出しているのですが、仮にデリート関数で複雑な処理を行っており処理自体が10秒かかるとしたらインサート処理自体が10秒以上かかってしまうことになります。
上記の場合、詳細を知らないメンバーがデリート関数を呼び出してしまうと想定外の結果となってしまう危険性があるため、以下のようなコメントを残す必要があります。
class DB{
public function insert($data){
DB::delete();
}
//注意:実行時間10秒以上
public function delete(){
}
}