保守性を高めるために Delphi プログラムを構築する方法についてアドバイスを求めています。私は、Turbo Pascal でプログラミングすることを初めて学びましたが、ほとんどが C/C++ で数十年過ごした後、Delphi プログラミングを始めました。基本的な言語に違和感はありません。以前の C++ と C# の経験では、cxxtest と NUnit を使用して TDD に変換しました。
私はこのプログラムを継承し、現在は私が保守を担当しています。主にフォームといくつかのデータモジュールで構成されています。アプリケーションのビジネス ロジックとデータ アクセスは主にフォームに散らばっており、データ モジュールはほとんどグローバル ADO オブジェクトが存在する場所にすぎません。データベースへのアクセスは、通常、TADOQuery または TADOCommand のグローバル インスタンスを参照し、SQL テキストをオブジェクトの関連するプロパティにフォーマットし、その Open または Execute メソッドを呼び出すことによって行われます。
ビジネス ロジックをある程度カプセル化して、単体テストできるようにしようとしています。私はこの答えを見てきましたが、フォームからロジックを抽象化する限り、それは完全に理にかなっています。データ アクセスのベスト プラクティスとは何か疑問に思っています。私の考えでは、データ モジュールは一種のアプリ固有のミニ API (おそらくすべての仮想メソッド) を公開して、テスト用のモック オブジェクトに置き換えることができるようにする必要があります。この他の回答のリンクは、私が正しい方向に進んでいると確信させるいくつかの例を示していますが、それでも、データ モジュールに関する何らかのベスト プラクティス ドキュメントを見ることに興味があります。私が Google で見つけたページのほとんどは、データ バインドされたコントロールをクエリに接続することで設計時に実行できるすべてのクールなことについて、同じ種類の例を示していますが、あまり興味はありません。この時点で。