1

groovy で大規模なアプリケーションを作成し、クロージャ、カテゴリ、およびその他の概念 (懸念事項を分離するために定期的に使用するもの) を利用したいとします。このようなもののいくつかのアーキテクチャを簡単な方法で図式化または伝達する方法はありますか? たとえば、クロージャーのマップが行う可能性のあることを (詳細なドキュメントなしで) どのように詳しく説明しますか? 動的言語機能は複雑であると見なされているため、通常、大規模な規模では推奨されないことは理解していますが、そうである必要がありますか?

4

2 に答える 2

3

UMLは、そのようなことを処理するための設備が整っていませんが、メンタルマッピングを実行する場合は、UMLを使用して設計を伝達できます。ほとんどの動的概念とUML静的オブジェクトモデルの間に同型を見つけることができます。

たとえば、クロージャは、1つのメソッドインターフェイスを実装するオブジェクトと考えることができます。このようなインターフェースを、 interface Callable {call(args [0 .. *]:Object):Object}よりも少し具体的なものとしてモデル化すると便利です。

ダックタイピングも同様にインターフェースとして使用できます。quackできるものを取得するメソッドがある場合は、interface _interface Quackable {quack()}の特殊化であるオブジェクトを取得するものとしてモデル化します。

あなたは他の概念のためにあなたの想像力を使うことができます。設計図の目的はアイデアを伝えることであることに注意してください。したがって、すべてを100%モデリングすることに過度に衒学者にならないでください。図に何を伝えたいかを考え、それを確実に伝え、メッセージを薄めるような余分な詳細を排除してください。また、対象読者には明らかでない概念を使用している場合は、それらを説明してください。

また、UMLが本当に言いたいことを処理できない場合は、他の方法でメッセージを視覚化してみてください。UMLは、共通の語彙を提供し、図のすべての概念を説明する必要がないため、良い選択にすぎません。

于 2009-07-09T06:52:39.340 に答える
1

冗長なドキュメントを生成したくない場合は、画像は千の言葉に値します。FreeMindのようなツールは、自分の考えを明確にし、他の人に伝えるのに役立つことがわかりました。また、中レベル (または少なくともそれ以上) のドキュメントに投資する意思がある場合は、Sphinxをお勧めします。使い方はとても簡単で、Python モジュールのドキュメントを対象としていますが、プロフェッショナルで見やすい完全に一般的なドキュメントを生成できます。ドキュメントには、 Graphvizを使用して作成された図などを含めることができます。

于 2009-07-09T06:34:21.683 に答える