私の PHP プロジェクトはますます大規模で複雑になっているため、UML を使用して、より優れたシステムの計画と設計に役立てたいと考えています。これは、大学での非常に退屈な UML クラスにもっと注意を払っていればよかったと思うポイントです。とにかく、PHP は型付けが緩いので、クラスで属性型を定義する必要がありますか? 純粋に UML 標準に準拠するためなのか、それとも PHP 用のクラス図を作成する際に特に気にする必要のないものなのか? もちろん、これは私にとってショーストッパーではありませんが、多かれ少なかれ考えていたことです.
1 に答える
UML のクラス図は、使用する言語から完全に独立しているわけではありません。たとえば、一部のプログラミング言語では多重継承を使用できますが、他の言語では使用できません。関数のオーバーロードを提供する言語もあれば、演算子のオーバーロードを提供する言語もあります。これは、クラスを開発する方法に影響を与えます。
UML ダイアグラムでは、何を作成したか、または何を使用するかを説明する必要があります。あなたがそれを使っていたなら、あなたが使っていたかもしれないものではありません。大まかに型指定された属性を使用している場合は、クラスの設計に戻る必要があります。そうしないと、あなたがデザインしたと言っているものと実際に使用されているものとの間に矛盾があることに人々は気付くでしょう。これにより、アプリケーションの保守がはるかに困難になります。UML は自分自身のためだけでなく、後でアプリケーションを保守する他のプログラマーのために作成することを常に念頭に置いてください。
プログラムが大きく複雑になればなるほど、それを機能させるためにはより多くの構造が必要になります。ストロングタイピングは、デザイナーがどこで何が起こるかを理解するのに役立つ方法です。問題は次のようなものかもしれません: 強力な型付けは、より大きく複雑な PHP プロジェクトの設計と保守を改善するのに役立ちますか? そうである場合 (私の意見では「はい」)、強い型付け属性を使用して、それらの強く型付けされた属性をクラスに追加する方がよいでしょうか。強い型付けがまったく役に立たないと確信している場合は、クラスで使用したり、UML で記述したりしないでください。