構造化プログラミング入門 第1章 構造化プログラミング前史「きちんとコードを書く」ための大原則
まさにエセプログラマーにうってつけな内容。
というのも「構造化」ってなんとなくあんな感じ?ってぐらいしかしらない。まーぶっちゃけ「オブジェクト指向」も正しく説明できないんだけど・・・orz
私のプログラミング歴はCOBOL85→N88BASIC少々→VB4.0→VB5.0→HTML→JavaScipt→VBScriptってな感じ。
COBOLは学校の授業で習ったので基本的な書き方は学んだはず。でも結局COBOLは学校だけでしか使わなかった。
VBは専門学校の授業で。といってもまぁ経済的理由で夏休み後に辞めたので実質3ヶ月ぐらい?でもここである程度の基礎は学んだのでそのまま実務の世界で役に立った。
初めての仕事はVB4.0で動いているシステムをVB5.0で機能改善しながら移植すること。このときの上司が凄い人で昔NASAでロケット業務に関わっていたらしく酔えばブラックホールの話になる人。って話は関係なくてそんな凄い人なのと上司の息子さんと同年代ってことできっちり仕事への関わり方やコードの書き方を教えてもらった気がする。
で、その後1年ぐらいVBAとかカスタマイズをやったあとにASP(Active Server Pagesのほう)に出会う。HTMLとJavaScriptは個人ホームページをつくために学んだだけで実践はなし。VBをやっているから大丈夫でしょうというアサインだったのだ。
まずはお決まりの既にあるソースをコピーしてカスタマイズってところから実践しながら学ぶタイプ。この関わったプロジェクトが大手企業で変数名のつけ方からなにまで規則書があるがちがち仕様。関数もきちんとライブラリ化されている。そこで2年近く関わったのでそのやり方が自分のやり方になった。
その後関わったシステムで衝撃を受ける。いまのところなんだけど関数化がほとんどされていない上から下へのインタプリタっていうの?あれ。ライブラリも貧弱で1つの命令文がどんなに長くなっても1行として書くというやり方。おまけに仕様書無しだったのでソースから読み取るのに物凄く労力を費やした。
こうはなりたくないと思って仕事をしている今日この頃にこの話は一から学ばせてもらえた。よく考えるとこういう根本的なところを学ぶ時間って社会人にはある意味遠い世界なんだよね。こういう内容って主に学校でしょ?
ちょっとプログラミングが書ければ「知っている」ことが前提で、しかも変にプライドが高い自分は他人に聞くことができず曖昧なまま今に至る。だから懐かしいCOBOLやらBASICのGOTOで書かれたこの内容は物凄く理解することが簡単だった。
結論からいうとたぶん私の書くコードはある程度「構造化」になっていると思う。でも変数とかのグローバル化とかは適当だったりするんだよね。スコープの意味がたぶんきちんと理解できていないんだろうなぁ。
本当は時間があったけれどもこの1章で頭の許容範囲を超えたので(をい)第2章以降は来週かな。