見出し画像

【開発哲学3_17】〜『CODE COMPLETE第2版 第17章(上巻)』の感想〜特殊な制御構造

ちょうど上下巻の折り返しくらいだねー❗️

感想

Goto文とExit文、Resume Next文を使いたがる人、VBAの職場ではやたら多かったなあ。
この章で書いているとおり、Goto文はラベル付けした処理に飛んで実行させちゃうから、強力な分、多用すると考慮漏れで悲惨な目に遭うことになるから、使えても使うことはなかったなあ。

無限ループから脱出したくて、安易に使っていた人が多かった記憶が、、、💧

知っちゃうと、誘惑に勝てない人多いよなあ。
ま、それが人情っちゃ人情なんだけど、
人情じゃ要求どおりにプログラムは動かないんだよな。

詳細

見出しとしては、

  1. ルーチンからの複数のreturn文

  2. 再帰

  3. goto文

  4. 特殊な制御構造の展望

  5. 参考資料

  6. まとめ

て感じ。
return文を、ルーチン実行後に、呼び出し元に処理結果を返すとき以外、ここで読んだものは正直、使えても使わない。

昔いた職場で、

switch文のdefault
try文のfinally
if文のelse

と同じくらい、少し試してうまくいかないと、Gotoラベルを多用してた人もいた。

こちらがあえてそれを使わないだけなんだが、
考慮や設計に時間をかけていると、

Goto文を知らない=素人

と見做してたなあ。

他で考慮されていない制御があると、

全てラベルに行って帰ってこない(だからGotoなのか?と思うくらい)
なので、
考慮漏れで、本来は必要な処理なのに、それすらラベル行きになってしまい、しかも指摘を受けるまでロジックだけでは気づきにくい
てゆーすっごく強力なものだから、使えても使いません(キッパリ)。

じっくり考慮せずに、安易にGotoを使っていると、リリース後や直前で、Gotoを使わずにコードを書くよりも時間がかかることになる。

ただ動けばいいてものではない。
ロジックだけ見ていても、
動かしてみないと、考慮すべきことが見えてこないことも多い。

まとめ

処理を上から下まで通すが基本。
エラーをスルーする
ラベル行きにする
みたいな強力な逃げ道は極力、作らない。
(てか、現場でやらないといけなかったことないな)

この記事が気に入ったらサポートをしてみませんか?