【開発哲学3_17】〜『CODE COMPLETE第2版 第17章(上巻)』の感想〜特殊な制御構造
ちょうど上下巻の折り返しくらいだねー❗️
感想
Goto文とExit文、Resume Next文を使いたがる人、VBAの職場ではやたら多かったなあ。
この章で書いているとおり、Goto文はラベル付けした処理に飛んで実行させちゃうから、強力な分、多用すると考慮漏れで悲惨な目に遭うことになるから、使えても使うことはなかったなあ。
無限ループから脱出したくて、安易に使っていた人が多かった記憶が、、、💧
知っちゃうと、誘惑に勝てない人多いよなあ。
ま、それが人情っちゃ人情なんだけど、
人情じゃ要求どおりにプログラムは動かないんだよな。
詳細
見出しとしては、
ルーチンからの複数のreturn文
再帰
goto文
特殊な制御構造の展望
参考資料
まとめ
て感じ。
return文を、ルーチン実行後に、呼び出し元に処理結果を返すとき以外、ここで読んだものは正直、使えても使わない。
昔いた職場で、
switch文のdefault
try文のfinally
if文のelse
と同じくらい、少し試してうまくいかないと、Gotoラベルを多用してた人もいた。
こちらがあえてそれを使わないだけなんだが、
考慮や設計に時間をかけていると、
Goto文を知らない=素人
と見做してたなあ。
他で考慮されていない制御があると、
全てラベルに行って帰ってこない(だからGotoなのか?と思うくらい)
なので、
考慮漏れで、本来は必要な処理なのに、それすらラベル行きになってしまい、しかも指摘を受けるまでロジックだけでは気づきにくい
てゆーすっごく強力なものだから、使えても使いません(キッパリ)。
じっくり考慮せずに、安易にGotoを使っていると、リリース後や直前で、Gotoを使わずにコードを書くよりも時間がかかることになる。
ただ動けばいいてものではない。
ロジックだけ見ていても、
動かしてみないと、考慮すべきことが見えてこないことも多い。
まとめ
処理を上から下まで通すが基本。
エラーをスルーする
ラベル行きにする
みたいな強力な逃げ道は極力、作らない。
(てか、現場でやらないといけなかったことないな)