こんにちは。Y.U.と申します。
SNSやブログ系はネタ方面でしか書いた事がないので、日本語がおかしい所があってもご了承という事で…
今回は書籍を1冊ご紹介させていただきます。
リーダブルコードという本です。音符が描かれていますが、音楽の本ではなく、プログラミングの本です。
今回この本を読んで参考になった部分、自分で当てはまる と思った部分を抜粋してご紹介。
変数の命名をしっかり行う
これはよくやりがちなやつ。
メソッドの戻り値となる値の変数名を var Ret だの var Returnvalue だの面倒なのでつけてしまう事がある。
こういう曖昧は名前ではなく、具体的にどういう意味を持った変数なのか名前を付ける必要がある。
for(i = 1; i <= 10; i++)
ループでよくやるやつ。このiが要素数を指すのならば、iではなくindexと記述すべき。
ループではよく 「i」「k」 「j」 といった名前でループが行われやすい。
が、短くすると書き間違えのミスに気が付きづらい。
型を付属させる
たとえば、後々配列で処理するのが前提な変数の場合、
変数名にArrayなどとつけた方が良いということ。
PHPでいえば
$Text = “aaaa”;
こう書くと、この一行だけ見るとこれがあっているか、あっていないかは正直分からない。
だが、
$Text_Array = “aaaa”;
この場合、$Text_Array[] = “aaaa”;
が正解であると気が付く可能性は高い。
変数名の長さについて
これもシステム開発しているとよくある。
この変数名、長くないか? 逆にこれ、短すぎてわかるかな?と思う事がある。
これに関して回答が乗っていた。「スコープの長さによっては短くしても良い」との事だった。
そのメゾットだけの中で使われるだけであれば、短くしても良い。 逆にグローバルな変数、広い範囲で使われる定数だったりする場合は長くても良い。
異常に長い変数があれば、これは広範囲に影響する可能性があると分かりやすい。
誤解されない名前をつける
例えば、文字列の中からURLだけを取得する といった動作が必要な関数を作成する。
私はこのメゾットに「GetURL」なる名前を付けたが、これは最低だった。
GetURLだけではURLをGetする?どこから?と、数か月後の自分が、別の人が、新人が、そう思うかもしれない。
例えば ToExtractURL と書いた方がいいかもしれない。URLを抜く。分かりやすい。意味としては。
しかしPHPには文字列を検索する関数として、preg_matchがある。それに沿って、
PregMatchURL 等でもいいかも。これならPHPやってる人ならああ、PregMatch使ってURL抜いてんだなと内容も分かりやすいかなと思う。
揃える
単純な事である。たとえば引数が7個設定する必要が関数(Test_Func)がある
Test_Func(87654,45678,5678,67890,43243244,23443434,234324234);
Test_Func(87654,3,5678,6,43,23443434,234324234);
Test_Func(2,3,56,6,43,23443434433243243242343243243432434,4);
引数の数違ってたらエラー出るだろ!とお思いだろうが、例えばの例なのでゆるしてほしい。
本の内容そのまま引用するわけにもいかないし…
このように記述されてた場合、見て数があってるか? というのは分かりづらい。数えれば誰でもわかるが、これが3個ではなく30行あったら? いちいち数えてられないし、ミスも発生するかもしれない。
Test_Func(87654 ,45678 , 5678 , 67890 , 43243244 , 23443434 ,234324234);
Test_Func(87654 , , 5678 , 6 , 43 , 23443434 ,234324234);
Test_Func(2 ,3 , 56 , 6 , 43 , 23443434433243243242343243243432434 ,4);
※ちょっとずれてる? 細かい所はコードエディタ上でやるんだよ!
こうならどうだろう?引数の中があってるかどうかは置いておいて、数があってる事は間違いない。
今回は数字だけなので分かりづらいが、第3引数はint、第四引数はstring だった場合、配列の設定ミスにも気が付きやすい。
これは型がしっかりしてる言語であればエラーや警告として表示されるだろうが、型が緩い言語だと見落とす可能性が十分にある、
以上、本の最初に載ってた一部を脳内変換して書いてみた。
例えば言語の本を買ったりした場合、for文の項目はだいたい
for(i = 1; i <= 10; i++)
といった短い要素で書いてるのが基本だと思う。
それに習って、iだの短い命名をしてコーディングをしてる方はきっといるはず。
そういう人は1度読んでみてはいかがでしょうか。「リーダブルコード」
書いてある事は基本といえば基本、当たり前と言えば当たり前ではありますが、一読する価値は十分あります。
安心と安定のオライリー。amazonで買えます。
電子版(O’Reilly Japan Ebook Storeにて販売)もあります。