支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


冒頭:ifなしではプログラムは書けない

今回はJavaScriptを前提としての記述ですが、他言語でも共通することとして、if文なしでプログラムを記述することはできないことがあげられます。if文と同レベルの多用構文としてfor文があります。こちらもプログラムを書く上で必須ですが、if文はfor文よりさらに一つ根底にある考え方です。 if(もしも)を記述できることでプログラムに分岐が生まれます。ifがなければプログラムに必要な材料を事前に用意した上で、加工をプログラムにまかせることしかできません。 if文があることで、前提材料をある程度幅広く、また出力結果を複数用意できるようになります。プログラムを必要とする根底条件として『人間が楽をするため』という考え方があります。if文を使って『もしも』の出来事を事前にプログラムに詰め込むことで、将来の手間を削減することができます。if文を書く上でのキモは将来の手間を減らす記述がどこまで書けるか、になります。理想のプログラムは、入力材料として何がきても想定された出力がされることです。それにどこまで近づけるかを意識してif文を書くことが大切です。

if文とは

if文とは、分岐を記述するための構文です。記述する方法はプログラミング言語によって違いがありますが、処理を行う前提条件に合致すれば処理内容が実行されることは共通です。JavaScriptの場合はifの宣言の後に処理を行う前提条件を記述し、ブロックの中に処理内容を記述します。具体的には if( 前提条件 ){ 処理内容を記述 }となります。 どの言語でも共通しているのは、前提条件を記述する必要があることと、処理内容は前提条件に合致した時のみ行われる特殊記述であるという点です。if文のブロック内は、上から下に流れるというプログラムの前提から外れたところに位置します。if文を駆使して、どれだけ主流から外すことができるかによってマシンの負荷は大きく変わります。 if文で分岐させていくことによって、汎用的な間口からスタートしたものを徐々に専用処理へと誘導させていくことができます。if文を適切に配置することによりプログラムを、汎用的な前処理をさせる場所と専用処理をさせる場所にわけることができます。

効率の面から考えると汎用処理をさせる部分は、多様なケースであってもそこを流れるようにif文で誘導をすることでシンプルなプログラムを実現することができます。似たケースはなるべく同じ箇所で処理することでメンテナンスの難易度を下げることが可能です。似たケースの処理は、一か所修正が入ると同様に修正が必要になる可能性があります。人間は作業量の増加によって比例的・もしくは指数関数的にミスの確率を増加させます。将来的視野の観点から見るとifの前提条件を上手に使って汎用的な処理に誘導することで後に起こるリスクを最小限に抑えることができます。

専門処理をさせる場所を適切に用意することで、単純に負荷分散が可能です。if文の、上から下に流れるプログラムの前提から外す機構を最大限活用することによって1処理にかかる時間を減らすことができます。1処理にかかる時間を減らすことによりさまざまなメリットを受けることができます。一番大きなものとしてマシン負荷の軽減があります。ある1処理において不要なものを極力排除するようにif文で誘導することによって、必要な処理のみをマシンが行うようになります。マシン利用の最適化を目指すことで結果的に負荷増大に起因する運用リスクを低減させることができます。 負荷の軽減はレスポンスタイムの短縮にもつながるため、副次的効果として運用時にユーザーのイライラ度を抑える効果があげられます。時間がかかることはクレームにつながる要因となります。適切なif文の配置を考えることで運用にも影響を与えることができます。またAWSのように従量課金制のシステムを利用する際にも、無駄な処理を減らすことで料金を低減させる可能性を持っていると言えます。

もう一つのメリットとしてプログラムを見返しやすくなることが挙げられます。プログラムを作成者が保守し続けるケースは稀です。if文分岐を適切に行い専門処理の箇所を明確にすることで、読みやすいプログラムを実現することが可能になります。

ifの使い方一例

上記記述内容を前提とした、if文を使ったプログラムの誘導のさせ方の一例を記述します。コンセプトとして汎用処理に誘導後専門処理に流します。if文を用いて汎用処理に誘導した後さらにif文を使ってデータのクリーニング処理を行います。処理内容の主旨は専用処理に流せる形を整形することです。汎用処理への誘導とデータクリーニングの詳細分岐にif文を利用することで専門処理の内容を簡素化させることができます。

まとめ

今回記述例の形式としてJavaScriptを取り上げました。JavaScriptは学習環境を用意するのが比較的簡単なため、学習材料として向いています。ですがif文の考え方はどの言語でも応用が可能です。if文はプログラムに分岐を作成するだけにとどまらず、プログラムの枠組みを構築する大枠として利用することで処理負荷の少ないプログラムを作成することができます。