COLUMNコラム

私の考える良いプログラム、悪いプログラムの書き方

はじめまして。
デザイントランスメディアの長濱です。

デザイントランスメディアというホームページ制作会社の
システム開発を担当させていただいております。

この度、初コラムを書かせていただくにあたり、
緊張のため書きながら、手の震えが止まらなくなっております。

ですが、せっかく貴重な時間を割いて、コラムを読んでくださった皆様へ、
小さくても気づきや学びをご提供できるよう、頑張って書いて参りますので、
最後までお付き合い頂けましたら幸いです。

記念すべき第一回のテーマは
「私の考える良いプログラム、悪いプログラムの書き方」です。

皆様は「良いプログラム、悪いプログラムの書き方」と言われて、
どのようなものを想像されますでしょうか?

ここで言うプログラムはPHP、Ruby、C言語など、
俗にいう「プログラミング言語」の事を指します。

私はデザイントランスメディアに入社して、初めてプログラムを書きはじめたのですが、
最初はプログラムの書き方の良し悪しが全くわかりませんでした。
ですが、最近になって少しずつですが、プログラムの良し悪しについて理解出来てきたため、
今日はそのことについてお伝えしたいと思います。

同じ動作をするプログラムでも、良し悪しがある?

まず、私がプログラムを書いていて一番悩んだのが、
ある動作をするプログラムを書こうと思った場合、
書き方が一つではないという事です。

例えば、PHPというプログラミング言語で、
画面に「こんにちは!」という文字を表示させるだけでも、
以下のような書き方があります。

・echo('こんにちは!');
・print('こんにちは!');
・var_dump('こんにちは!');

このように同じ動作をしているけど、色々な書き方がプログラムにはあるので、
正しい書き方を意識していないと、悪いプログラムとなってしまうことが多々あります。

では、プログラムの良し・悪しとは何なのでしょうか?

後から誰かが見てわかりやすいプログラムは良いプログラム

もし、プログラムに欠陥があった場合や、機能を追加したい場合、
後からプログラムを読み直して、修正する必要があります。

ですが、修正するためにプログラムを読んでいて、
わかりづらいプログラムがあります。

それはプログラム内で、同じ記述が何回も登場してきたり、
使われていない記述が残っていたりした場合です。

プログラムは簡単なものでも数十行、多いものになると数十万行にわたって記述されています。
それを人が一行一行読んで言った時、無駄なことが沢山書かれていると、
理解するのにとても苦労します。

なので、なるべく無駄をなくして、
後から別の人が振り返ってわかりやすいように
書かれたプログラムは良いプログラムと言えるでしょう。

こういう書き方をすることで、プログラムを書いた人がいなくなった場合でも、
別の担当者が保守・運用を引き継ぎやすくなるため、
作ったものを長く、お客様にも使っていただけるというメリットがあります。

新しいバージョンで動作する、書き方を取り入れたプログラムは良いプログラム

実はプログラム言語にもバージョンというものが存在します。
弊社のシステムで使われている、PHPの最新バージョンは7.2.7になります。(2018/6/29時点)

最新バージョンを使うメリットとして、プログラムの動作が早くなったり、
セキュリティー的に問題があった機能が改善されている事があげられます。

ですが、最新のバージョンを導入するには、
プログラムの書き方を最新バージョンにあった書き方にする必要があり、
それらの見直しが大変なため、古いバージョンを使い続けているというケースも多くあるようです

また、古いバージョンをずっと使い続けると、
何時かプログラムが動作しなくなるかも日がやってくるかもしれません。

弊社のシステムを導入する場合、レンタルサーバーをお客様に借りて頂くのが一般的です。
ですが、レンタルサーバーを提供する各社共に、古いバージョンのプログラム言語は、次第にサポートしなくなります。

サポートされなくなった古いバージョンのプログラム言語は、
何時動かなくなってもおかしくない状態と言えます。

そのため、作ったものを長くお使い頂くには、バージョンアップを考慮する必要があります。
以上の事から、新しいバージョンで動作する書き方を取り入れたプログラムは、良いプログラムだと言えるでしょう。

まとめ

今回、紹介させていただきました、2つの良いプログラムの書き方は、
私がデザイントランスメディアに入社して学んだものです。

私達が納品したプログラムを、お客様が安全に、そして少しでも長く使えるますよう、
これからもより良いプログラムを書いてくよう心掛けていくつもりです。

初コラムということもあり、長文となってしまいましたが、
最後までお読みいただきありがとうございます。
この記事を書いた人 長濱 靖知 Creative & Development Division