Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Работа Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 202 203 204 205 206 207 [208] 209 210 211   вперед  Ctrl
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
d.nemolchev,

согласен, я с этого и начал этот флейм :)
Ares_ekb
По своему опыту могу сказать, что работает это наверное только в очень крупных интеграционных проектах, в которых есть один регулятор и сотни организаций-участников информационного взаимодействия (каждая со своим ИТ отделом и т.п.). Либо в проектах типа вашего с кучей типового кода. В подавляющем же большинстве проектов людям проще нанять лишний десяток, сотню, тысячу программистов, чем разрабатывать методику моделирования, модели, кодогенераторы.

Я согласен, что проблемы есть.

Во-первых, очень долго и дорого разрабатывать методики моделирования, модели, генераторы и т.п. Если речь о разовой разработке чего-то, то проще написать как есть и забыть. С одной стороны, технологии очень простые, я в своё время писал серию статей по ним. Запилить в первом приближении нужный язык моделирования, редактор диаграмм и транслятор можно за пару дней. И ещё пару месяцев на доработку. Но, с другой стороны, на методику и модель может уйти и пара лет. Очень мало проектов, в которых люди готовы тратить столько времени на модели.

Во-вторых, действительно, есть проблема с доработкой сгенеренных артефактов (документов, кода). Например, у нас в одном проекте по модели генерилась документация (сотни страниц в каждом документе и сотни документов). Аналитик правил модель, генерил документ, отправлял на согласование заказчику. Заказчик что-то правил в документе или делал замечания, а аналитик забывал или не успевал внести изменения в модель и перегенировать документы. Да, и многим аналитикам проще работать с документами, чем с моделями. Плюс на начальном этапе шаблоны документов были ещё не устоявшиеся и многие правки не укладывались в шаблон и даже модель не позволяла описывать многие вещи. Нужно было вносить изменения и в методику моделирования, и в генератор документов. Плюс модель была относительно большая, за каждый кусочек отвечали разные люди (даже из разных компаний). Короче, на устаканивание всего этого процесса, методики, генераторов и т.п. ушло несколько лет.

А, вот, с генерацией кода у меня прямо противоположный опыт. Всё было на много проще. Аналитики разрабатывают модель, пишут спецификации на специальном DSL (разработанном OMG). И по этим спецификациям генерятся XSLT или Java классы. В процессе к сгенеренному коду предъявлялись новые требования, он должен был делать непредусмотренные изначально штуки. При этом просто дорабатывался генератор, а модель и аналитиков это затрагивало минимально и то не всегда. Разработчики тоже особых проблем с генерируемым кодом не испытывали, главное, чтобы не смешивался генерируемый код и написанный вручную.
2 авг 17, 16:04    [20695373]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Max Victory
Member

Откуда:
Сообщений: 3
Вот он - нафталин из конца 90-х и начала 2000-х - код генерация, единая модель, единая система, все щелчком кнопки, мега монолиты.
В то время как остальной мир идет в сторону развития микросервисов и децентрализованных архитектур, в России как всегда стряхивают пыль с устаревших подходов и идут своим путем.
Халявы нет и не будет, когда в России это все таки поймут...
2 авг 17, 17:33    [20695763]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
Max Victory,

микросервисы, эджайл, биг дата и нейронные сети спасут мир! Через пару лет ещё какая-нибудь новомодная хрень будет серебряной пулей, потом ещё что-то. И так до бесконечности каждый день по сто новых очень прикольных фреймвоков и идей.

В действительности очень многим идеям уже очень много лет. Жизненный цикл проектов, в которых используется модельно-ориентированный подход, исчисляется десятилетиями. Например, многие проекты в этой области начинались за долго до появления того же XML и уверен, что переживут и его, и RDF, и JSON, и что там будет модно использовать лет через 10-20.

А, уж, микросервисы - это такая техническая мелочевка, которая вчера появилась, завтра устареет. И вообще она перпендикулярна к моделям. Вот, Swagger позволяет генерить API для микросервисов. Т.е. модельно-ориентированный подход и микросервисы никак не противоречат друг другу.
2 авг 17, 18:13    [20695887]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
На примере того же Swagger. Тыщи программистов каждый день во всем мире на разных языках выполняют одну и ту же тупую, рутинную, однообразную работу - фигачат API. Создателям Swagger лень заниматься этой рутиной, поэтому они запилили DSL для описания API и запилили множество кодогенераторов под разные платформы, которые берут на себя всю эту рутину. В этом суть модельно-ориентированного подхода. И используется он повсеместно. Генерация документации по комментариям в коде, ORM-фреймвоки, всякие DSL, статический анализ кода и т.п. - всё это частные случаи модельно-ориентированного подхода. JetBrains активно развивает свой MPS. Сейчас новый бум MDE, с 90-х годов эта идея достаточно созрела и воплощается в огромном количестве очень разнообразных инструментов.
2 авг 17, 18:29    [20695937]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
bk0010
Member

Откуда:
Сообщений: 3302
Alexey DBA
Для начала сдайте сертификационный экзамен и представьте свои корочки, а потом будите панты по метрологии крутить.
Еще в институте метрологию сдал.

Ares_ekb
Иными словами всё сложно и единственный выход - платить много-много денег очень-очень опытным гуру в этой области? А навести порядок в своей сфере гуру не хотят? Разработать какие-нибудь справочники, модели и пропихнуть их наверх, чтобы законодатели утвердили их нормативными актами, обязательными к исполнению для всех, например?
Подкидываю альтернативу: дождитесь прямой линии с Путиным, нажалуйтесь ему на бардак, тогда для выдачи указаний банкам органы власти должны будут обращаться в ЦБ, чтобы он выдал предписания банкам, а сам ЦБ заставить выдавать всем банкам готовые алгоритмы (покрытые тестами), справочники и т.п.

-Мама, ты где работаешь?
-В банке.
-Хомячком?
2 авг 17, 19:01    [20696001]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
mirudom
Member

Откуда:
Сообщений: 806
уважаемый Ares_ekb,
Ares_ekb
А, вот, с генерацией кода у меня прямо противоположный опыт. Всё было на много проще. Аналитики разрабатывают модель, пишут спецификации на специальном DSL (разработанном OMG). И по этим спецификациям генерятся XSLT или Java классы. В процессе к сгенеренному коду предъявлялись новые требования, он должен был делать непредусмотренные изначально штуки. При этом просто дорабатывался генератор, а модель и аналитиков это затрагивало минимально и то не всегда. Разработчики тоже особых проблем с генерируемым кодом не испытывали, главное, чтобы не смешивался генерируемый код и написанный вручную.

есть возможность посмотреть на цикл разработки-генерации ?
2 авг 17, 19:21    [20696038]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
bk0010,

я же привел пример (15 Mb, PDF). И прямая линия с Путиным не потребовалась.
2 авг 17, 19:46    [20696091]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
mirudom,

есть презентация. Осенью-зимой выйдет сборник со статьей, где это описано подробней. Я, к сожалению, не могу рассказать больше деталей или показывать какие-то демки, проект закрытый. Если есть коммерческий интерес или что-то подобное, то могу дать контакты РП в почту. Могу рассказать про используемые технологии, они частично описаны тут.
2 авг 17, 19:49    [20696101]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Max Victory
Member

Откуда:
Сообщений: 3
Swagger - инструмент код генерации для API. Сама по себе код генерация ничего плохого в себе на таит, вот когда вся система на нем строится, это уже печально.

Если рассуждать на основе фактов:

1) Если бы можно было сделать такой инструмент (конструктор) который позволял бы без програмирования решать весь класс задач стоящих перед банком, его бы уже сделали на Западе.
2) По факту все эти мега платформы не работают, ну вот просто не работают в Сбере
3) Никаких факторов позволяющих говорить о том что в России местыми програмистами можно сделать такую платформу нет (зарплаты, уровень разработчиков и т.д.)
4) Все нормальные разработчики в ужасе от этих "платформ", неудобно, глючно и криво. А самое главное не позволяет внедрить функционал в полном объеме, т.е. нельзя показать результат
5) Все попытки внедрить решения на основе мега конструкторов (например Pega) в Сбере, закончились пшиком. Почему то делается вывод что самописный конструктор позволить что то лучшее сделать.
6) Как эти мега монолитные платформы соотносятся с Agile, который внедряется в Банке, вообще не понятно. Поэтому весь мир уже понял что лучше задублировать код (те же микросервисы) и обеспечить скорость внедрения изменений.
7) Все что сейчас хоть как то работает, делается в "обход" мега платформ.
2 авг 17, 21:36    [20696293]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
RouR
Member

Откуда:
Сообщений: 173
в микросервисах будет модель-описание, какие данные откуда куда гуляют и в какой последовательности микросервисы надо дёргать для конкретного бизнес-процесса
2 авг 17, 22:11    [20696367]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
Max Victory,

я участвовал в основном в интеграционных проектах. Там используется исключительно подход через единую модель. Потому что

1) у участников информационного взаимодействия очень разные данные, и если их не гармонизировать, то ни о каком обмене не может быть и речи,

2) участники могут использовать разные технологии и им нельзя навязывать какой-то один программный продукт, один язык программирования или даже одну техническую архитектуру (у кого-то микросервисы, у кого-то монолиты и т.п.)

3) длительность ЖЦ таких проектов от 10-20 лет и больше, поэтому модель должна быть максимально абстрагирована от модных сейчас технологий, она должна быть платформо-независимой, чем меньше в ней технических деталей, тем дольше модель проживет без революционных изменений. В хорошей модели не должно быть ни микросервисов, ни монолитов - это всё техника.

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

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

Можно ли сгенерить ИС целиком? Скорее всего, нет, только какие-то типовые куски. Модельно-ориентированный подход - это не про какой-то коробочный конструктор или мегаплатформу, которую вы покупаете за кучу денег, потом безуспешно внедряете за ещё большую кучу денег. А про то, что не нужно писать рутинный, типовой, дублирующийся код. Нужно запилить модель или DSL и генерить типовой код из них автоматически.

Причем, разработка единой модели и разработка генераторов - два параллельных процесса. Модель нужна, чтобы навести какой-то порядок и это полезно в любом случае. Ну, что плохого, скажем, в единой схеме данных? Генераторы упрощают жизнь, избавляют от рутины.

Я работал в мед. учреждении, там было наверное с полсотни разных ИС. Каждая из них - эдакий микросервис на FoxPro, MS Access, Delphi и т.п. И проблема даже не в разнообразии технологий, а в том, что нужно было строить аналитику по всем этим данным, а данные вообще не бились между собой. Я нафигачил там SSIS пакетов, которые сливали данные в одно хранилище, чистили их как-то и т.п. Но всё-равно получалась хрень. А потом мы на всё это плюнули и сделали единую, гармонизированную схему данных. И отчеты чудесным образом стали сходиться, и дублирования стало меньше, и качество данных на порядок улучшилось. Микросервисы сами весь этот хаос не упорядочат.
2 авг 17, 22:44    [20696423]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Max Victory
Member

Откуда:
Сообщений: 3
Ares_ekb,

Вы мне сейчас расказывате историю про то что можно ли сделать монолит и его внедрить.

1) Сделать можно, внедрить тоже - вопрос в цене и стоимости/сроках, возможности изменений данной системы.
2) Логическую модель можно сделать общую, но ее надо разбить на домены, не стопорить все в одной точке.

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

Я считаю что данная архитектура в современных условиях (требуется вывод функционала максимально быстро) мертворожденная и явно вступает в конфликт с Agile. Это все кончится (уже идет процесс) тем что все будут бежать от платформ, так как бизнесу нужен результат максимально быстро, а не обещания что через N лет все будет хорошо. N лет никогда не настанет, так как через N лет уже будет другое нужно.
2 авг 17, 23:03    [20696463]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Матын
Member

Откуда:
Сообщений: 52
Интересно, что идет такое взаимодействие: http://sberbanktv.ru/?video=1770
3 авг 17, 00:01    [20696568]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
Max Victory,

Я и не говорю, что нужен монолит. Скажем, каждый микросервис работает с данными, структура которых описывается определенным фрагментом единой логической модели данных. Можно для каждого микросервиса делать схему данных руками, сверяясь с логической моделью, а можно сделать генератор, который для фрагмента логической модели будет генерить нужную схему данных.

Или, скажем, в единой модели можно описать все микросервисы и их API. Сценарии взаимодействия микросервисов и т.п. И на основе этой информации генерить шаблоны API типа того как это делает Swagger. Или генерить какие-нибудь тестовые сценарии. Или генерить документацию.

Ни о каких монолитах тут речь не идет. Генерим только типовой код, чтобы не писать его руками.

Единая во всем этом только модель. Я согласен, что можно разбивать её на домены. Но всё-равно у модели будет некое общее ядро (на пересечении разных доменов). В которое не получится быстро вносить изменения. И в целом в течение нескольких лет вряд ли получится быстро изменять модель, быстро всё перегенерировать, быстро вводить новый функционал. С аджайл такой подход не очень стыкуется.

Но и не нужно тянуть в модель абсолютно всё. В модели должны быть вещи, которые слабо меняются годами. Цвет кнопок на формочках и т.п. нафиг не нужен в модели. Вообще никакая "техника" в моделях не нужна, там должны быть сугубо бизнесовые вещи (модель данных предметной области, структуры документов, процессы). При этом совершенно неважно в реляционной ли БД будут храниться эти данные, в каком формате они будут передаваться (XML, CSV, JSON и т.п.). Если всю эту технику убрать из модели, то и не нужно будет её постоянно изменять и эджайл страдать не будет.

В работе с моделью аджайл и не нужен. Представьте, что Госдума начнет в режиме аджайл каждую неделю вносить изменения в какой-нибудь закон. Модель - это такой же закон. Я в основном имел дело именно с такими "безнесовыми" моделями, из которых целенаправленно выкидывали все технические детали.

Но, в принципе, модели могут быть и более техническими. У Сбера в ЕФС, как я понимаю, как-раз такие. В модели описываются модули, формочки и т.п. (не знаю деталей, врать не буду). Ну, если типовых формочек реально дофига, то почему бы и не описывать их в модели и не генерить автоматически. Вполне возможно, что это реально экономит время и только помогает аджайлу.

Короче, я согласен, что невозможно сделать супер-конструктор, с помощью которого можно целиком генерить единую ИС банка. Я никогда и не говорил такое. Есть бизнесовые модели, которые очень медленно изменяются. Из них можно генерить схемы данных, валидаторы по бизнес-правилам и т.п.

И есть более технические модели, из которых можно генерить шаблоны микросервисов или их API или какие-нибудь типовые формочки и т.п. Если нет 1-2 лет на устаканивание этой модели и генераторов. Если окажется, что формочки не такие типовые как сначала казалось и вообще через месяц окажется, что нужны и не формочки вовсе, а голосовое управление и т.п. То от таких технических моделей мало пользы. Ну, и конечно, нельзя загнать в модель абсолютно всё и потом полностью генерить систему. Требования будут постоянно меняться, нужно будет постоянно переделывать методику моделирования, генераторы.

Такой подход работает, только для медленно изменяющихся "бизнесовых" моделей или для быстро меняющихся "технических" моделей, но из которых генерится очень много типового кода.
3 авг 17, 00:29    [20696598]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
Очевидно, что в ИС банка значительная часть вещей не попадает ни в 1-ую, ни во 2-ую категорию. И их вообще не нужно моделировать, а просто реализовывать как есть.

Вернулись к тому, с чего начали. Это "бизнесовые" модели:
Ares_ekb
По своему опыту могу сказать, что работает это наверное только в очень крупных интеграционных проектах, в которых есть один регулятор и сотни организаций-участников информационного взаимодействия (каждая со своим ИТ отделом и т.п.).
Это "технические":
Ares_ekb
Либо в проектах типа вашего с кучей типового кода.
3 авг 17, 00:38    [20696602]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Alexey DBA
Member

Откуда:
Сообщений: 81
bk0010
Alexey DBA
Для начала сдайте сертификационный экзамен и представьте свои корочки, а потом будите панты по метрологии крутить.
Еще в институте метрологию сдал.

-Мама, ты где работаешь?
-В банке.
-Хомячком?


Видно, что Вы хомячком работаете.
Я сказал о сертификационном экзамене, который подтверждается каждые 3 года, для 2 категории и каждый год для первой. Экзамены принимают органы метрологии. Но судя по тому, кем Вы работаете (и не скрываете) все нормально.
3 авг 17, 05:54    [20696668]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
OldNov
Member

Откуда:
Сообщений: 244
уважаемый Ares_ekb. Судя по стилю и содержанию, ВУЗ вы закончили года три назад, вчера Вас назначили специалистом по холодным продажам процессоного софта в ЕКБ, и Вы не нашли ничего лучше как зажечь тему здесь. Очень чешутся руки попросить Вас раскрыть анналы темы, как внедрялись "совершенно очевидные" и предлагаемые Вами подходы (внедрялись "звездами", а не вчерашними студентами) в Топ-Книге в 2003-2004-м годах, в Связном в 2004-2006-м годах, в ЦБ в 2003-2006-м годах и так далее в тех компаниях, которые Вы знаете по своим внедрениям. Я описал только те где я лично знаю и заказчиков, и исполнителей (в том числе экспатов, потому что "русские эксперты" всегда вызывают подозрение у заказчика).... Также расскажите, где эти компании оказались через 2-5 лет после запуска таких проектов (кроме ЦБ, конечно :-)).

И пожалуйста не в этой ветке, а в специальном разделе "разработка информационных систем" или "просто треп".
3 авг 17, 09:44    [20696966]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
OldNov,

а что там внедрялось-то? Дайте что ли ссылку где это описано или подскажите курсы по телепатии.
3 авг 17, 10:09    [20697034]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Alexey DBA
Member

Откуда:
Сообщений: 81
Ares_ekb
OldNov,

а что там внедрялось-то? Дайте что ли ссылку где это описано или подскажите курсы по телепатии.

Тю! А Вы не в курсе? А тогда чего ж суетесь?
3 авг 17, 10:28    [20697098]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
bk0010
Member

Откуда:
Сообщений: 3302
Alexey DBA
Видно, что Вы хомячком работаете.

Картинка с другого сайта.
Это был анекдот для снятия излишнего напряжения в топике.
Alexey DBA
Я сказал о сертификационном экзамене, который подтверждается каждые 3 года, для 2 категории и каждый год для первой. Экзамены принимают органы метрологии. Но судя по тому, кем Вы работаете (и не скрываете) все нормально.
Да мало ли о чем вы сказали?! Могли бы затребовать еще удостоверение членкорра академии наук. Мы говорим о широко известном и многократно проверенном факте. Даже википедия об этом знает: Механические часы. И никакие турбийоны эту ситуацию не исправят.
3 авг 17, 22:25    [20699215]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Alexey DBA
Member

Откуда:
Сообщений: 81
bk0010
бла бла бла

Обще известный факт, наука доказала, ученые из Великобритании.
Шарик, ты балбес....
Очень, очень "веские" "аргументы". Поздравляю!
4 авг 17, 10:24    [20699807]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
bk0010
Member

Откуда:
Сообщений: 3302
Спасибо! Рад, что вы осознали свои заблуждения.
4 авг 17, 20:51    [20702032]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
serge79y
Member

Откуда: Москва
Сообщений: 13
MDD был мертворожденным явлением. Сделать модели центральным артефактом разработки не вышло. Для простых задач или простых подзадач может работать, но все разработку на них сложно построить.

Первое, самое главное отличие модели от кода состоит в том, что модель не текст. Это приводит к целому комплексу проблем:
- Версионирование и diff/merge моделей гораздо сложней чем текста. Без относительно где и как хранятся модели - в виде файлов, в реляционной БД, NoSQL или спецрешениях типа EMFStore. Понять и презентовать юзеру что именно менялось в модели сложней чем в тексте. Сам процесс мержа тоже сложней.
- Из предыдущего пункта вытекает необходимость так или иначе фрагментировать модель, ибо если каждое изменение будет затрагивать все,
то при параллельной разработке народ утонет в мерже и синхронизации. Фрагментирование приводит к проблеме синхронизации изменений, когда кто-то поменял объект, на который много ссылок из других фрагментов, но при изменении объекта те фрагменты не были загружены.

Второе. В общем и целом модели не живут в изолированной среде. Код, сгенеренный из модели должен интегрироваться с другими API, другими либами, ОС, драйверами и так далее. Это приводит либо к тому, что environment надо тоже некотором образом выражать внутри модели, либо позволять вставлять код в модель либо и то и другое (что в реальности чаще и бывает). Поэтому избежать работы с кодом нам
не удается и тут возникают проблема удобства работы с кодом внутри модели.

Третье. Генерация кода это хорошо. Но приложения надо уметь дебажить. Сгенеренный код можно дебажить, но хорошо бы иметь мэппинг
дебага генеренного кода назад на модель, ставить брейкпоинт в модели и видеть состояние приложения не терминах кода а терминах модели. Не всегда это есть и не всегда это удобно сделано. Плюс в реальности девелоперы захотят фиксить код и иметь возможность импортировать изменения назад в модель. Опять же, не всегда это хорошо сделано.

Существовали и существуют разные тулы, которые так или иначе решают данные проблемы. Но везде есть свои ограничения и девелоперы в общем и целом всегда страдают, работая с моделями а не кодом.
5 авг 17, 14:32    [20702606]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1012
serge79y,

в чем-то согласен с вами, но не во всем.

1) Модель - это действительно не текст, но, скажем, это и не диаграмма. Например, в спецификации UML до версии 2.5 описывались только виды UML элементов, их свойства, связи. В спецификации толком не было сведений как всё это рисовать на диаграммах. Поэтому до сих пор разные UML редакторы совместимы только в части наполнения модели. Можно экспортировать UML модель в виде XMI файла из одного редактора и импортировать в другой UML редактор, но информация о расположении, размере, цвете элементов, о шрифтах и т.п. потеряется. Был очень невнятный стандарт для передачи диаграмм XMI DI, который толком нигде не поддерживался и канул в небытие. В спецификацию UML только в версии 2.5 наконец добавили информацию о диаграммах.

К чему я всё это пишу? К тому, что языки моделирования и диаграммы - это совершенно разные вещи. UML и UML DI - это два разных языка. Для UML есть и текстовое представление. Все модели, которые я видел - это в первую очередь деревья или графы. Которые могут быть представлены в виде диаграммы, текста или ещё как-то. Короче, не правильно отождествлять модели с диаграммами.

Если отвлечься от UML, то, вот, ещё один пример. Тут мы создали язык моделирования. Модель редактируется с помощью древовидного редактора и сохраняется в XMI файл. А тут мы описали как представлять эти модели в виде диаграмм. А тут и тут приводятся примеры как работать с текстовым представлением моделей. К слову, абстрактное синтаксическое дерево программы - это та же модель. Разница между языками моделирования и языками программирования очень размытая.

Так много букв, потому что отождествление моделей и диаграмм - это очень частое заблуждение.

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

EMFStore я смотрел мельком, но проще использовать обычный git-репозиторий. В целом работа с моделью не сильно отличается от работы с кодом. Конечно, модель должна разбиваться на фрагменты. Равно как и исходный код должен разбиваться на отдельные файлы. Трудности с совместным редактированием больших моделей конечно есть. У нас в одном проекте была модель данных ~ 1000 сущностей и ~ 100 процессов. Но проблемы больше организационные, чем технические. Есть повторно используемое ядро модели. Его изменение может занимать какое-то время, может приводить к проблема, если изменили что-то не то. Но то же самое и с изменением кода.

2) Если код встраивается в модель, то что-то не так. От моделей есть польза, если они платформо-независимые. В противном случае, зачем они, можно всё сразу реализовать на ЯП. В модель не должен тянуться код, какие-то технические детали и т.п. Если нужно описывать какие-то сложные правила, которые нельзя описать, например, с помощью диаграммы классов UML, то есть язык OCL. На нем же можно описывать предусловия в процессах и т.п. Это платформо-независимый язык спецификаций, он прекрасно встраивается в UML или Ecore модели. Ещё есть QVTo и другие подобные DSL. Для них есть отладчики и т.п. Эти языки уже можно транслировать в Java, C# и другие ЯП общего назначения.

Если в модель встраивается Java и т.п., то это не правильно.

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

Более того, я пытаюсь сейчас с помощью Isabelle HOL формально доказать, что наш генератор корректный. Это на порядок круче, чем иметь возможность удобно дебажить сгенеренный код. Поэтому у автоматической генерации есть и свои преимущества. Она в отличие от программистов всегда работает одинаково, её достаточно отладить один раз. Но, конечно, генерить на основе модели можно не любой код, только типовой.


Короче, MDE - это конечно не серебряная пуля, его есть смысл использовать только в специфических проектах или для специфических задач. Если этот подход используется неправильно, там где его не нужно использовать, то безусловно это приведет к проблемам, усложнит жизнь разработчикам и т.п. И вообще, с моделями должны работать не разработчики, а аналитики. Наверняка есть проекты, где MDE использовался неудачно. Но есть и проекты, в которых без MDE в принципе не обойтись. У меня все проекты были успешные (как у настоящего "успешного менеджера" - шутка). Но проекты очень специфические, было бы интересно больше узнать о чужих удачах и неудачах что-то более конкретное, чем "надо уволить Грефа", "обратитесь к Путину" и "сам дурак"...
5 авг 17, 19:33    [20702819]     Ответить | Цитировать Сообщить модератору
 Re: что сейчас происходит в IT сбера  [new]
serge79y
Member

Откуда: Москва
Сообщений: 13
Ares_ekb,

К сожалению, вы не видите ситуацию с позиции разработчика продуктов моделирования да и с реально большими проектами где MDD использовался не сталкивались.

Мир теснее чем кажется. Я один из разработчиков Telelogic (Rational) Tau, первого тула на базе UML2 где концепция модель - центр всего было воплощено на уровне, нигде больше не сделанного. У нас даже был свой текстовой синтаксис , который мэпился в модель и была сверх детальная модель вплоть до expression-ов. Был дебаггер на уровне модели и много чего еще. Потом нас купил IBM и я попал в IBM/Rational, в группу по Rational Software Architect и RSA RealTime, плюс Design Manager (https://jazz.net/products/design-management/) В общем, 17 лет опыта разработки средств моделирования. Делал генераторы, симуляторы, анализаторы кода, импорт из различных языков, интеграции и прочее. Знаю как сделать modeling tool с нуля :)

Мой грустный список проблем - это выжимка из практики, то с чем сталкивались мы и наши кастомеры, которые использовали наши продукты. В реальных проектах не уйдешь от смешения рукописного кода и моделей. И дебаг необходим. OCL оказывается неудобным по ряду параметров (перфоманс, формат ошибок, кастомизация и др). Писать трансформации оказывается удобней напрямую работая с моделью, а не используя QVT, JET и подобные решения. Вы говорили о 1000 сущностей. Я вплотную имел дело с моделями с миллионами сущностей из которых генерится гигабайты кода. Ситуация становится не столь радужной.

Вы в некотором роде евангелист modeling подхода, спасибо за пиар подобных технологий, из-за подобных вам людей покупают наши продукты :) Но внедрение MDD это черезвычайный, извините за выражение, геммор для компании. Да и для нас, потому как юзеры оказываются неподготовленны, не хотят читать документацию, не могут мыслить в рамках модели и тонна еще сопутствующих проблем. В общем, в глобальных масштабах MDD провалился и обычной компании лучше с ним не связываться, не имея ресурсов и обученных людей. Т.е если в компании есть лишь один или небольшое число сторонников MDD, то проект с 99.9% вероятностью провалится.
5 авг 17, 22:52    [20703079]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 202 203 204 205 206 207 [208] 209 210 211   вперед  Ctrl
Все форумы / Работа Ответить