現場で使えるIT技術のブログ

金融、流通、情報セキュリティプロジェクトなどの開発・運用・保守を経験したIT経験のあるまっちゃんが教えるIT技術者のための技術ブログです。

第4回[ソースコード] 基本的な処理について

みなさん、こんばんは


まっちゃん先生です。


今回はソースコード第一回目の基本的な処理について、

です^^


主に以下の3パターン

・分岐処理

・繰り返し処理

・順次処理



この3つの組み合わせでソースコードの処理が記載されています。


基本的には、上から、文字列や数字等の何かしらの定義があり、上から順に処理されていきます。


まあ、ITの現場でこんなざつなフローチャート描いたら絶句ものですけどね笑

言語自体は流行り廃りがありますが、何でも良いのです。


例えば、あまりにも単純な例ですみませんが、こういうのと

public static void main(String args[]){

     public int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } ;

     public int sum = 0;


     for(int matyan = 0 ; matyan < num.length ; matyan++ ){

            sum = sum + num[matyan];

     }

}


こういうの

public static void main(String args[]){
public int[] num = {1,2,3,4,5,6,7,8,9,10};

publicn int sum = 0;

for(int matyan = 0 ; matyan < num.length; matyan++){sum = sum + num[matyan];

}

}



どちらが、あなたは好きですか?

結構2つ目の例のソースコードに出くわすことがあり、

自分はこういうのをみたら、なんかインデントを直したくなりますね笑


そうとう気持ち悪いですから、、、


括弧がつながりすぎてて、視力検査かな?

と思うことがよくあります。


他人にこう思われないように、インデントをつけるクセがあるかどうか?

というので、保守性は飛躍的あがります。


正直、デバッグしているときに、どこが問題かわからなくなりますので、、、


上であげたJavaコードのような大規模開発向けのソースコードは

特に、、、、


あとは、SQLのビューとかも

select distinct matyan1,matyan2,case when matyan3 = 0 then "3" else "N" as ma3,sum(matyan4) as matyan4,(select case when matyan5 > 0 then "plus" else "minus" as matyan5 from matyan),...,matyan100 from matyan inner join ・・・where ・・・

という1行で果てしなく書いてあるのもありまして、、、


萎えます;;;;

少なくとも下のように書いてくれたほうがマシな気はします。


select distinct
  matyan1,
  matyan2,
  case when matyan3 = 0 then "3" else "N" as ma3,
  sum(matyan4) as matyan4,
  (select case when matyan5 > 0 then "plus" else "minus" as matyan5 from matyan),
  ...,
  matyan100
from
  matyan
  inner join
  ・・・
where
  ・・・


ということなので、何がいいたいかというと、

少なくとも自分で混乱しないようにソースコードで何か処理を書くときは、

・処理の順番

・インデントをつける

というのを意識しましょう^^