ITエンジニアの考え方~共通化
大宮さんのお手伝いをしているITエンジニアの「こば」です。
ITエンジニアとして働き始めて15年以上が経ちました。情報工学を学び始めた大学自体から数えると20年以上はこの業界にいることになります。ここでは、私(こば)がこれまでにITエンジニア、プログラマとして身につけた考え方を共有したいと思います。なるべく一般の人にも応用できる形にしようと思っています。専門的な言葉も少しだけ出てきますが、何となくイメージだけでも掴んでもらえると嬉しく思います。
今回は「同じ処理は共通化する」という考え方をご説明します。
同じ処理は共通化しよう
専門的な言葉を使うと、構造化や関数化、クラス化という言葉になりますが、簡単に言うと同じことを何度も書かないようにしましょう、共通した処理はまとめましょう、ということです。文書やメールであればテンプレートを作ってコピペすることに近いかもしれません。
プログラミングでは、このコピペを最小限にするために共通化することを考えます。同じ処理が出てきたら共通部分を一カ所にまとめて一つの塊(関数)ます。そしてその塊を呼出すようにします。一度作ったものを再利用するイメージが近いかもしれません。
なぜ共通化が大切かと言うと、第一に
・開発コストの削減
があり、加えて
・機能の拡張
・バグの特定
をしやすくなるというメリットがあるからです。
具体的にどういうものか、例を挙げて説明します。簡単な例として、ショッピングサイトなどの支払金額(消費税込み)を計算する処理で考えてみましょう(0.1は消費税率10%)。
支払金額 = 商品代金×(1+0.1)
支払金額を計算する際、どんな商品を買ったとしても必ず支払金額は商品代金×(1+0.1)となります。商品表示画面やシッピングカート、注文メールなど色々なところで必要な計算であり、同じような書き方をすることになります。それぞれに上記の式として書いても問題ないのですが、我々ITエンジニアは共通の関数を作成することを考えます。
この場合、calcPrice()という関数を作ります。この中で消費税を計算させます。
//支払金額を計算する
function calcPrice(商品代金){
return 商品代金×(1 + 0.1)
}
そして各計算実行時に、作成した関数を呼び出します。
支払金額 = calcPrice(商品代金)
これを見ただけでは「共通化」のメリットを感じられないかもしれません。確かにその通りで、普段はそれほど大きなメリットはありません。ただ、消費税の計算が変更になった場合や機能が追加になった場合に大きなメリットがあります。
例えば消費税率が10%から12%に変更になった場合、以下のようにcalcPrice()の内部処理を変更するだけで、一斉に変更することができます。その他、丸め処理(小数点以下を四捨五入するか切り捨てるか)なども一斉に変更することがきます。
//支払金額を計算する(0.1→0.12に変更)
function calcPrice(商品代金){
return 商品代金×(1 + 0.12)
}
※実際は消費税率の0.1は直接記載せず、データベースに格納するか、定数ファイルに定義しておきます。
俯瞰し全体像を把握する
以上が共通化に関する考え方になります。共通化を進めるために大切なことは、俯瞰して全体像を把握することです。どこに同じ処理があるか、あるのならば共通化できないかと常に考えることです。そのためには全体が見えている必要があります。全体の設計図がなければ、共通処理を定義することは難しくなります。できる限り初期設計の段階で共通化できる処理を見極めることが大切です。
もちろん作る途中で共通化できることに気付くこともありますので、その場合は一度立ち止まり、俯瞰した視点をもって全体を見直します。行き当たりばったりで対応せず、全体を見渡すことがシステム開発においては重要なのです。
有料記事のご紹介
おすすめの無料記事
この記事が気に入ったらサポートをしてみませんか?