Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру?
Почему-то вспомнилось Дао, книга четвертая, стих четвертый:
Один из программистов князя Вонга писал программу. Его пальцы танцевали над клавиатурой. Программа скомпилировалась без единой ошибки и прошла тест словно легкий ветер.
''Превосходно!'', воскликнул князь, ''Твоя техника безупречна!''
''Техника?'', сказал программист, отворачиваясь от терминала, "я следую Дао -- это выше всех техник! Когда я только начал программировать, я видел проблему как одно целое. Спустя три года я уже не видел целого. Вместо этого я использовал подпрограммы. Но теперь я не вижу ничего. Я целиком существую в неоформившейся пустоте. Мои чувства свободны. Мой разум, свободный от намерений, следует своим инстинктам. Вкратце, моя программа пишется сама. Правда, иногда бывают трудности. Я вижу, как они надвигаются, я приостанавливаюсь, я молча смотрю. Затем я изменяю одну строчку в программе, и трудности исчезают как облачко дыма. И тогда я компилирую программу. Я замираю и позволяю себе наполниться радостью работы. Я закрываю на миг глаза и отсоединяюсь от системы''.
Князь Вонг сказал: ''Если бы все мои программисты были так мудры!''.
... << RSDN@Home 1.1.4 beta 7 rev. 448>>
Re: Видение архитектуры
От:
Аноним
Дата:
27.04.05 15:01
Оценка:
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
Она мне ещё и снится зараза. Как правило — в виде UML. Чаще всего диаграммы классов и взаимодействия. Иногда — диаграммы прецедентов.
P.S. Один раз ночью жену испугал, когда начал на повышенных тонах во сне кому-то объяснять, что система спроектирована неправильно. В отпуск пора давно.
Здравствуйте, Joker6413, Вы писали:
J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
Как фабрика. По трубам и конвейерам поступают данные, потом где-то колбасятся, через шестеренки-адаптеры используются другими цехами, а плагины — это вообще что-то неимоверное Обращения к веб-сервисам напоминают отправление кораблей из порта, расположенного на окраине фабрики
Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру?
Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча...
Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
29.04.05 14:30: Перенесено из 'Архитектура программного обеспечения'
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
В виде трехмерных строений с переходами арками и прочими элементами
Здравствуйте, Spidola, Вы писали:
S>Здравствуйте, Joker6413, Вы писали:
J>>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
S>В виде плоской компонентной диаграммы с потоками данных.
S>P.S. Кстати, вопрос весьма интересный, поскольку даже простейшие вещи многие представляют совершенно по разному. Например, представьте себе год, разделённый на месяцы... Вы как это видите? Большинство людей видит в виде круга (овала и т.п.), но месяцы у половины по часовой стрелке наращиваются, у второй половины — против .
Я представляю себе всегда, как эдакий овал сплюснутый по Зима/Лето, поднятый над плоскостью стороной противоположной текущему сезону эдак градусов 30 и при этом я стою с освещенной части, текущего сезона, месяца наращиваются ТОЛЬКО против часовой стрелки, даже и представить себе не могу как может быть иначе
Это уже ближе к психологии
... <<А писал я весь этот бред на RSDN@Home 1.1.4 beta 5 rev. 411, под звуки тишины >>
Здравствуйте, Spidola, Вы писали:
S>P.S. Кстати, вопрос весьма интересный, поскольку даже простейшие вещи многие представляют совершенно по разному. Например, представьте себе год, разделённый на месяцы... Вы как это видите? Большинство людей видит в виде круга (овала и т.п.), но месяцы у половины по часовой стрелке наращиваются, у второй половины — против .
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Joker6413, Вы писали:
J>>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
А>Она мне ещё и снится зараза. Как правило — в виде UML. Чаще всего диаграммы классов и взаимодействия. Иногда — диаграммы прецедентов.
Как достигал? И что тебе надо чтобы "увидеть" архитектуру незнакомой системы (в смысле диаграммы тебе не дают)?
А>P.S. Один раз ночью жену испугал, когда начал на повышенных тонах во сне кому-то объяснять, что система спроектирована неправильно. В отпуск пора давно.
Это ладно... слава богу не просил сквозь сон у жены повысить тебе з.п...
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
Частенько в виде хедеров мерещится. Есть "акустическая" состовляющая — произнесенный в уме термин (например, маппер) хранит в себе оттенки смыслов, его составляющих. Т.е. если в него "всмотреться" — видны детали. Как-бы декомпозируется. ИМХО, тот, кто активно использует UML представляет UML-диаграммы, а кто блок-схемы — их и видит.
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
В тумане
Здравствуйте, Joker6413, Вы писали:
J>в каком виде она вам мерещится
Просто как неформальный рисунок на бумажке на котором квадратики/кружочки/треугольнички и всякие (сплошные/пунктирные/со стрелочками) линии их соединающие. С названиями и комментариями включающими, быть может, даже маленькие фрагменты кода.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Joker6413, Вы писали:
J>>в каком виде она вам мерещится
СГ>Просто как неформальный рисунок на бумажке на котором квадратики/кружочки/треугольнички и всякие (сплошные/пунктирные/со стрелочками) линии их соединающие. С названиями и комментариями включающими, быть может, даже маленькие фрагменты кода.
Так получается четко зафиксированный образ или нет? И еще — схемы статические или динамика системы тоже представляется или только раздельно?
Здравствуйте, Joker6413, Вы писали:
J>Так получается четко зафиксированный образ или нет?
Э-э-э, думаю, что четкость зависит от уровня детализации. Максимальный уровень детализации — это сам код, а на бумажке — принцип работы.
J>И еще — схемы статические или динамика системы тоже представляется или только раздельно?
Так как рисунки неформальные, то с легкостью можно нарисовать нечто и сказать что это и статика и динамика, такая-то линия изображает наследование (статическое), а вот такая-то линия вот здесь обозначает активность потока, а вот эта линия со стрелкой — это тут данные передаются. Лишь бы понятно было для того кто рисовал и для кого рисовал. В качестве документации такие неформальные рисунки на бумажках конечно не подходят.
Здравствуйте, Joker6413, Вы писали:
J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
Я вижу. Всегда вижу. Если можно так выразиться, то в виде понятий, мало привязанных к процессу программирования. Скорее всего это больше понятия предметной области (хотя предметная облать, признаться, может быть и самим программированием). Я прям вижу, как они между собой взаимодействуют и т.п.
Обычно, преобразовать эти понятия в программу — чисто формальное дело.
Самое сложное — добиться непротиворечивой системы таких понятий. И к программированию это имеет мало отношения. Вот если бы правительство наше также... Короче, вся власть проектировщикам !
Здравствуйте, stalcer, Вы писали:
S>Я вижу. Всегда вижу. Если можно так выразиться, то в виде понятий, мало привязанных к процессу программирования. Скорее всего это больше понятия предметной области (хотя предметная облать, признаться, может быть и самим программированием). Я прям вижу, как они между собой взаимодействуют и т.п. S>Обычно, преобразовать эти понятия в программу — чисто формальное дело. S>Самое сложное — добиться непротиворечивой системы таких понятий. И к программированию это имеет мало отношения. Вот если бы правительство наше также... Короче, вся власть проектировщикам !
Ага видишь работающую систему, с живими объектами, а не классами. В тот момент когда система у тебя в голове проходит весь процесс не спотыкаясь ты начинаешь это реализовывать.
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
Совокупность черных ящиков с четко определенными интерфейсами
плюс варианты использования и как ящики друг с другом взаимодействуют.
Для конкретного черного ящика:
1) диаграмма классов (может быть несколько)
2) набор sequence diagram, которые показывают,
как решаются типичные задачи, решаемые этим ящиком.
Здравствуйте, Andrei N.Sobchuck, Вы писали:
ANS>Здравствуйте, Сергей Губанов, Вы писали:
J>>>в каком виде она вам мерещится
СГ>>даже маленькие фрагменты кода.
ANS>В откомпилированом виде или нет?
Я имел в виду, конечно, исходного текста на каком-нибудь (возможно выдуманном) языке программирования.
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
В виде плоской компонентной диаграммы с потоками данных.
P.S. Кстати, вопрос весьма интересный, поскольку даже простейшие вещи многие представляют совершенно по разному. Например, представьте себе год, разделённый на месяцы... Вы как это видите? Большинство людей видит в виде круга (овала и т.п.), но месяцы у половины по часовой стрелке наращиваются, у второй половины — против .
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
А никак. Абстрактно. Никаких визуальных образов я при этом не использую (возможно это связано с тем что у меня плохая зрительная память).
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
Трёхмерная UML модель.
... <<А писал я весь этот бред на RSDN@Home 1.1.4 beta 5 rev. 411, под звуки тишины >>
Здравствуйте, stalcer, Вы писали:
S>Здравствуйте, Joker6413, Вы писали:
J>>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
S>Я вижу. Всегда вижу. Если можно так выразиться, то в виде понятий, мало привязанных к процессу программирования. Скорее всего это больше понятия предметной области (хотя предметная облать, признаться, может быть и самим программированием). Я прям вижу, как они между собой взаимодействуют и т.п. S>Обычно, преобразовать эти понятия в программу — чисто формальное дело. S>Самое сложное — добиться непротиворечивой системы таких понятий. И к программированию это имеет мало отношения. Вот если бы правительство наше также... Короче, вся власть проектировщикам !
Хорошо а сколько сущностей ты сразу можешь удержать во внимании?
Скорее всего рано или поздно архитектуру надо будет записать, кол-во сущностей в этих записях будут связанные с тем сколько ты сразу можешь удержать во внимании?
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Joker6413, Вы писали:
J>>Так получается четко зафиксированный образ или нет?
СГ>Э-э-э, думаю, что четкость зависит от уровня детализации. Максимальный уровень детализации — это сам код, а на бумажке — принцип работы.
Я не о том, хороший художник "видит" будущую картину. Так вот вопрос в том — видишь ты четкий образ (не детализированный, а четкий) который не меняется, не расплывается, или все же нет.
J>>И еще — схемы статические или динамика системы тоже представляется или только раздельно?
СГ>Так как рисунки неформальные, то с легкостью можно нарисовать нечто и сказать что это и статика и динамика, такая-то линия изображает наследование (статическое), а вот такая-то линия вот здесь обозначает активность потока, а вот эта линия со стрелкой — это тут данные передаются. Лишь бы понятно было для того кто рисовал и для кого рисовал. В качестве документации такие неформальные рисунки на бумажках конечно не подходят.
Ладно, а обозначения меняются с твоим возрастом? Т.е. на разных диаграммах (разных по времени создания) эти обозначения меняются?
Здравствуйте, Kluge, Вы писали:
K>Ага видишь работающую систему, с живими объектами, а не классами. В тот момент когда система у тебя в голове проходит весь процесс не спотыкаясь ты начинаешь это реализовывать.
Именно. "проходит весь процесс не спотыкаясь" — вот что главное.
Здравствуйте, Joker6413, Вы писали:
J>Хорошо а сколько сущностей ты сразу можешь удержать во внимании? J>Скорее всего рано или поздно архитектуру надо будет записать, кол-во сущностей в этих записях будут связанные с тем сколько ты сразу можешь удержать во внимании?
Здесь, как говориться, — "разделяй и властвуй". Т.е. нужно разделять систему на более мелкие подсистемы и стараться сделать эти подсистемы менее зависимыми. А также необходимо задавать каждой из подсистем конкретный смысл, выражаемый опять же в понятиях предметной области.
Вообще вся фишка в том, что нужно отталкиваться только от смысла, заданного той или иной сущности. Это у меня правило номер один. Выполняется неукоснительно. Т.е. всегда делаю так, как по смыслу, а не как проще.
Обычно изначальный смысл, заданный той или иной сущности выражается в нескольких предложениях. Только его и необходимо держать в голове. Все остальные мелочи вытекают из него как правило формально и интуитивно понятно.
А записывать я пробовал. Мне не помогает. То есть все равно, если уж в голове не умещается, то пока дочитаю до конца, начало уже забываю .
Здравствуйте, Joker6413, Вы писали:
J>Я не о том, хороший художник "видит" будущую картину. Так вот вопрос в том — видишь ты четкий образ (не детализированный, а четкий) который не меняется, не расплывается, или все же нет.
Когда как. Если перепроектирую в третий раз заново, тогда да — все уже четко вижу, без всяких сомнений!
А в первый раз, какая четкость, тут бы общую закономерность разглядеть....
J>Ладно, а обозначения меняются с твоим возрастом? Т.е. на разных диаграммах (разных по времени создания) эти обозначения меняются?
Меняются , но правда всегда в лучшую сторону !
Объясняется это просто: разных понятий много, а разных обозначений не так уж много, поэтому на разных рисунках однинаково выглядещее обозначение обозначают разные понятия. На одном рисунке стрелка будет изображать наследование, а на другом рисунке стрелка будет обозначать направление передачи данных (или потока управления).
Здравствуйте, stalcer, Вы писали:
S>Здравствуйте, Joker6413, Вы писали:
J>>Хорошо а сколько сущностей ты сразу можешь удержать во внимании? J>>Скорее всего рано или поздно архитектуру надо будет записать, кол-во сущностей в этих записях будут связанные с тем сколько ты сразу можешь удержать во внимании?
S>Здесь, как говориться, — "разделяй и властвуй". Т.е. нужно разделять систему на более мелкие подсистемы и стараться сделать эти подсистемы менее зависимыми. А также необходимо задавать каждой из подсистем конкретный смысл, выражаемый опять же в понятиях предметной области.
S>Вообще вся фишка в том, что нужно отталкиваться только от смысла, заданного той или иной сущности. Это у меня правило номер один. Выполняется неукоснительно. Т.е. всегда делаю так, как по смыслу, а не как проще.
Выходит архитектуру ты представляешь на довольно высоком уровне, и как в таком случае разделять ее на "уровни"? Или она у тебя сразу укладывает в DAC, busines, presentation?
Здравствуйте, Joker6413, Вы писали:
J>Выходит архитектуру ты представляешь на довольно высоком уровне, и как в таком случае разделять ее на "уровни"? Или она у тебя сразу укладывает в DAC, busines, presentation?
Ну, я вообще-то системным программированием занимаюсь. Т.е. прикладные программы не пишу.
Но, мне кажется, что как раз в твоем случае разбиение на эти три уровня достаточно формально. По-моему, это вообще больше технологические уровни, нежели логические. Т.е. разделение на них — оно искусственное, вынужденное. Чтобы не было большой помойки.
Здравствуйте, stalcer, Вы писали:
S>Здравствуйте, Joker6413, Вы писали:
J>>Выходит архитектуру ты представляешь на довольно высоком уровне, и как в таком случае разделять ее на "уровни"? Или она у тебя сразу укладывает в DAC, busines, presentation?
S>Ну, я вообще-то системным программированием занимаюсь. Т.е. прикладные программы не пишу. S>Но, мне кажется, что как раз в твоем случае разбиение на эти три уровня достаточно формально. По-моему, это вообще больше технологические уровни, нежели логические. Т.е. разделение на них — оно искусственное, вынужденное. Чтобы не было большой помойки.
Вобщем да, но бывает очень неприятно когда одна сущность попадает сразу в два уровня...
Здравствуйте, Spidola, Вы писали:
S>P.S. Кстати, вопрос весьма интересный, поскольку даже простейшие вещи многие представляют совершенно по разному. Например, представьте себе год, разделённый на месяцы... Вы как это видите? Большинство людей видит в виде круга (овала и т.п.), но месяцы у половины по часовой стрелке наращиваются, у второй половины — против .
Здравствуйте, wilwill, Вы писали:
S>>P.S. Кстати, вопрос весьма интересный, поскольку даже простейшие вещи многие представляют совершенно по разному. Например, представьте себе год, разделённый на месяцы... Вы как это видите? Большинство людей видит в виде круга (овала и т.п.), но месяцы у половины по часовой стрелке наращиваются, у второй половины — против .
W>Я — в виде полоски из 12 квадратиков.
А мне все календарик мерещится...
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
Не в UML нотации однозначно. В неком внутреннем представлении... Ведь когда я считаю варианты в тех же шахматах, я не представляю в уме доску, и не двигаю резные фигуры... Для меня доска это множество пунктов, расчет вариантов чем-то напоминает игру вслепую. Я могу помнить, что на g5 у противника слон, на c1 у меня ферзь, но что слон может сбить ферзя могу и просчитаться... Тоже же самое и с архитектурой... Сказать, что я запоминаю, я не могу... Но что-то в голове держится, на самом абстрактном уровне, без диаграмм, кода, ...
P. S. Точно так же предсталяю и месяцы... Грубо говоря как множество из 12-ти элементов и взаимно однозначного соответствия "следующий месяц".
Здравствуйте, Mystic, Вы писали:
M>Здравствуйте, Joker6413, Вы писали:
J>>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
M>Не в UML нотации однозначно. В неком внутреннем представлении... Ведь когда я считаю варианты в тех же шахматах, я не представляю в уме доску, и не двигаю резные фигуры... Для меня доска это множество пунктов, расчет вариантов чем-то напоминает игру вслепую. Я могу помнить, что на g5 у противника слон, на c1 у меня ферзь, но что слон может сбить ферзя могу и просчитаться... Тоже же самое и с архитектурой... Сказать, что я запоминаю, я не могу... Но что-то в голове держится, на самом абстрактном уровне, без диаграмм, кода, ...
Если можно по подробнее про просчет вариантов при игре в слепую. Визуальное представление доски есть?
Здравствуйте, Mr.Chipset, Вы писали:
MC>Я представляю себе всегда, как эдакий овал сплюснутый по Зима/Лето, поднятый над плоскостью стороной противоположной текущему сезону эдак градусов 30 и при этом я стою с освещенной части, текущего сезона, месяца наращиваются ТОЛЬКО против часовой стрелки, даже и представить себе не могу как может быть иначе MC>Это уже ближе к психологии
"Мне кажется, что за мной следит телевизор. Весь вечер от него пахло фиолетовой радиацией" (с) Д. Шаповалов
Здравствуйте, Joker6413, Вы писали:
J>Кто нибудь может утвердительно ответить, что он ВИДИТ архитектуру? J>Ну т.е. как шахматист может представить себе доску со всеми фигурами по блогу матча... J>Если кто-то может тогда скажите в каком виде она вам мерещится. В uml нотации или как-то иначе.
А на самом деле — тема то довольно интресное. Только по-моему лучше говорить о понимании — которое включает в себя все системы — визуальную, аудиальную, кинестетику, внутренний диалог. Интресно было бы исследовать мастерство — стратегии, которые мы применяем, субмодальные различия, а так же научиться применять это самим — произвести обмен опытом без опыта...