argius note

プログラミング関連

正しいプログラミングテクニックの迷信?

ちょっと賑わっている話題です。私にも分かる分野なので、たまには乗っかってみます。

『「変数のスコープは狭いほど良い」と妄信する』について

狭いほど良い、っていうのは違うかな。「必要ないのにスコープを大きくしない」かな。
グローバルスコープは、使ってはいけないというわけではないでしょう。注意したいのは、

  • 全体のルールに関わる可能性があるので、プロジェクト全体で厳密に管理する必要がある
  • グローバル関数なんかは同期化とかも考える必要があったりする

といったところ。

『「同じロジックのコードを2度以上書くな」と妄信する』について

1. 将来的なプログラムパターンの変更の可能性

ほぼ同意します。

2. 抽象化レベル

私の感覚では、抽象化するものっていうのは、すべからく抽象化された機能として抽出でき、理解もしやすいものかと考えます。無理矢理に抽象化するから、直感的に理解できなくなってしまうのではないでしょうか。

3. 共通化の投資効果

これはプログラミングテクニックというか、テクニックを使うか使わないかのトレードオフということかと。

4. 将来の保守性や拡張性

XPのYAGNIっていうのがありますね。

5. レベルの問題(?)

これは共通ルーチンに限った話ではないですね。それに、これもプログラミングテクニックというより、開発手法とか運用方法の話かと思います。

『「プログラミング言語を極めるのが大切」と妄信する』について

これには特に異論はありません。
私も「下流工程」の作業では、メインの開発より、支援ツールの作成とかサーバの運用とかの仕事の方が多いです。ネットワークとかデータベースもそれなりに知らないと大変です。
さすがにハードウェア、PCではなくサーバとかの、までになると、ソフトウェア開発側とは棲み分けされていて触れる機会が少ないので、ハードルは高いでしょうね。

まとめ

それぞれのテクニックがどうこうではなく、「妄信」がいけない、という話だったのかな、と思いました。あと、TPO。