mirror of
https://github.com/bpmbpm/doc.git
synced 2026-05-05 23:37:09 +00:00
35 lines
5.5 KiB
Markdown
35 lines
5.5 KiB
Markdown
ADR
|
||
### abbreviation
|
||
- ADR Architecture decision record
|
||
- ADL Architecture description language [wiki](https://en.wikipedia.org/wiki/Architecture_description_language) ; Architecture vs Design
|
||
- ADD Attribute-driven design [Architecture Based Design Method, ABD](https://en.wikipedia.org/wiki/Attribute-driven_design)
|
||
- MDA Model-Driven Architecture, Архитектура на основе моделей [wiki](https://ru.wikipedia.org/wiki/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0,_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%D1%8E): Создание метамодели определяется технологией моделирования MOF (Meta Object Facility), являющейся частью концепции MDA. Название концепции не совсем удачно, так как она определяет вовсе не архитектуру, а именно метод разработки программного обеспечения. Для конструирования программного приложения должна быть построена подробная, формально точная модель, из которой потом может быть автоматически генерирован исполняемый программный код приложения.
|
||
MDA OMG [sparxsystems.com](https://sparxsystems.com/platforms/mda_tool.html)
|
||
CIM - Вычислительно-независимая модель (Computation Independent Model, CIM)
|
||
PIM — Платформо-независимая модель (Platform Independent Model, PIM)
|
||
PSM — Платформо-зависимая модель (Platform Specific Model, PSM)
|
||
DSL - предметно-ориентированный язык (Domain-Specific Language, DSL)
|
||
PDM - модели определения платформы (Platform Definition Model, PDM)
|
||
|
||
### ADR template
|
||
- [Architecture decision record (ADR) / Architecture decision log (ADL)](https://pragmatic-km.guide/practices/knowledge-registration/registration/architecture.html)
|
||
- [mediawiki.org](https://www.mediawiki.org/wiki/Architecture_decision_record_template)
|
||
|
||
### Rational Rose
|
||
- [Prem Chandrasekaran, Neal Ford, Mark Richards](https://www.thoughtworks.com/insights/podcasts/technology-podcasts/architecture-as-code):
|
||
Я хорошо помню MDA. На самом деле, вокруг MDA все еще ведется огромное количество академической работы, просто потому что против нее можно направить массу бесполезных усилий. Большая проблема с архитектурой на основе моделей в том, что у них были эти очень формальные языки, иногда языки диаграмм, иногда языки спецификаций, и они пытались сгенерировать программные системы, которые были бы просто кашей, и заставляли людей собираться в комнате и месяцами усиленно думать над своими диаграммами, нажимать кнопку, и получалось работающее программное обеспечение.
|
||
Мы поняли, что это не работает, потому что мир меняется гораздо быстрее, чем вы можете изменить модели, лежащие в основе этих вещей.
|
||
мой опыт работы с диаграммами как кодом был очень, очень приятным. Не каждую диаграмму все еще можно сделать в виде кода, но я первым делом смотрю, можно ли нарисовать ее в коде, а затем, если это невозможно, только тогда я смотрю на другие инструменты, такие как Draw.io или что-то в этом роде. В наши дни я по умолчанию сначала смотрю на что-то вроде PlantUML или Mermaid.
|
||
Одна из вещей, которую я написал миллион лет назад, — это плагин Rational Rose для инструмента Borland, Delphi. Вы могли бы делать круговую инженерию для модели в код Object Pascal и обратно из Object Pascal в Rational Rose, потому что у него был API расширения.
|
||
Оказалось, что это идеальный пример анти-шаблона, потому что это кажется отличной идеей, а затем она приводит вас в лес, полный драконов и монстров, и вы больше никогда не захотите туда возвращаться.
|
||
|
||
|
||
|
||
### ADR
|
||
- [Немного о подходе Architecture Decision Records](https://habr.com/ru/companies/otus/articles/840412/)
|
||
- [Архитектурный комитет: настраиваем работу с нуля. Часть 2. Приемка архитектурного документа и концепция ADR](https://habr.com/ru/companies/agima/articles/939412/)
|
||
|
||
https://doc.wikimedia.org/Wikibase/master/php/docs_adr_index.html
|
||
|
||
### example
|
||
- [nats-io](https://github.com/nats-io/nats-architecture-and-design)
|