現在の仕事では、オブジェクトに大きく依存する一連の Perl スクリプトを作成しています。(Perl のbless()
ハッシュを使用して、可能な限り OO に近づけます)
さて、これをより適切に表現する方法がないため、私の会社のほとんどのプログラマーはあまり賢くありません。さらに悪いことに、彼らはドキュメントを読むのが好きではなく、他の人のコードを理解するのに問題があるようです。カウボーイコーディングはここでのゲームです. 彼らが問題に遭遇してそれを修正しようとするときはいつでも、実際には何も解決せず、通常は事態を悪化させる恐ろしい解決策を思いつきます。
これにより、率直に言って、ダックタイプの言語で書かれたコードを信頼していません。例として、オブジェクトの誤用に対して明示的なエラーが発生しないという問題が多すぎます。たとえば、 typeA
に memberfoo
があり、 のようなことをするとinstance->goo
、すぐに問題に気付くことはありません。null/未定義の値が返され、おそらく原因を見つけるのに 1 時間を無駄にするでしょう。その後、元の問題を適切に特定できなかったため、別のものを変更することになります。
そこで私は、スクリプト言語を維持し (その急速な開発が利点です)、オブジェクトが適切に使用されていない場合に明示的なエラー メッセージを表示する方法についてブレインストーミングを行っています。コンパイル段階や静的型付けがないため、エラーは実行時に発生する必要があります。ユーザーが「このオブジェクトには X がありません」という非常に明確な通知を受け取る限り、私はこれで問題ありません。
私の解決策の一部として、メソッド/変数を使用する前に存在するかどうかを確認する必要はありません。
私の仕事は Perl ですが、これは言語にとらわれない可能性があると思います。