StackOverflow で時期尚早の最適化に関する多くの質問を見ました (そして検索しました)。巷の言葉は、それがすべての悪の根源であるということです。:PI 私はしばしばこれについて有罪であることを告白します。コードの読みやすさを犠牲にして速度を最適化するわけではありませんが、タスクにより適していると思われるデータ型とメソッドを使用して論理的な方法でコードを書き直します (たとえば、Actionscript 3 では、型なし配列の代わりに型付きベクトルを使用します)。コードをよりエレガントにすることができれば、そうします。これは通常、自分のコードを理解するのに役立ち、これらの変更を行っている理由がよくわかります。
いずれにせよ、今日考えていたのは、OOP ではカプセル化を促進し、実装を隠してインターフェースを促進しようとして、クラスが疎結合になるようにすることです。アイデアは、内部で何が起こっているかを知らなくても機能するもの、つまりブラック ボックスのアイデアを作成することです。
そういうわけで、ここに私の質問があります.OOPはモジュール性を促進するので、クラスレベルでコードの深い最適化を試みるのは賢明ですか? それとも、これは時期尚早の最適化のカテゴリに分類されますか? ユニットテストを容易にサポートする言語を使用すると、クラス自体が入力を受け取り、出力を生成するモジュールであるため、クラスのテスト、ベンチマーク、および最適化を行うことができると考えています。しかし、コードを書いている一人の人間として、プロジェクトが完全に終了するまで待ってから最適化を開始する方が賢明かどうかはわかりません。
参考までに: 私はこれまでチームで働いたことがないので、このような経験を持つ開発者にとって明らかなことは、私にとってはなじみのないことかもしれません。
この質問が StackOverflow に適していることを願っています。クエリに直接答えた別の質問は見つかりませんでした。
ありがとう!
編集:質問について考えてみると、「プロファイリング」が「単体テスト」ではなく正しい用語だった可能性があることに気付きました。単体テストではモジュールが正常に動作することを確認し、プロファイリングではパフォーマンスを確認します。さらに、私が以前に尋ねるべきだった質問の一部 - 個々のモジュールを作成した後にプロファイリングしても、アプリケーションが完成した後のプロファイリングの時間は短縮されませんか?
私の質問は、私がやろうとしているゲーム開発から生じています - グラフィックエンジンなど、最適に動作するモジュールを作成する必要があります (それらが別の話になるかどうか:D)。パフォーマンスがそれほど重要でないアプリケーションでは、おそらくこれについて心配する必要はありません。