Pull to refresh

Comments 50

Нам преподавали и заставляли на дипломе предоставлять UML схемы, но дальше дело в жизни не пошло. Я «умер» как программист и стал системный администратор, который изредка пишет скрипты. А однокашники, кто программировал, рассказывали, что не используют в своих конторах.
Я считаю надо в следующий раз с адептами Кобола обсудить waterfall model.
Ну зачем так по-детски реагировать? Если кроме «сам дурак» нечего сказать, лучше промолчать.
Писал об этом неоднократно: «отзеркаливание». Когда идёт комментарий «вне контектса», то человек разговаривает сам с собой. Тут я — зеркало. А Вы — разговариваете сами с собой. Давайте изучим:

Статья про UML
— Я считаю надо в следующий раз с адептами Кобола обсудить waterfall model.
— Ну зачем так по-детски реагировать? Если кроме «сам дурак» нечего сказать, лучше промолчать.

Феномен в том, что получается вполне осмысленный диалог, который человек ведёт внутри себя со своей совестью.
Советую всем, кто пишет участвует в полемике (любой) обязательно проверять её на «внутренние диалоги». В разговорной речи это сложно заметить, но именно в форме комментариев это выглядит очень наглядно.
Обратите внимание, ответ «сам дурак» на реплику " Я считаю надо в следующий раз с адептами Кобола обсудить waterfall model" не имеет никакого смысла, поскольку в реплике не содержится никакого оскорбления для адептов Кобола. Поэтому ваша чудесная теория, о которой вы так любите писать, в данном случае не подходит.
Вы вместо того, чтобы неоднократно писать одно и то же, даже когда оно не подходит, попробуйте писать разное, в зависимости от ситуации.
Предлагаю Вам всё-таки поверить психологам. Для Вашего удобства обезличу обе стороны Вашего «я» и редуцирую лишние слова.

Статья про UML
А: Я считаю надо в следующий раз с адептами Кобола обсудить waterfall model.
В: Ну зачем так по-детски реагировать? Если кроме «сам дурак» нечего сказать, лучше промолчать.
А: В реплике не содержится никакого оскорбления для адептов Кобола
В: Вы вместо того, чтобы неоднократно писать одно и то же, даже когда оно не подходит, попробуйте писать разное, в зависимости от ситуации.

Хотя, конечно, Психологию достаточно сложно считать «точной» наукой, некоторые прикладные теории достаточно хорошо работают.
Давайте, Вы мне еще что-нибудь поотвечаете, а мы продолжим эксперимент. Тут главное не волноваться. Представьте, что Вы возлежите на кушетке в удобной позе, я сижу за столом, заваленным книгами по психологии.
Мне вот интересно — то, что вы можете писать только в «recovery mode» не наводит вас на мысль, что вы что-то делаете не так?
Я попрошу Вас поделиться той мыслью, на которую это должно меня навести.
Я же написал — «вы что-то делаете не так».
А: Я считаю надо в следующий раз с адептами Кобола обсудить waterfall model.
В: Ну зачем так по-детски реагировать? Если кроме «сам дурак» нечего сказать, лучше промолчать.
А: В реплике не содержится никакого оскорбления для адептов Кобола
В: Вы вместо того, чтобы неоднократно писать одно и то же, даже когда оно не подходит, попробуйте писать разное, в зависимости от ситуации.
А: Я что-то делаю не так?
В: Я же написал — «вы что-то делаете не так».

*** МАКСИМ ***
ой, чудно как из под чужого аккаунта писать… :) Здравствуйте!
Барух, Кобол это старый, громоздкий язык поражающий своей избыточностью (на первый взгляд), модель «водопада» часто используется как синоним отсталости и каменного века ИТ (не совсем впрочем заслуженно, но это не так важно), правильно ли я понял Вас, что своим предложением Вы намекаете, что и тема этой статьи настолько же устарела и ни кому не интересна? :) Если НЕТ, то тогда поясните про Кобол ;), если ДА, то почему Вы все же так считаете? Спрашиваю, потому что подозреваю что Вы ее не прочли (это не наезд, разумеется) и до сути не добрались, ну или, знаете что-то чего не знаем мы с Александром, и тогда вдвойне было бы интересно это от Вас услышать.
Заранее, спасибо!
Кстати, «водопадную» модель реально нужно обсуждать.
У меня было есть достаточно опыта: работа на гос. структуры по гос. контракту.
Есть «классическое» ТЗ, которое бьется на этапы. Нет, вам вполне позволят написать первым этапом (1-2-3-4 месяца) что угодно. Хоть «сбор и анализ требований», хоть «UML-моделирование», хоть «подготовка первого спринта». Но второй этап уже не должен содержать того, что уже упоминалось в первом этапе. Куратор проекта со стороны заказчика вас будет курировать по ТЗ (которое, опять же — вы сами себе написали, но в жанре «водопадного ТЗ»). Выходов из такой ситуации несколько:
— сказать, что заказчик = дурак, требует невозможного, так программисты не работают и уйти с гордо поднятой головой (пустыми карманами);
— прогнуться под заказчика, сказав — «ок, водопад? будет тебе Ниагара»!!!
— проевангелировать заказчика, скажем, «аджайлом», оставить ТЗ в качестве формальности, но работать «гибко».

Я попробовал второй и третий пункт. Надо сказать, второй ВСЕГДА лучше для такого рода проектов. Третий пункт был весел в течение всего срока работы над проектом, но «приёмка» это вам не «куратор». Лучше или хуже — роли не играет. Надо «как положено».
Так что «водопад» не есть «зло», а «аджайл» не есть добро. А друг тебе тот, кто деньги платит.

Опять же — «кобол» не равно «водопад». «Водопад» не значит «устарел». Водопад означает «комфортные условия взаимодействия „заказчик-исполнитель“ -да! иногда в ущерб качеству/количеству функционала, потенциально-возможному.

Ну и на закуску бойкому молодняку (который, Максим, и дискет в руках не держал — удачная шутка? а?).
Альтернативы „водопадной“ модели были предложены отнюдь не айтишниками. Очень многое из того, что айтишники считают „своим“ и гордятся этим, придумано „не ими“. Очень смешно, когда молодые „переоткрывают азбучные для классического инженера идеи“. Ну или воюют с „водопадами“, а также артефактами в виде „ветряных мельниц“ типа ТЗ.

ТЗ — это большое БЛАГО для программиста. „Водопад“ — возможность творчески работать, не загоняя себя в угол.
Обсудим? Только с Коболом у меня не очень :)
Аналогично, учили в универе, заставляли в дипломе использовать
на рабочем месте я использую UML для предварительного проектирования — можно наглядно, для руководства, предоставить информацию о будущем приложении — блоки и их взаимодействие, диаграмма классов, диаграмма базы данных. Многие узкие места всплывали во время такого проектирования — какие классы лишние, как по блокам\модулям рассосать систему и тд. Сразу можно прикинуть, сколько времени займёт программирование того или иного блока — полезно для планирования.
Но самое главное — если на мой проект придёт новый человек — ему достаточно будет прочитать dev-guide и набор диаграмм, по которым он сможет быстро разобраться в каком модуле следует вносить изменения в том или ином случае
Вот от Вас в подробностях хотелось бы узнать — как Вы это делаете. Статью осилите? :)
Да, конечно могу, в ближайшее время займусь тогда
*** МАКСИМ ***
А от «нас» было совсем не интересно? ;) Честно говоря, мы ожидали, что вопросов по существу будет «больше». Или прав Барух, и это все как «Кобол с водопадом»? Или может мы просто не достаточно внятно про метамоделирвание и шаблонную кодогенерацию рассказали?
Плюсанул, но Не читал. :)

Просто когда речь идет про UML-моделирование, я ломаюсь на том количестве текста теории, которое пишется во всех учебниках, максимально запутанным языком. Но там хоть картинки есть. А у вас и того нету.

Лучшим поучительным повествованием было бы, если б вы подробно и в картинках описали на тему того, как Действительно Просто и наглядно моделировать _что_угодно_. Причем, без простыни текста, который сопровождает написание картинок
— максимально коротко, понятно даже ребёнку.

Ведь UML я так понимаю был создан для того, чтобы Упрощать понимание проектов, а не усложнять их?
***МАКСИМ***
да, я уже коллегам высказал предположение, что должного интереса статья не вызывает именно потому что «много букв» и мало картинок и кода. Даже именно кода. Потому что просто картинки это тоже не интересно. Интересно увидеть как они в код превращаются, «как» и в «какой», и в какое его количество. А вообще прочитайте, там где-то в районе середины как раз про практику, хоть и в виде «много букв». Но… в картинках с кодом, тоже надо будет рассказать. тут я с Вами полностью согласен.

> Ведь UML я так понимаю был создан для того, чтобы Упрощать понимание проектов, а не усложнять их?
именно, но для нас лично даже это уже второстепенно (хотя по прежнему важно), а на первом месте — генерируемый код, как не странно ))
Это мечта идиота (моя) — научиться делать то, что уже умеете делать вы.
*** МАКСИМ ***
ну почему же «идиота», на мой взгляд идиоты скорее те (ни кого не хочу обидеть) кто об этом хотя бы не мечтает, вещь в общем-то очевидная: попытаться автоматизировать рутинные процессы
***АЛЕКСАНДР***

Пример «картинок» и «код» например — тут:
18delphi.blogspot.ru/2013/07/2.html

Это не «из нашей реальной жизни». И микро-пример. Я его — СПЕЦИАЛЬНО отдельно рисовал. Потому, что реальные вещи раскрывать — мы права не имеем.

Но — надеюсь, что для начала вам понравится. Если будут конкретные вопросы — нарисую ещё.
***АЛЕКСАНДР***

И если Макс — даст добро — постараюсь объяснить «на пальцах» — как картинки превращаются в код. Если не даст — не обижайтесь. Имеет право. Это реально его идея.
***АЛЕКСАНДР***

И да! Я ЗНАЮ про STL. И УВАЖАЮ Степанова…

И опять же «пну» Embarcadero из под аккаунта Леонова… Я ВООБЩЕ не понимаю КАК Delphi до сих пор живёт БЕЗ STL…

А что до «пну»или не «пну»…

Ребята… Я МНОГО ходил в горы… и САМ вешал верёвки…

И САМ РУКОВОДИЛ командами… Это — МНОГОГО стоит…

Программирование это всё — «чушь» (передёргиваю)

Там совсем ДРУГИЕ отношения…

Кто не верит — пойдёмте со мной в горы… Как минимум на 2Б…

Но и это — НИЧТО не гарантирует…
***АЛЕКСАНДР***

STL это — «гигиена мозга» ( по определению Леонова), а UML — это «гигиена мозга» в квадрате…

Поймите меня правильно…
***АЛЕКСАНДР***

На не-микро-уровне. А на уровне GUI вот:
18delphi.blogspot.ru/2013/04/uml_22.html

это из РЕАЛЬНОГО проекта, но опять же — не реальные «картинки» и «код». А их перерисовка.

Поймите правильно — мы работаем в КОММЕРЧЕСКОЙ организации. За зарплату.

Интервью — согласовывалось. Но это не значит, что мы можем в комментариях наносить ущерб работодателю.

Делиться ИДЕЯМИ — ПОЖАЛУЙСТА. Идеи — они во много голов приходят. КОНКРЕТНЫЕ реализации — ТОЛЬКО с согласия РАБОТОДАТЕЛЯ. Может быть Макс — как руководитель — что-то другое может сказать.
Ваша статья очень сложно струтктурирована, читать тяжело. Я за себя скажу — не осилил продраться через формат интервью и понять что же такого вы сделали и что полезного можно почерпнуть для себя.

Так что двумя руками за картинки с кодом. Ну и статистику какую-то — на чём сколько экономите, какой процент кода в каких подсистемах генерируется по моделям.
В «инженерии знаний» техника «вопрос-ответ» (интервью) есть один из способов извлечения (собственно) знаний из экспертов. Если знания нечёткие, слабоформализуемые, местами — да — содержащие противоречия, то диалог по-сути единственный метод. Это характерно для многих подобных областей — от политики и экономики до сферы искусства. Даже философы очень часто использовали форму диалога для а) генерации б) извлечения в) представления знаний. И нельзя не вспомнить классический тест на решение задачи создания искусственного интеллекта, когда факт наличия которого определялся на основе невозможности отличить человека от машины при задании последней вопросов и анализе ответов.

В заголовке статьи фигурирует слово «зачем», а не «что такое» или «как надо». Это и есть основная цель статьи — закрыть пробел в (общечеловеческих) знаниях, именно «зачем» нужен UML.
Извлечения, но не представления :)
Извлечённые знания в инженерии затем структурируют.

Впрочем, я лишь высказал своё личное впечатление.

P.S. Зачем UML, на мой вкус, идеально рассказал Ларман — www.williamspublishing.com/Books/978-5-8459-1185-8.html
Хоть и без кодогенерации
1. В книге есть пример РЕАЛЬНОГО применения в реальной компании при создании и развитии реального продукта? А то получится — «гладко было на бумаге».
2. Про «классиков» в интервью есть отдельная тема. Если Ларман не является действующим разработчиком, то он — классик.
3. «Без кодогенерации» — первая и главная ошибка, если её сделал Ларман, а не Ваша интерпретация.
4.
>>Извлечённые знания в инженерии затем структурируют.
И какая же структуризация «знаний» в терминологии ИИ используется в книге Лармана?
Ну, 3 — это ваше частное мнение. То есть если я не генерирую код из модели, то я весь такой ошибаюсь? Даже обсуждать не хочется.

Про 1 и 2, вы бы поинтересовались сначала, а то некрасиво. Вы уж извините, но Ларман и вот эти люди ниже для меня более авторитетны. Хотя бы потому, что их труды и достижения я знаю, а ваши пока не попадались.

“This edition contains Larman’s usual accurate and thoughtful writing. It is a very good book made even better.”
—Alistair Cockburn, author, Writing Effective Use Cases and Surviving OO Projects
“Too few people have a knack for explaining things. Fewer still have a handle on software analysis and design. Craig Larman has both.”
—John Vlissides, author, Design Patterns and Pattern Hatching
“People often ask me which is the best book to introduce them to the world of OO design. Ever since I came across it Applying UML and Patterns has been my unreserved choice.”
—Martin Fowler, author, UML Distilled and Refactoring
“This book makes learning UML enjoyable and pragmatic by incrementally introducing it as an intuitive language for specifying the artifacts of object analysis and design. It is a well written introduction to UML and object methods by an expert practitioner.”
—Cris Kobryn, Chair of the UML Revision Task Force and UML 2.0 Working Group
И заметьте, я не критикую ваш подход. Хотя бы потому, что он а) работает для вас, б) у меня мало о нём информации.
Так что не надо на меня нападать.

Представление мне не понравилось, я об этом честно сказал. Если я один такой, ну значит это мои проблемы :)
Ну, раз так, давайте ругаться. Не люблю я это дело — переходить на личности, но иногда того требует. Нельзя же лечить болезнь вне конкретного больного? Здесь-то хоть со мной согласны? Хорошо!

>>Ну, 3 — это ваше частное мнение.
Ну — хотя бы это «групповое» мнение с привлечением экспертов из «Гаранта». Чтобы это не смотрелось, что я прикрываюсь чужим (заметьте — не книжным, а авторитетом реального большого лидирующего IT-проекта), позволю себе объясниться.

UML без кодогенерации означает, что есть код (если он есть, а это не просто «рисовалово»), а есть диаграммы. Давайте обощим — не диаграммы, а «документация». Чертёж. Если у Вас нет строгой синхронизации (о чём, кстати, написано выше), то рано или поздно будет расхождение. Для программиста код всегда будет важнее документации к нему (даже отбрасывая идею о «самодокументируемости» кода), поэтому, когда настанет черёд выбирать, UML за ненужностью будет отброшен.
Или же Вам придётся постоянно под код подгонять UML, что порочно. Здесь же и появляется идея о запрете на «реверс».

>> Про 1 и 2, вы бы поинтересовались сначала, а то некрасиво.
Я знакомился с UML по первоисточникам. А также по документации к программным средствам моделирования на UML. Зачем мне учебник из серии «для чайников»?

Опять же — Ваш любимый Фаулер. Редкостный халтурщик, если судить по его тонюсенькой книге про UML.

>>Ларман и вот эти люди ниже для меня более авторитетны.
Как авторы книжек для детишек? UML в комиксах?

>>Хотя бы потому, что их труды и достижения я знаю, а ваши пока не попадались.
Переходим к главному. Сейчас будет немного больно.

1. Вы позволили себе перейти на личность, что, само по себе возмутительно. Пользуетесь анонимной безответственностью. Трусливо, но понятно.
2. Когда Вы задаёте такой вопрос, будьте готовы представить Ваши достижения. Кроме троллинга и умением пользоваться google seach по строке «UML books».
3. Ну и главное!
>>а ваши пока не попадались.
Вы просто не там искали.
Посмотрите диссертации за последние 5 лет на тему «применение искусственного интеллекта для построения предметно-ориентированной САПР».
А какую диссертацию написали Вы?

>>Даже обсуждать не хочется.
Какая незадача! Так быстро признать поражение…

>>И заметьте, я не критикую ваш подход.
Потому что не можете. Чего-там не хватает. Опыта? Знаний? Одного темперамента мало!

>>у меня мало о нём информации.
Так спрашивайте! Александр и Максим не оставили ни одного вопроса неотвеченным!

>>Так что не надо на меня нападать.
А это Вы уже с зеркалом разговариваете. Кому Вы нужны, чтобы на Вас нападать?
Может, что-нибудь из своих трудов дадите почитать. Лерман Мартинович Фаулер, Вы наш, непризнанный.
Пока кроме достаточно бедненького списка литературы ничего не представили. Про UML, конечно.
Ну а так — я вполне подозреваю, что Вы — вполне успешный профессионал. Разве что манер маловато. Но это, как обычно
>>ну значит это мои проблемы :)

Ну а теперь, когда Вы всё это прочитали и слегка покраснели от негодования, прочитайте уж и это (до кучи).

Я искренне извиняюсь за причиненную Вам обиду. Совершенно искренне. Не сомневаюсь, что у Вас действительно развитый интеллект и большой талант к программированию. Возможно, нам было бы приятно в дальнейшем общаться, если эта наша размолвка не повлияет на дальнейшее Ваше миропонимание.
Честно скажу, стыдно, когда взрослые люди как-то ругаются из-за пустяков.

2 VsevolodLeonov

Ну, раз так, давайте ругаться.


Ну нафиг. Но один раз отвечу, а то что-то на меня много собак навесили.

Не люблю я это дело — переходить на личности


Угу, заметно.

UML без кодогенерации

Я всего лишь сказал, что UML вполне себе ценен и без кодогенерации.
Вы утверждаете обратное?

Я с вами не соглашусь. Причин много, например, UML, это не только документация.

Вы сами же написали: «Для программиста код всегда будет важнее документации к нему (даже отбрасывая идею о «самодокументируемости» кода), поэтому, когда настанет черёд выбирать, UML за ненужностью будет отброшен.»

Я не спорю, что иметь синхронизированные модель и код может быть полезно, если это не несёт существенных накладных расходов. И статья меня заинтересовала именно поэтому. Но практической полезности от факта, что кто-то где-то внедрил такой инструмент и процесс — ноль целых, ноль десятых. При всём уважении к ребятам из Гаранта, статья пользы не наносит. О том, что из UML можно генерировать код, интересующиеся знают. А больше информации статья не несёт.

Опять же — Ваш любимый Фаулер. Редкостный халтурщик, если судить по его тонюсенькой книге про UML.

>>Ларман и вот эти люди ниже для меня более авторитетны.
Как авторы книжек для детишек? UML в комиксах?


Вы, извините, за прямоту, уже второй раз тут пукнули в лужу показываете себя не с лучшей стороны.

Если вы знаете из трудов Фаулера только UML Distilled (да, это «UML для начинающих»), то это вас характеризует, а отнюдь не Фаулера. Ну а отзыв Криса Кобрина вы скромно не заметили.

Ну и к совсем не главному :)

Вы позволили себе перейти на личность, что, само по себе возмутительно. Пользуетесь анонимной безответственностью. Трусливо, но понятно.


Вы что-то, извините, берега попутали не допонимаете.

Во-первых, какая анонимность на хабре? Загляните в профиль.

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

Когда Вы задаёте такой вопрос, будьте готовы представить Ваши достижения. Кроме троллинга и умением пользоваться google seach по строке «UML books».


Троллинг, причём толстый, и переход на личности я тут вижу, а не в своём комментарии. Открытое хамство дальше вообще ниже плинтуса. В личном общении вы так же обращаетесь к собеседнику, или только когда морда в безопасности в интернете?

Сейчас будет немного больно.
покраснели от негодования


Много чести.
Заметьте, вы наехали почти на всех комментаторов к статье. Поскольку ни сам этот факт, ни явно выраженное сообществом с помощью минусов отношение к вашему стилю общения и самомнению, вас ничему не научил, я дискуссию покину.

P.S. Надеюсь, Александр с Максимом напишут новую статью, с практической информацией, без таких «помошников». С удовольствием бы ознакомился с их инструментом и процессом.
>>>>Я всего лишь сказал, что UML вполне себе ценен и без кодогенерации.
>>Вы утверждаете обратное?

Где? Найдите хоть одно место, где «я» что-то утверждал. Любите Discover «discovery how it's made»? Ну вот я сделал то же самое. «Мысленно» пришёл в Гарант и походил с камерой, «поснимал» (на мозг) то, как Максим и Александр используют UML в процессе производства ПО. Позадавал вопросы — «зачем»? Вообще ничего не утверждал. Вполне убедился, что UML без кодогенерации не так эффективен, как с кодогенерацией. Не очень понял, почему Вы на это обиделись?

>>Но практической полезности от факта, что кто-то где-то внедрил такой инструмент и процесс — ноль целых, ноль десятых.

Это — очень интересная мысль. Кстати, попробуйте на досуге написать диссертацию. Если (по профилю) Вам 40 лет — то самое время. Вашим профессиональным склонностям вполне подойдёт инженерная специализация. 40 лет — расцвет творческих способностей, когда человек еще не совсем перешёл на руководящие позиции (отстал от жизни), но уже имеет огромный опыт и компетенцию.

Кстати, могу поработать Вашим консультантом. Часто «мной пользовались», чтобы сформулировать тему: предмет, объект, рамки исследования. Цель и задачи. Так вот, без «внедрения» Вам не получить доказательство полезности. А без доказательства полезности, исследования бесполезны. Если бесполезны — то не востребованы. Поэтому факт внедрения UML (определенным способом) является ценнейшим наблюдением. Именно это — обогащение базы знаний человечества, к чему любой преосвященный человек и должен стремиться.

>>Я не спорю, что иметь синхронизированные модель и код может быть полезно, если это не несёт существенных накладных расходов.

А какая польза иметь «рассинхронизированную» модель и код?

>>Вы, извините, за прямоту, уже второй раз тут пукнули в лужу показываете себя не с лучшей стороны.

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

>>Во-первых, какая анонимность на хабре? Загляните в профиль.

Открываем профиль. 11681-й в рейтинге хабралюдей. Ну, хорошо, что не 11682-ой. Уже что-то.
Где а) компания б) проекты в) скрин-шоты работ? Пока только 11681.
Да, что-то я стал сдавать. Бился с №11681 на Хабре…

>>Во-вторых, я не мог даже предположить, что вас настолько заденет то, что вы для меня являетесь меньшим авторитетом, чем признанные эксперты, авторы методологий и многих, многократно переизданных и переведённых книг.

Меня задел только Ваш переход на личности. Вы, конечно, можете извиниться.
Я приму Ваши извинения.

>>В личном общении вы так же обращаетесь к собеседнику, или только когда морда в безопасности в интернете?

Не переоцените Ваши возможности. Говорю это Вам это совершенно серьезно.

>>Заметьте, вы наехали почти на всех комментаторов к статье.

Нужно за слова свои отвечать. Никогда не поздно. Даже в 40 лет.

>>я дискуссию покину.

Разумно.

А в какой программулине они это всё рисуют?
*** МАКСИМ ***
В смысле «мы» ;)
по не до конца понятным мне причинам, руководство просило не раскрывать конкретный инструментарий. Поэтому вынужден отвечать намеками, надеюсь простите. Инструментарий ровно тот, что был на дискете в 97-м году )) Он конечно подрос в размере за последующие годы, но функционально почти не изменился (по крайне мере в той части которая нам нужна). Но, выше в статье, я уже говорил, что для нас это просто рисовалка, все «ценное» (для нас) находится не в ней а в генераторе. А генератор самописный. Если его прицепить к визио — то можно и в визио рисовать. А можно и не рисовать, можно «писать» модель, но это уже на будущее.
Я немного работал с одной софтиной, там для того, чтобы добавить метод в описание класса, надо было выбрать пункт в контекстном меню, заполнить два-три поля и установить значения в паре комбобоксов. Очень долго и неудобно.

***МАКСИМ***
ну мы чужую софтину даже в части рисования сильно кастомизировали, сильно-сильно. Она вообще уже на себя изначальную ни с какого угла не похожа, если честно. Но и этого мало, поэтому и пишем что очень хочется совсем свое написать, уже с учетом всего опыта, заточенное на максимально быстрое создание моделей и генерацию.
Как выглядит ваша система контроля версий? Раз у вас 100% кодогенерация, то, видимо, ваши «программы» реально являются бинарными файлами того пакета, который используется для рисования. Как при этом отслеживать изменения или делать ветки?
***МАКСИМ***
Вы не совсем правильно поняли, ну или мы не точно выразились. У нас 100% генерация моделей. Те нет моделей (диаграмм) которые бы рисовались просто так, все они генерируют из себя код или какие-либо другие артефакты. Но сам код конечно не на 100% генерируется. Бизнес логика (именно бизнес логика) пишется руками, ее на модели не просто нарисовать, ну или точнее мы пока не реализовали это (идеи есть), но все равно 100% генерируемого кода не будет, да это и не нужно. Генерируется все что подается какой-то структуриизации, укладвается в какой-то шаблон, пусть даже очень сложный (и чем сложнее, тем как правило выше КПД от его использования). А остальное быстрее, проще и гибче руками написать.

Отвечая на вопрос: система контроля версий выглядит стандартно, под ее управлением находятся прежде всего артефакты получаемые после генерации — те код. Но сами файлы модели тоже под ее управлением. Но по сути именно как бинарные (хотя на самом деле они не бинарные, но такого уродского формата, что смерджить их практически не возможно). Это тоже одна из причин почему хочется свой инструмент — что бы файлы модели были «истинно» текстовыми.
***АЛЕКСАНДР***
«что бы файлы модели были «истинно» текстовыми.»

не удержусь… дополню…
развязать — «данные» и «представление». Ну в общем — «классическая» задача.

Есть «дерево сущностей» и есть «представление их на диаграммах». Понятно о чём я?
***АЛЕКСАНДР***

Опять не удержусь… Дополню ещё…

Да! Практически ВСЕ UML редакторы умеют сохранять в нечто xml-подобное. И казалось бы — проблем с «мерджем» быть не должно.

Но! Они смешивают «данные» и «представление». Они пишут например координаты объектов БЕЗ учёта DPI, а цвета — БЕЗ учёта палитры.

И получается, что один разработчик что-то сделал. Второй за ним «это» что-то потрогал. На ДРУГОМ мониторе. И получили — КОЛОССАЛЬНУЮ разницу.

Практически во всех UML-редакторах, что я видел. В этом — ОСНОВНАЯ проблема.

Решение её — НА ПОВЕРХНОСТИ. Я так понимаю — тут все -УМНЫЕ люди — понимают о чём я.
***АЛЕКСАНДР***

«Мне и так хорошо кодируется»
— я кстати — тоже из категории таких «хардкорных» программистов. Я считаю КОД — первоосновой.

А «документацию» — я считаю «глупостью» (передёргиваю конечно). Но! Вот почитайте — «крик души» — 18delphi.blogspot.ru/search/label/%D1%87%D0%B8%D1%82%D0%B0%D0%B9%D1%82%D0%B5%20%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9%20%D0%BA%D0%BE%D0%B4

Я когда был на конференции в Казани — где собственно я и познакомился с Всеволодом — уровень некоторых вопросов — МЕНЯ ПОРАЗИЛ. Хотелось встать и сказать — «ребята! коллеги! друзья мои! ну ОТКРОЙТЕ исходный код библиотек и ПОЧИТАЙТЕ! а потом ТОЛЬКО — задавайте вопросы».

И я МНОГО спорил с Максом и не принимал его подход когда-то.

Пока он не показал мне «кодогенрацию». Причём — РЕАЛЬНО. «В байтах» (как пишет Джоэл).

И тогда — я ПОВЕРИЛ Максу — и не жалею.

Появилось именно «логарифмирование» сложности «и быстрое изменение масштаба». Сегодня я программирую UseCase'ы, а завтра — «абстрактные контейнеры». Между ними — ПРОПАСТЬ. Но она мне — НЕ МЕШАЕТ.

«Проблемы» управления БОЛЬШИМ объёмом кода — у нас — реально БЫЛИ. И я не знал — что делать. И эти проблемы — «испарились» — когда я стал рисовать UML-диаграммы. И более того эти диаграммы сейчас читают ДРУГИЕ люди.

P.S. Можно «пинок» Embarcadero? Это наверное особенно «пикантно» смотрится из по аккаунта Всеволода Леонова :-) Я МНОГО пишу о недостатках Embarcadero ;-) Но — ПОКА — не услышан. Так что — не думайте, что это «теория заговора». Мы с Всеволодом — СОТРУДНИЧАЕМ в данной стать. Но! ПОТОМУ, что тема интересная и ВАЖНАЯ. Я лично на неё лет 8-мь жизни потратил. Но это не значит, что Леонов «купил нас» и мы «пиарим» Embarcadero. Или «мы купили» Гарант. И Леонов пиарит его. Нет. Просто — тема интересная. И наши интересы в ней — сошлись. Просто хочется людям рассказать о том, на чем мы давно работаем. А Леонов — это дело — хорошо организовал. И задал ПРАВИЛЬНЫЕ вопросы. Спасибо ему. Но многие вопросы — остались без ответов… Поверьте мне. Если тема интересная — будем продолжать.

Я лично — УВЕРЕН, что тема не только ИНТЕРЕСНАЯ, но и ПРАВИЛЬНАЯ.

P.P.S. Главное слово — «сборочный чертёж».

P.P.P.S. Если кто-то решит меня «потроллить» — пишите уж сразу в «личку». Я уже давно — «вакцинирован». В перепалки — я — не вступаю. Работаю над собой. Отвечаю на КОНКРЕТНЫЕ вопросы.
***АЛЕКСАНДР***
Простите за безумное количество опечаток :-( Браузер — похоже буквы глотает. А я не стал вычитывать. Если что-то непонятно — поясню. Мне стыдно. В следующий раз — буду вычитывать.
***АЛЕКСАНДР***

«Или «мы купили» Гарант. И Леонов пиарит его» => «Или „мы купили“ Леонова». И он пиарит Гарант" — так читать.

Мысли — быстрее пальцев работали.

Друзья! Никто «никого» не «купил». Просто хотелось рассказать про UML И его ПРАКТИЧЕСКОЕ применение. Потому, что считаем эту тему — перспективной.

Но! Не ФАКТ, что мы «ВСЁ ДОДУМАЛИ». Нет! НЕ додумали. Ещё есть — над чем думать. Собственно потому и публикуем.
***АЛЕКСАНДР***
Более того… Не знаю — стоит ли это писать… Но напишу…

Друзья мои! Согласовать публикацию статьи в большой конторе когда ты работаешь наёмным работником — это непросто…

В ЛЮБОЙ точке земного шара.
***АЛЕКСАНДР***

Просто если вы думаете, что мы «слабали эту статью на коленке».

То поверьте — вы СИЛЬНО ошибаетесь… Мы ДОЛГО работали над ней… И многое из неё выкинули… По разным соображениям… И СОГЛАСОВЫВАЛИ это с работодателем… Что — ПОВЕРЬТЕ — для программистов — НЕПРОСТО…

Так что это «не на коленке» и «не джинса»…

Неинтересно — не читайте… Что делать…

Интересно — пишите… Не интересно — жаль… Значит мы недоработали…
***АЛЕКСАНДР***

И ещё. Коллеги!!!

У меня — «чесалось». Но я НЕ МОГУ не УПОМЯНУТЬ — Кирилла Пугина — как одного из разработчиков генератора… Это было бы — нечестно… Он сейчас не с нами, и работает в MicroSoft. Но мы БЛАГОДАРНЫ ему за реализацию САМЫХ «хардкорных» вещей. Спасибо — что он был с нами.
Sign up to leave a comment.

Articles