プログラミングはある種”慣れ”のようなものが大事になってきます。理論よりも経験と言うべきでしょうか、経験を積むことで、徐々に洗練された美しいソースコードが書けるようになるものです。

ですがこれからプログラマーとして働いていく上で、新米プログラマーがよくやってしまいがちな、ソースコードを読みにくくする行為も、知っておいて損にはなりません。

新人プログラマーが書く読みにくいソースコードの事例を、いくつか挙げていきたいと思います。

インデントされていないソースコード

なぜか新米プログラマが書くソースコードは、まったくインデントがされていなかったりします。
※インデントとは字下げ行為のこと

ループ処理をネストさせようが、IF文で条件分岐させようが、おかまいなしに行頭がそろえられているので、まったくもって読みにくいソースコードとなってしまいます。

プログラミングとはフローチャートをコンピュータ言語に落とし込む作業ですので、インデントがあることで処理の階層がフローチャートとも結びつきます。だからインデントはプログラマの基本であり、ソースコードとしての美しさどうこう以前の問題なのです。

ある程度ソースを読み慣れてくると、インデントのないソースコードがいかに読みにくいものかを実感することになるでしょう。

とりあえず変数名「a」

「変数名はどういった名称にしようかな・・?」と、プログラミングが分かる方であれば、少しは考えます。ですが新人のころは、特に変数名について深く考えることなく「a」とか「b」という名前をつけてしまいがち。

別に「a」や「b」という名称をつけたからって、不具合を起こすわけではないので間違いではないのですが、できるだけ変数名からその変数の役割だけでなく、パブリックかプライベートなのか、変数なのか定数なのか、引数なのか戻り値なのかといった属性も伝わるような工夫をするのが望ましいですね。

変数名の命名については「上手な変数名のつけ方。一見して用途を識別できるために」の記事でも事例を紹介しておりますので、参考にどうぞ。

思い立った場所で変数宣言

思い立った場所でその都度、変数宣言をするのはやめましょう。小規模プログラムならよいかもしれませんが、ステップ数の多くなるようなボリュームあるプログラムになると、変数の管理が面倒になります。

変数宣言の基本は、各モジュールの一番最初です。プログラムは変数宣言から始まるといっても過言ではありません。

【変数宣言】
【変数の初期化】
【処理】

プログラムの流れで言うと、上記のようなパートに分かれるのが理想です。

改行しないため横スクロールが必要

横スクロールで追わなければならないソースコードは、非常に不格好ですし、ソースを読むという行為の生産性を損ねます。

普通にソースコードを書いていれば、そうそう改行が必要になることはないでしょうが、よくあるのは文字列型変数にSQL文などの文字列を代入するときです。

もし画面内に収まりきらないようであれば、文字列中のキリのよいタイミングで代入を終わらせ、改行をした2行目、3行目では、連結という形で文字列を入れていくようにしましょう。

コピペソースの使用しない部分もそのまま

どこかのサイトや、別プログラムからソースをコピペするのは作業効率を高めるという意味でも良いと思います。

ただ新米プログラマーが書いたソースコードを読んでいたりすると、どこかからコピーしたであろうソースコードのうち、当該処理ではまったく関係のない部分もそのまま残っていたりします。

処理に影響がないとは言え、不必要なソースは誤解を招いてしまうことにもつながりますので、必ず消去しましょう。

また想定通りの処理が返ってきたのはよいものの、コピペしたソースがどんな意味を持つ構文かさえ理解していない場合もありますが、これは論外ですね。ソースのコピペは推奨しますが、しっかりと意味を理解した上でコピーするようにしましょう。

たまに変数名もそのままで、処理内容とはまったく関係ない名前になっていたりするので、そうした部分も注意したいところですね。

 

おわりに

だいたいはプログラマーとして2,3年が経過して、新人時代に自分が書いたソースコードを読み直すと、その稚拙さに悶絶するものです。

誰もが通る道ではありますが、新米プログラマーの皆さんは上記で説明したようなことを、少しは意識してみるとよいかもしれませんね。

 



【株式会社キーシステム】

株式会社キーシステムは、AI活用やスマートフォンアプリ、XR領域の開発において先端IT技術を駆使するテック企業です。最新の技術トレンドに迅速に対応し、SaaS系アプリの開発から業務システムまで、クライアントワークおよび自社アプリケーションの開発を行っています。

開発のお問い合わせはこちらから! 気兼ねなくご相談ください(*´∇`*)