プログラミングは複雑です。
一般的なRADアプリケーションには、イベントハンドラー内のコードを含むフォーム、クエリを含むデータモジュールがあり、単一のクラスはありません。
そのようなアプリを何百も作成して、さまざまなコンポーネントとそのプロパティおよびイベントの使用方法以外は何も学ぶことができません。
これがDelphiの主な問題であり、間違った方法で物事を行うのは簡単で自然なことです。RAD=悪い。悲しいことに、おそらくアプリケーションの90%はそのように書かれています。
では、このアプローチの何が問題になっていますか?アーキテクチャが欠けています。なぜそれが悪いのですか?耐変化性はありません。要件が変更された場合は、適切に設計されたアプリを使用する場合よりも多くの変更を加える必要があります。
アプリケーションをレイヤーに構造化する必要があることは、今では広く受け入れられています。
層の典型的な分離は
- ビジネスオブジェクト/ルール
- データマッピング/永続性
- GUI
明確に分離されたビジネスレイヤーを使用すると、Win32 GUI、Web GUI、モバイルデバイスGUIを使用できます...
明確に分離された永続性レイヤーを使用すると、同じビジネスレイヤーとGUIレイヤーを使用しながら、たとえばInterbaseからPostgressに切り替えることができます。
また、テストを作成する方がはるかに簡単です。
さて、今すぐ警告させてください。これは長くて難しい道です。習得するには何年もかかり、完全に完了することは決してありません。
アプリを適切に設計し、これらのレイヤーを設定して機能させ、同僚に興奮して見せると、奇妙な外観になり、次のように表示されます。フォームにこのクエリをドロップするだけです。実行すると同じように見えます。しかし、あなたはもっとよく知っているでしょう。
私は他の言語を学ぶための提案に同意しません。つまり、私見では、問題を回避するだけです。アプリケーションを適切に編成および構造化するスキルは、言語に依存しません。真のオブジェクト指向言語であれば十分なので、この時点で別の言語を学ぶ必要はありません。
また、VirtualTreeViewまたは同様のコントロールのソースを見てもあまり教えられないと思います。Winapiについて学ぶことはできますが、それは便利ですが、アプリケーションの設計には役立ちません。
要約すると、アプリケーションの設計、ビジネスオブジェクト、アーキテクチャ、OPF、パターン、およびテストに関するリソースをグーグルで検索します。