前書き
私は実務未経験のwebエンジニア志望のものです.先日webエンジニアの友人に「可読性の高いコード」を書けるようにならないと実務入ってから大変と聞き可読性の高いコードとはなんぞやと調べましたので記事に残します。
可読性の高いコードとは?
⇨他人の人が理解しやすいメンテナンスしやすい、そして拡張性があるコード
なぜ可読性の高いコードが求められるか?
エンジニアの業務では、コードを書く時間よりも読む時間の方が遥かに多い。特に、チームでのプロジェクトにおいては自分で書いたコードは自分だけのものではなく、他の開発者にも読まれることになる。 つまり自分の書いたコードがプロジェクト全体の作業効率を上げるか下げるかを分ける
他人が理解しやすいコードの特徴
1. 変数と関数の名前の付け方が良い
2. 説明変数を使う
1. 変数と関数の名前の付け方が良いとは?
⇨結論 変数は名詞/名詞句、関数は動詞 を意識して変数、関数名をつけると良い.
理由2つ.
変数= 何かしらの数値や文字などのデータを入れる容器.
関数= 動作や振る舞い(計算する、文字を出力する等)をする
悪い例(変数名)
❌ NG send_message = "You are genius."
このコードを見た人はsend_messageが「メッセージを送る」処理をする関数だと一瞬思ってしまうかも.
良い例
⭕ GOOD message = "You are genius."
読む人はmessageに何かしらの文字列が格納されているということを推測することができる
悪い例(関数名)
❌ NG def fruits(fruits_name): print(fruits_name)
これは関数名がフルーツという名詞になっている。フルーツ自体はただの物体であり、何かしらの処理をする訳ではないのでこれをみた人はfruitsという変数の中にフルーツ名が入るんだとおもっちゃう。
良い例
⭕ GOOD def print_fruits(fruits_name): print(fruits_name)
この関数名なら「フルーツの名前を出力する」と認識することができ、可読性が高くなります。
2. 説明変数を使う
説明変数とは?
⇨if文の条件式に変数や関数を使うこと
悪い例(説明変数なし)
❌ NG if line.split(":")[0].strip() == "root": print("This is root")
どういう条件の時== "root"になってtrueになるの?って思う。
良い例(説明変数あり)
⭕ GOOD username = line.split(":")[0].strip() if username == "root": print("This is root")
usenameという変数を宣言して、先ほどの式の左辺(line.split(":")[0].strip())を入れています。
その後、usernameを条件文で利用しています。
つまり変数を準備して、式を分割していることになります。
まとめ
変数を定義する際は名詞か名詞句で定義する。関数は動詞で定義する
if文の条件式には変数や関数を使って可読性を上げる。