Go (GoLang) を使い始めたばかりで、素晴らしい言語だと感じています。しかし、長年の UML とオブジェクト指向メソッドの後で、Go プログラムのモデリング (リバース エンジニアリング) には少し問題があることがわかりました。Go 構造体にはプロパティ/状態が含まれますが、メソッドは含まれず、構造体をパラメーターとして使用するメソッド/関数は含まれません。 (Struct をオブジェクトのように見せるために魔法をかけるものでさえ)、メソッドや状態は含まれません。
これは、Go プログラムをモデル化するために別の方法論を使用する必要があるということですか、それとも UML が言語構造を十分にモデル化するということですか?
はい、構造体でメソッドを使用すると、UML のオブジェクトの動作を構造体と構造体メソッドの組み合わせを介して Go にマッピングできることはわかっていますが、これは間違っていると思います。ソートします。
動作がオブジェクトによって制御されなくなった素晴らしい新しい世界のために、新しい (考えを滅ぼす!) 作図技術の時が来ましたか? 影響している状態を参照せずに行動をモデル化できますか?
アップデート:
データ フロー ダイアグラムを試して、パラダイムにより適しているかどうかを確認しています。ここまでは順調ですが、Struct のメソッドをモデル化すると行き詰まることになると思います。DFD の妥協点は、メソッドが関数として扱われることです。:(
Go は継承をサポートしています!!! ああああ!!! (頭が吹き飛ばされます。)サブ構造体が継承するメソッドを持つ別の構造体で構成される構造体を作成できます...これを取得しますか?私の心は吹き飛ばされます。UML が有効であることを意味します...完全にですが、汚い感じがします。
Go は継承をサポートしていません。:) それならDFDだ!