Есть ли способ спланировать и построить схему архитектуры для динамических языков сценариев, таких как groovy или python? - PullRequest
1 голос
/ 09 июля 2009

Скажем, я хочу написать большое приложение на Groovy и использовать преимущества замыканий, категорий и других понятий (которые я регулярно использую для разделения задач). Есть ли способ наметить или иным образом передать архитектуру некоторых из этих вещей? Как вы детализируете (без подробной документации), что может сделать, например, карта замыканий? Я понимаю, что динамические языковые функции обычно не рекомендуются в более широком масштабе, потому что они рассматриваются как сложные, но так ли это?

Ответы [ 2 ]

3 голосов
/ 09 июля 2009

UML не слишком хорошо оборудован, чтобы справляться с такими вещами, но вы все равно можете использовать его, чтобы сообщить о своем дизайне, если вы хотите сделать какое-то умственное картирование. Вы можете найти изоморфизм между большинством динамических концепций и статической объектной моделью UML.

Например, вы можете рассматривать замыкание как объект, реализующий интерфейс одного метода. Вероятно, полезно моделировать такие интерфейсы как нечто более конкретное, чем интерфейс Callable {call (args [0 .. *]: Object): Object} .

Утиная печать также может использоваться как интерфейс. Если у вас есть метод, который берет что-то, что может крякать, смоделируйте его как объект, который является специализацией интерфейса _interface Quackable {quack ()}.

Вы можете использовать свое воображение для других концепций. Имейте в виду, что целью дизайна диаграмм является передача идей. Так что не будьте чрезмерно педантичны в отношении моделирования всего на 100%, подумайте, что вы хотите, чтобы ваши диаграммы сказали, убедитесь, что они говорят это, и устраните любые посторонние детали, которые бы разбавили сообщение. И если вы используете некоторые понятия, которые не очевидны для вашей целевой аудитории, объясните их.

Кроме того, если UML действительно не может обработать то, что вы хотите сказать, попробуйте другие способы визуализации вашего сообщения. UML - это только хороший выбор, потому что он дает вам общий словарный запас, поэтому вам не нужно объяснять каждую концепцию на диаграмме.

1 голос
/ 09 июля 2009

Если вы не хотите создавать подробную документацию, картинка стоит тысячи слов. Я нашел такие инструменты, как FreeMind , полезные как для разъяснения моих идей, так и для передачи их другим. И если вы готовы инвестировать в документацию среднего (или хотя бы более высокого) уровня, я бы порекомендовал Sphinx . Он довольно прост в использовании, и, хотя он ориентирован на документирование модулей Python, он может генерировать совершенно общую документацию, которая выглядит профессионально и просто на глаз. Ваша документация может содержать диаграммы, например, созданные с использованием Graphviz .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...