プログラミングの世界は簡単なように見えて、理想のプログラムを追及するとなると、案外奥の深い世界です。

コーディング規約は別として、本来プログラムには”こう書かなければならない”ということはありません。こうしたことは過去の「新人PGに告ぐ!プログラムに正解なんてない。最適解を探せ!」にて説明しておりますが、お手本にしたいソースコードのようなものは存在します。

お手本にしたいのは新人でも理解できるソースコード

プログラマーにとってお手本にしたいソースコードとは「新人でも理解できる、難なく読める」ことです。逆に新人エンジニアが追えないようなソースコードは美しいとは言い難いです。

新人でも理解できるのはどういったソース・・?? と思われるかもしれませんが、簡潔に述べるなら「余計なことはしない」ことと「シンプルなソース」であることが大事です。具体的に挙げるなら以下のようなポイントを意識することです。

  • 変数名で用途が判別できる
  • 不用意に多くの変数をつくらない
  • 標準関数を利用する
  • できるだけ利用頻度の高い関数を利用する
  • 機能ごとにモジュールを分ける
  • モジュール名で処理内容が判別できる
  • 余計な処理は行わない
  • SQLを複雑にしすぎない

何も難しいことを考える必要はない

あえて複雑なロジックを構築したり、わざわざ自前の関数を組み立てる必要なんてありません。プログラマー固有のクセのようなものは、プログラミングの世界ではご法度です。

たまに「なぜこの関数をここで使用した!?」とか「この変数は一つにまとめられるんじゃない!?」と思ってしまうソースコードに出会うことがあります。それが暇なときならまだしも、忙しいときだとソースを書いたプログラマーに愚痴の一つでも言いたくなってしまいます。

いくら技術力が高かろうと、余計なことをする必要はまったくないのです。「シンプル イズ ベスト」という表現がありますが、まさにプログラミングの世界はそれなのです。

シンプルなソースコードは柔軟性が高い

新人でも理解しやすいソースコードは余計なことをしていない分、シンプルでスマートなソースコードになるはずです。そうしたソースは柔軟性が高くなります。

例えば機能追加で既存のソースコードに手を入れようと思った場合、複雑に処理が入り組んでいるようなソースでは影響範囲も多岐にわたり、作業の難易度が高くなります。難易度が高くなるということは、それだけ作業を終えるのに要する時間も多くなり、お金のかかる作業となってしまいます。

しかしシンプルなソースコードになっていれば、機能追加も影響範囲が少ない分、作業がしやすくなります。そして作業工数も削減できるため、エンジニアはより多くのことにパワーを注ぐことが可能になります。お客様にとってもエンジニアにとってもメリットが生まれるわけです。

機能追加でなくても、シンプルなソースコードならバグ対応時にも不具合を起こしている該当箇所を見つけやすくなります。プログラムはアフターメンテナンスが容易であることも重要なのです。

“新人が理解できる”と”新人でも書ける”は違う

勘違いを防ぐために最後に補足しておきますが、今回主題としている”新人でも理解できるソース”というのは、”新人でも書けるソース”とは意味が違います。

新人エンジニアが書くソースコードは多くのことを知らない分、一見するとすっきりしている印象を受けるかもしれませんが、それは違う意味のシンプルさです。例えば変数名を「aaa」や「x」といった自分だけに理解できるような名前を付けていたり、一つのモジュール内に全ての処理を記述していたりなど。

新人が理解できるソースコードとは、シンプルでありながらも”分かりやすいこと”がポイントです。ここら辺を勘違いしていると、いつまでたっても人に優しいソースコードを書くことはできません。

新人でも理解できるソースを書くのは決して簡単なことではなく、多くの経験を積みながら習得していくスキルなのです。

おわりに

ソースコードを評価する際には、「きれいな」や「美しいか」といった表現が用いられることが多々あります。しかしこの「きれいな」や「美しいか」というのは曖昧な表現であり、人によっても解釈が異なるところです。そのため「新人にも理解しやすいか」という点に着眼して、ソースコードを評価するとよいでしょう。

 



【X(旧twitter)でも情報発信中】

Xを最近始めたので、フォローしてもらえると嬉しいです(エンジニア界隈の方はフォローバックさせていただきます)! システム開発に関することや、最新テクノロジーのことなど、世のエンジニアにとって有用な情報を発信してます!

"X" @TECH_KEYSYS