Size: a a a

Архитектура ИТ-решений

2020 November 21

GK

Gennadiy Kruglov in Архитектура ИТ-решений
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Преза 2014-го года. Надеюсь, Luxoft не будет иметь претензий. Преза с некоммерческого семинара и на тот момент у автора не было юридических отношений с компанией. Многие концепты до сих пор актуальным.

Тогда ещё было не понятно, кто "победит", Swagger или RAML

Для трушного Contract-First, то есть для генерации кода из дефинишена пришлось немного допилить кодогенератор. Сейчас с этим нет проблем.
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Sergey V
Зачем? Если они имеют внутреннюю достаточную (для их задач) им документацию о дизайне, зачем вытаскивать ее наружу? Какую задачу для разработчика сервиса вы решите этим?
Я так понимаю это ваша настольная книга?
https://i.imgur.com/7IQbWD9.png
источник

SL

Sergey Lukin in Архитектура ИТ-решений
Gennadiy Kruglov
Преза 2014-го года. Надеюсь, Luxoft не будет иметь претензий. Преза с некоммерческого семинара и на тот момент у автора не было юридических отношений с компанией. Многие концепты до сих пор актуальным.

Тогда ещё было не понятно, кто "победит", Swagger или RAML

Для трушного Contract-First, то есть для генерации кода из дефинишена пришлось немного допилить кодогенератор. Сейчас с этим нет проблем.
сейчас с OpenAPI 3.0 генератором тоже приходиться потанцевать перед тем как использовать его.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Sergey Lukin
сейчас с OpenAPI 3.0 генератором тоже приходиться потанцевать перед тем как использовать его.
Сам не смотрел. Значит я оказался излишне оптимистичен)
источник

VA

Viktor Alexandrov in Архитектура ИТ-решений
Мне не нравятся кодогенераторы в том, что они генерят то, что нужно потом дописывать. А не экстендить. Таким образом нет нормального процесса апдейта спеки (сгенерил новый код -> проект не собрался/тесты не прошли -> дописал/исправил). Получается, что если в сгенеренном коде есть изменения, то при новой генерации они стираются. А если бы изменений не было, то код генерированный можно было бы даже не хранить в гите
источник

SV

Sergey V in Архитектура ИТ-решений
Alexander Luchkov
Я так понимаю это ваша настольная книга?
https://i.imgur.com/7IQbWD9.png
Я сейчас скажу, возможно, очень страшную вещь, но архитектура конкретного сервиса она не в бумагах и не в карточках сервисов.
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Sergey V
Я сейчас скажу, возможно, очень страшную вещь, но архитектура конкретного сервиса она не в бумагах и не в карточках сервисов.
Между прочим её даже в коде нету. Если уже на то пошло.
источник

SV

Sergey V in Архитектура ИТ-решений
Она где-то рядом с разрухой по Преображенскому 😬
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Viktor Alexandrov
Мне не нравятся кодогенераторы в том, что они генерят то, что нужно потом дописывать. А не экстендить. Таким образом нет нормального процесса апдейта спеки (сгенерил новый код -> проект не собрался/тесты не прошли -> дописал/исправил). Получается, что если в сгенеренном коде есть изменения, то при новой генерации они стираются. А если бы изменений не было, то код генерированный можно было бы даже не хранить в гите
- кодогенератор можно дописать под нужную структуру, что мы и делали
- можно "защититься" интерфейсами, причём так, что относительно безболезно возможна будет кодогенерация (перегерация)

С WSDL было то же самое, в итоге получалось перегерировать без больших потерь
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Sergey V
Она где-то рядом с разрухой по Преображенскому 😬
Примерно так) Я к тому, что есть процедура определения соответствия кода общему дизайну.
Если у вас её нету - мои соболезнования.
источник

VA

Viktor Alexandrov in Архитектура ИТ-решений
Gennadiy Kruglov
- кодогенератор можно дописать под нужную структуру, что мы и делали
- можно "защититься" интерфейсами, причём так, что относительно безболезно возможна будет кодогенерация (перегерация)

С WSDL было то же самое, в итоге получалось перегерировать без больших потерь
В то, что генерируется по WSDL я один раз в жизни залез
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Alexander Luchkov
Примерно так) Я к тому, что есть процедура определения соответствия кода общему дизайну.
Если у вас её нету - мои соболезнования.
Ну да. Но чтобы определить, нужно сначала "увидеть", а чтобы увидеть нужно иметь задокументированный дизайн
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Gennadiy Kruglov
Ну да. Но чтобы определить, нужно сначала "увидеть", а чтобы увидеть нужно иметь задокументированный дизайн
Именно.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Viktor Alexandrov
В то, что генерируется по WSDL я один раз в жизни залез
Не хочется вдаваться в дискуссию. По-дефотлу вы правы. Но на практике можно выстроить структуру, в которой прегенерируемый код не будет ломать сервисы. Потому что, по сути, будут генерироваться только интерфейсы с объектами передачи данных, а изменения в них так или иначе всегда приводят к изменениям в коде, а иногда и к редизайну.

Но такой подход сложный, для его реализации нужны соотв навыки и воля.

Поэтому чаще всего дефинишен генерируется из кода. Но опять же, на основе стабов сначала. Чтобы побыстрее "допилить" API и зашерить его дефинишен
источник

SV

Sergey V in Архитектура ИТ-решений
Alexander Luchkov
Примерно так) Я к тому, что есть процедура определения соответствия кода общему дизайну.
Если у вас её нету - мои соболезнования.
Если у нас есть некий дизайн, которому что-то должно соответствовать, то почему оно не часть ТЗ?

А если оно не часть ТЗ, то почему оно должно ему соответствовать?
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
А давайте ТЗ и дизайн не путать
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Gennadiy Kruglov
Преза 2014-го года. Надеюсь, Luxoft не будет иметь претензий. Преза с некоммерческого семинара и на тот момент у автора не было юридических отношений с компанией. Многие концепты до сих пор актуальным.

Тогда ещё было не понятно, кто "победит", Swagger или RAML

Для трушного Contract-First, то есть для генерации кода из дефинишена пришлось немного допилить кодогенератор. Сейчас с этим нет проблем.
Есть. Все кодогенераторы ужасны (
источник

SV

Sergey V in Архитектура ИТ-решений
Если мы говорим про результат, то да, не надо путать. А если мы говорим про то, что реализация должна соответствовать каким-то правилам, то эти правила есть часть ТЗ.
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Phil Delgyado
Есть. Все кодогенераторы ужасны (
Нет. Вы путаете задачи проектирования и производства.
источник