プログラミングにおけるクラスの名前またはセマンティクス

1.名前を発明するためのプログラミングを行う場合、多くの時間がかかります。 名前のような重要ではないように思えます。 そして今日だけ、私がそれに時間を費やしている理由と、結局、これが時間の無駄ではないことに気づきました。



モデルの名前を発明するために、クラス(ドメイン)は設計とコーディングの両方で重要です。 結局のところ、この名前には、実生活や他の分野からの巨大な連合の雲が付随しています。



名前を選択することは、操作、オブジェクト、関係などのいくつかの複雑なものが抽象化レベルによって隠されている設計段階の1つです。 つまり、割り当てられた名前の背後に隠れています。



名前が誤って選択され、モデルが何であるかを歪曲的に反映している場合、将来コードとドキュメントを読む人だけでなく干渉します。 混乱を招きます。 失敗した名前は、モデルの詳細化を妨げ、このモデルと他のモデルまたはユーザーとの関係について考えることを妨げます。



ヨットを呼ぶと、帆走します。



2.新鮮な個人的な例。 さまざまなクラウドプロバイダーでプリインストールされた仮想マシンを実行するコードを書いています。 最初に、モデル、つまり、ユーザーが設定してステップバイステップ形式で作成し、インストール結果が保存され、ユーザーが他のアクションを実行できるオブジェクトが最初にインスタンス-仮想マシンのインスタンスになったことが判明しました。 この名前は、このタスクに余分なプロパティを集めました-状態変更の履歴を保存し、プロバイダーでインスタンスの現在の状態を追跡し、ユーザーパネルに表示します。 実装することはできませんでしたが、常にバックグラウンドで動作します。 これはインスタンスの一般的な動作です。 最初のタスクは非常にシンプルで最小限ですが、インスタンスを実行し、その上にソフトウェアをインストールして構成し、ユーザーに結果を提供します。



名前が気に入らないので、モデルはLaunchedInstanceに絞り込まれています。つまり、「現在起動されている仮想マシンのインスタンス」です。 この制限は不必要な概念を遮断しますが、この名前にはまだ主要な短いタスクからそらされる多くの関連付けがあります。



その結果、モデルの正しい名前はLaunchになりました。 直接操作を開始します。 クラスのメソッドと属性は同じままで、名前のみが変更されています。 ただし、必要な最小値のみが含まれるようになり、過度のセマンティックロードは発生しません。 その後、クラシックのロジックを開発し、プロジェクトの他のコンポーネントとの相互作用を整理することが容易になりました。



3.名前を考えることは、デザインの直接的な部分です。 そして、良い言葉が見つからず、不満を感じる場合は、おそらくモデルの考えが不十分で、あなたがそれを呼んだことを理解していないか、プロジェクトのこの部分を十分に考えていないので、別のモデルが必要になります。



名前の選択に費やす時間は無駄になりません。 これは、モデルの最も早いテスト、つまり開発者がタスクを正しく提示するかどうかをチェックする一種の統合テストとして認識できます。



All Articles