metaclass: (Default)
[personal profile] metaclass
и синтеза дизайна системы?
Тут народ вопросом задается: http://guamoka.livejournal.com/1047171.html

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

Date: 2013-01-22 12:01 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
Непонятно, в чем отличие от не-ФП.

Date: 2013-01-22 12:12 pm (UTC)
From: [identity profile] metaclass.livejournal.com
В фазе анализа - отличий почти нет.
В фазе синтеза - уже есть, т.к. дизайн в случае реализации на FP все-таки отличается от привычного ООП-дизайна. Ну, если мы не закатываем руками солнце на экзистенциальных типах и не украшаем всю программу IO.

Date: 2013-01-22 12:17 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
в плане "синтеза" есть опасность скатиться в микро-дизайн, и если топикстартер приводит в пример высеры Буча и GoF, то это 99% оно и есть, т.е не нужно.

Далее, нет никакого "FP". Есть Ocaml с классами (не к ночи) и навороченными параметрическими модулями, есть Haskell с тайпклассами, монадами (хехе) и простыми модулями, есть Scala (что там в ней есть), есть Erlang с его примочками. Везде есть модули, процессы, сообщения, но все равно нет никакого общего "FP", соответственно, надо смотреть.

Date: 2013-01-22 12:26 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Скала настоящий мультипарадигменный йязык, заодно и со статик типами.
В F# макросов не хватает для кошерности, а немерле меня пугает мертвостью.

Date: 2013-01-22 05:13 pm (UTC)
From: [identity profile] migmit.livejournal.com
Макросы некошерны.

Date: 2013-01-22 05:18 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Да. А языки, где они не нужны, пугают людей :)

Date: 2013-01-22 12:43 pm (UTC)
From: [identity profile] jakobz.livejournal.com
Да ФП, не смотря на все монады, заканчивается на IO и стейте. ФП - это отличная парадигма, позволяющая поверх себя строить другие, умеющие IO и стейт. Но сама она не позволяет даже консольное приложение сделать.

Что там будет на верхнем уровне - ООП, монады, стрелки, акторы и прочее - вопрос не про ФП совсем.

Date: 2013-01-22 12:58 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
что такое ФП до сих пор не договорились, поэтому, я думаю, все не так плохо. А то можно любой грязный язык не-ФП считать. моё понятие ФП --- это оптимизация хвост. вызовов, замыкания и HOF.

Date: 2013-01-22 01:14 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Без полноценных статических типов грустно :)

Date: 2013-01-22 01:31 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
Типизация ортогональна. Scheme вполне функционален

Date: 2013-01-23 09:40 pm (UTC)
From: [identity profile] love5an.livejournal.com
не ожидал услышать данный тезис от адепта хаскеля. хотелось бы пожать руку даже, вощемто

Date: 2013-01-22 04:19 pm (UTC)
From: [identity profile] v-l-a-d.livejournal.com
а иммутабельность?
или она сама по себе логически вытекает из чего-то перечисленного?

Date: 2013-01-22 02:54 pm (UTC)
From: [identity profile] guamoka.livejournal.com
в плане "синтеза" есть опасность скатиться в микро-дизайн, и если топикстартер приводит в пример высеры Буча и GoF, то это 99% оно и есть, т.е не нужно

Опасность скатиться в микродизайн есть всегда и обусловлена она неумением сформулировать проблему в терминах задачи, а не её решения. Вне зависимости, читал ли человек Бутча и ГоФ или нет.

Date: 2013-01-22 03:31 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
GoF про микродизайн, а Буч это натягивание сов на глобусы, вообще малоосмысленное чтение.

Date: 2013-01-22 03:40 pm (UTC)
From: [identity profile] guamoka.livejournal.com
ГоФ- это не только (и не столько) микродизайн (боюсь даже спросить, что вы под этим утверждением понимаете). Бутч- вполне себе осмысленное чтение. Хоть и затянутое. Фаулера вполне достаточно.

Date: 2013-01-22 12:13 pm (UTC)
From: [identity profile] jakobz.livejournal.com
Да тоже самое все подходит. Любителям фашизма можно даже UML-диаграммы рисовать.

Date: 2013-01-22 01:34 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Если брать Эрриксон, то они скорее всего документировали в виде CSD (call sequence diagram) и конечных автоматах. Диаграммы потоков данных и сообщений тоже полезны. А в остальном, те же яйца, только сбоку.

Прелесть функционального подхода в том, что DSL задачи пользователя ложится на него почти без изменений и осоой нужды переводить всё на птичий язык нет.

Date: 2013-01-22 04:34 pm (UTC)
From: [identity profile] guamoka.livejournal.com
Я вот думаю, что не везде требуют соблюдать вуду-процессы с артефактами-uml-подробными спецификациями и прочим

Кстати, ребе, вы случайно не путает OO подход, моделирование, специфицирование и документирование c помощью, скажем UML? Чтобы использовать OO подход и даже использовать/знать РУП, не нужно ведь обязательно под страхом расстрела документировать каждую запятую в проекте на UML, утром получать документацию, а вечером сдавать? Ну, и "достаточность" тоже ведь не подразумивает, нарисовал две линии в юзкейзах, три- в моделях, четыре-пять- в спецификации имплементации?

Date: 2013-01-22 04:55 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ну условно говоря, я практикую ОО подход и даже иногда рисую диаграммы. Но назвать это нормальными процессами язык не поворачивается, т.к. из моих заметок посторонний человек суть системы понять не сможет.

А FP (да и прочие околоматематические методы) это усугубляют, сильно упрощая некоторые этапы. Не записываем же мы каждый раз, как мы производим математические расчеты, да и в доказательствах часто встречаются пробелы типа "это очевидно, поэтому докажете сами дома".

Date: 2013-01-22 05:18 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
Проблема либо в, э-э-э-э-э, не до конца достаточной степени понятливости человека или отсутствии у него необходимой базы, на получение которой может быть нужно разное время, либо в недостаточной простоте языка, на котором ведётся объяснение. Чем тупее, тем лучше. Можно ввести базовые простые термины и называть их всегда одними же и теми словами. И даже не углубляться в суть, если для типичных задач это не нужно. Захочет - разберётся. Заебёт вопросами, например. А если не захочет, зачем тогда работать.

Date: 2013-01-22 07:59 pm (UTC)
From: [identity profile] justy-tylor.livejournal.com
Для data modeling есть разница в кошерных sum types. Палитра низкоуровневых архитектурных приёмов больше зависит от языка, чем от парадигмы. Например, design patterns заплатки для Java от GoF. Или type classes в Haskell vs. попытки навести что-то подобное в OCaml.

Что касается OOA/OOD, то хороших слов у меня нет. Попытки сделать толковое начались только в BORO Партриджа (Chris Partridge "Business Objects: Re-Engineering for Re-Use"), но это, фактически, отход от object-oriented (как и последовавшие ISO 15926-2, Gellish, HQDM). А "проверенное временем" вуду, будь оно архитектурного или организационного уровня, всё больше про говно и солому,

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 6th, 2025 10:43 am
Powered by Dreamwidth Studios