Page Summary
m e - (no subject)
vit-r.livejournal.com - (no subject)
m e - (no subject)
m e - (no subject)
m e - (no subject)
m e - (no subject)
m e - (no subject)
m e - (no subject)
m e - (no subject)
vit-r.livejournal.com - (no subject)
vit-r.livejournal.com - (no subject)
vit-r.livejournal.com - (no subject)
vit-r.livejournal.com - (no subject)
m e - (no subject)
m e - (no subject)
vit-r.livejournal.com - (no subject)
vit-r.livejournal.com - (no subject)
Style Credit
- Style: Gray for Stepping Stones by
Expand Cut Tags
No cut tags
no subject
Date: 2013-08-31 03:52 pm (UTC)идеальная методология — это такой способ разбиения системы на аспекты и построения кода системы по ее аспектам, что 1. изменения внутри каждого аспекта могут вноситься независимо от других аспектов, и 2. для небольших изменений функциональности требуются небольшие изменения внутри аспектов
п.1 это ортогональность, п.2 это непрерывность в математической терминологии
роли аспектов могут выполнять уровни, но аспекты вовсе не всегда образуют иерархию
discuss
no subject
Date: 2013-08-31 03:57 pm (UTC)И, естественно, разбиение - это тоже инженерное решение, минимизирующее внешние связи подсистем или локализирующие риск изменений.
no subject
Date: 2013-08-31 04:04 pm (UTC)1. и так понятно, что хочется иметь модель, релевантную реальности
2. релевантна ли модель реальности может быть само по себе сложным вопросом
3. модель может быть релевантна сейчас, но не релевантна потом
4. и наоборот, первоначальная модель может оказаться нерелевантной, но затем приведена в порядок
в сухом остатке — система должна легко модифицироваться; "легко модифицироваться" как раз означает "ортогонально модифицироваться и непрерывно модифицироваться"
no subject
Date: 2013-08-31 04:10 pm (UTC)в первой редакции слова "кода" не было, было просто "построения системы по ее аспектам", но потом я решил уточниться немного
в том случае, когда люди — винтики, слово "код" вполне подходит (хотя и с маленькой натяжкой); а вот в случае наличия в системе уникальных людей уже, кхм, все несколько по-другому
no subject
Date: 2013-08-31 04:19 pm (UTC)тут требуется уточнение терминов, т.к. скажем трудно найти более "внешне связанную" подсистему, чем фильтр (типа producer | filter | consumer > result.txt)
да, почему это хороший вопрос — потому что ответ на него задает критерии качества языков программирования
btw, мое гугление по "критерии качества языков программирования" закончилось полным провалом
интересно, кто-то вообще этим интересуется?
no subject
Date: 2013-08-31 04:25 pm (UTC)тут конечно можно придраться к моей терминологии, но по-моему она близка к общепринятой
no subject
Date: 2013-08-31 04:38 pm (UTC)1. в будущем я вообще не буду писать слово discuss, оно неявно подразумевается *везде*
2. уверенные формулировочки с моей стороны не должны останавливать от возражений — как раз возражения это самое *интересное*, что я могу услышать
3. наконец, если я где-то типа "победил в споре", это не значит, что я забыл противоположное мнение — я его помню и обдумываю, и могу даже скажем через полгода-год неожиданно понять рациональное зерно в противоположной точке зрения
no subject
Date: 2013-08-31 05:01 pm (UTC)конечно, в софте аспект ближе к подсистеме, но все равно это разные вещи
no subject
Date: 2013-08-31 05:13 pm (UTC)или вот скажем говнопроектировщики реальных настольных часов, бывших у меня в советские времена, смешали два аспекта:
1. подачу напряжения от батарейки на плату
2. механическое удержание задней крышки часов
оба этих аспекта были реализованы парой контактных пружин (одна на плюс, другая на землю)
в результате частого съема крышки (емнип для замены батарейки) эти пружины стерли контактные площадки, которых касались пружины, и незначительное касание крышки нарушало контакт (особенно потому, что одна пружина не может *качественно* *одновременно* давить и вбок на крышку, и вглубь на контактные площадки)
no subject
Date: 2013-08-31 07:22 pm (UTC)no subject
Date: 2013-08-31 07:26 pm (UTC)Инженерное решение - это такое решение, которое даёт оптимальный результат при учёте плюсов, минусов и рисков.
Задача в том, чтобы подсистемы можно было рассматривать независимо, и при этом интерфейсы между ними были бы стабильными и понятными.
no subject
Date: 2013-08-31 07:30 pm (UTC)На самом деле оно должно быть выражено в терминах "Охлаждение помещения при внешней температуре -10 градусов не должно превышать Х килоджоулей в сутки" или в чём там выражается теплоотдача. Я уже не помню, тем более на русском.
no subject
Date: 2013-08-31 07:32 pm (UTC)no subject
Date: 2013-08-31 07:41 pm (UTC)но я считаю, что методология должна делаю упор не на "модель должна быть релевантна прямо сейчас", а на "модель может быть сделана релевантной путем небольших изменений, и при этом мы (гарантированно?) не уткнемся в непреодолимые границы"
кроме того, "соответствие поведения модели поведению системы на заданной области" может быть практически достаточно, но затем подвергнуто дальнейшему улучшению
скажем, для начала можно считать, что итог игры всегда дает в сумме 1 (0+1=1/2+1/2=1+0), но бывает, что обоим командам присуждают техническое поражение
или скажем в шахматах не всегда pgn прокатывает, т.к. иногда судья может решить, что король, уроненный и (случайно?) поставленный не на ту клетку, стоит именно на неправильной клетке, и т.п.
это я к тому, что то, что казалось очень даже релевантным, может неожиданно оказаться не таковым
no subject
Date: 2013-08-31 08:00 pm (UTC)понятно, что это камешек в огород учОных
no subject
Date: 2013-08-31 08:15 pm (UTC)В любой методологии инженер может сделать модель системы не релевантной или не подстраиваемой под изменения. Но в некоторых методологиях глупости делать сложнее и они видны сразу. В других никто даже и не знает, насколько релевантной получилась или не получилась модель.
no subject
Date: 2013-08-31 08:17 pm (UTC)А так, ИТ давно надо было бы приписать к гуманитарным дисциплинам. Но профессорам это не выгодно.