Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

State Mashine. Объясните.   Найти похожие ветки 

 
jack128_   (2012-09-26 16:05) [40]


> Новомодное словечко, означающее просто "шаблон". Т.е. нечто,
>  обладающее заранее известными свойствами. Необязательно
> из ООП.

односвязный список целых чисел имеет заранее определённые свойства. Это шаблон?


 
Ega23 ©   (2012-09-26 16:08) [41]


> через процедуры И классы(или рекорды). А какая разница?


А почему не через строки? Или просто указатели?
Сути не меняет. Паттерн проектирования - это, по сути, UML-диаграмма. Как ты её реализовывать будешь - твоё личное дело.


 
Юрий Зотов ©   (2012-09-26 21:36) [42]

> jack128_   (26.09.12 16:05) [40]

Конечно, шаблон. Шаблон структур данных под названием "односвязный список".


 
jack128_   (2012-09-26 21:40) [43]


> UML-диаграмма.

в вики перечислено 12 видов UML-диаграмм, которая из них?


 
jack128_   (2012-09-26 21:56) [44]


> Конечно, шаблон. Шаблон структур данных под названием "односвязный
> список"

ну тогда я вообще не могу представить хотя бы одно существительное, которое не было бы паттерном.


 
Rouse_ ©   (2012-09-26 21:56) [45]


> Паттерн проектирования - это, по сути, UML-диаграмма.

Паттерн на регулярки в студию :)


 
Rouse_ ©   (2012-09-26 21:57) [46]

тьху - диаграмму на регулярки :)))


 
Jeer ©   (2012-09-26 22:02) [47]

Паттерны, шаблоны.. тьху на вас.


 
Ega23 ©   (2012-09-26 22:14) [48]


> в вики перечислено 12 видов UML-диаграмм, которая из них?

http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B


 
Юрий Зотов ©   (2012-09-26 22:41) [49]


> jack128_   (26.09.12 21:56) [44]

Ряд целых чисел сам по себе не шаблон, конечно. Но как только ты реализовал его в программе в виде связного списка - ты применил шаблон.


 
DVM ©   (2012-09-26 22:52) [50]


> Rouse_ ©   (26.09.12 21:57) [46]
> тьху - диаграмму на регулярки :)))

Наверное не на регулярные выражения, а на конечный NFA автомат, который производит синтаксический анализ регулярных выражений. Обычная машина состояний. Паттерн State Machine существует. Про UML ничего не знаю вообще.


 
jack128_   (2012-09-26 23:09) [51]


> Ряд целых чисел сам по себе не шаблон, конечно. Но как только
> ты реализовал его в программе в виде связного списка - ты
> применил шаблон.

А чем же ряд целых - не шаблон. Обладает опереленными характеристиками, всё как положенно. У тебя какое то жутко обобщенное, и потому бессмысленное определение. Под него можно всё что угодно подвести.

Во например ( http://rsdn.ru/forum/philosophy/4856509.1 ) - уже что то более конкретное.


 
Rouse_ ©   (2012-09-26 23:20) [52]


> DVM ©   (26.09.12 22:52) [50]
> Наверное не на регулярные выражения, а на конечный NFA автомат,
>  который производит синтаксический анализ регулярных выражений.
>  Обычная машина состояний. Паттерн State Machine существует.
>  Про UML ничего не знаю вообще.

Аналогично, собственно и Легыч тоже - поэтому я и удивился его спичу :)
У нас только Юра пропагандирует сие направление, периодически захламляя свой рабочий стол листами А4 с красивыми стрелочками и кружочками :))


 
Юрий Зотов ©   (2012-09-26 23:30) [53]

> А чем же ряд целых - не шаблон

Тем, что он не имеет отношения к программированию.

> Обладает опереленными характеристиками, всё как положенно. У тебя
> какое то жутко обобщенное, и потому бессмысленное определение. Под
> него можно всё что угодно подвести.


Можно, если ты - двоичный программист. Нельзя, если ты не только читаешь слова, а еще и понимаешь их контекст.

Жень, ты сколько стаканов на прикроватный столик ставишь?
:o)


 
Юрий Зотов ©   (2012-09-26 23:33) [54]

> Rouse_ ©   (26.09.12 23:20) [52]

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


 
Rouse_ ©   (2012-09-26 23:38) [55]


> Юрий Зотов ©   (26.09.12 23:33) [54]
> Вообще, бывает все же полезно

Сам используешь?


 
DVM ©   (2012-09-26 23:39) [56]


> Юрий Зотов ©   (26.09.12 23:33) [54]


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

актуальность еще надо поддерживать, если все эти диаграммы не будут генерироваться автоматически, или наоброт код не будет генерироваться по диаграммам, то слишком много усилий будет уходить на поддержание этого всего в актуальном виде. Документация в коде - еще куда ни шло.


 
DVM ©   (2012-09-26 23:41) [57]


> Rouse_ ©   (26.09.12 23:38) [55]

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


 
Rouse_ ©   (2012-09-26 23:48) [58]


> DVM ©   (26.09.12 23:41) [57]
>
> > Rouse_ ©   (26.09.12 23:38) [55]
>
> я использовал только тогда когда надо было понять всю иерархию
> хитросплетений классов и модулей чужого приложения

Я вот этого кстати никогда не понимал, Юрка мне тоже именно эти слова говорил. Мошт у меня просто получается без всякой этой ерунды вникнуть в сторонний код, или мошт оно реально не нужно? :)
В свое время изучал код AVZ, EurekaLog, DevExpress - для того чтобы начать его расширение требовалось от силы два-три часа на анализ, нафига какие-то схемы? Дерева проекта и самодокументации кода за глаза...


 
Юрий Зотов ©   (2012-09-26 23:49) [59]


> Rouse_ ©   (26.09.12 23:38) [55]

Когда на проектирование дают время. А это, увы, бывает не часто - в ходу известная политика РП: "Кончай дедукцию - давай продукцию."

DVM ©   (26.09.12 23:39) [56]

Разумеется.


 
Rouse_ ©   (2012-09-26 23:52) [60]


> Юрий Зотов ©   (26.09.12 23:49) [59]
> Когда на проектирование дают время.

Ну я тоже проектирую, завожу специальную папку в проекте куда картинки складываю и прочую святотень, а так-же специальный блокнотик, в котором ведется ТЗ по провекту, никаких UML - усе по старинке :)


 
Юрий Зотов ©   (2012-09-26 23:55) [61]


> Rouse_ ©   (26.09.12 23:48) [58]
> требовалось от силы два- три часа на анализ, нафига какие-то схемы?

В моем нынешнем проекте несколько сотен классов и приличная глубина наследования. Думаю, что за два-три часа хрен въедешь в них самих и тем более и в логику их взаимодействия. Скорее, и за две-три недели не до конца въедешь.


 
Rouse_ ©   (2012-09-27 00:01) [62]


> Юрий Зотов ©   (26.09.12 23:55) [61]
> В моем нынешнем проекте несколько сотен классов и приличная
> глубина наследования.

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


 
DVM ©   (2012-09-27 00:03) [63]


> Rouse_ ©   (27.09.12 00:01) [62]


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

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


 
Rouse_ ©   (2012-09-27 00:12) [64]


> совсем другое - понять как в целом все работает

Ну так а я об чем? Возьмем эврику - сотни классов + куча низкоуровнего кода.
В течении трех часов после установки я начал отправлять багрепорты о глюках, как в движке компиляции и неверно построенном алгоритме дизассемблера длинн, так и о промахах в алгоритмах отправки данных через MAPI/SimpleMAPI/SMTP.
А почему? Да потому что код хорошо спроектирован, все прозрачно и на ладони. Да, там больше сотни классов, та там достаточно хорошее наследование, особенно в движке отправки данных и что?
Все это от лукавого - если хочешь разобраться, разберешься достаточно быстро.


 
Rouse_ ©   (2012-09-27 00:14) [65]

В смысле не багрепорты отправлять - а отправлять исправленные варианты классов (собственно почему в свое время и получил халявную лицензию как один из хороших бетатестеров ;)


 
Rouse_ ©   (2012-09-27 00:25) [66]

ЗЫ: кстати, если кто использует эврику, то за фильтрацию исключений через назначение им атрибутов типа [EurekaLogHandler(TFilterHandlerType)] можете сказать нам с Jack128 спасибо - это наше предложение было реализовано :)


 
Юрий Зотов ©   (2012-09-27 00:43) [67]

> Rouse_ ©
> Возьмем эврику - сотни классов + куча низкоуровнего кода.

Есть существенная разница. Эврика имеет чисто "программистский" функционал, который ты прекрасно знаешь - и по коду тебе остается только понять, как оно сделано.

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

А на освоение всей этой прикладухи нужны отнюдь не часы. Недели нужны, а может и месяцы.


 
Rouse_ ©   (2012-09-27 00:49) [68]


> Юрий Зотов ©   (27.09.12 00:43) [67]
> Мой проект, наоборот,  имеет прикладной функционал.

Согласен, собственно ждал этой постановки вопроса :)
А как тут поможет UML?
Вот у нас например сметы - этому учатся 5 лет, как мне построить диаграму чтобы стать сметчиком и начать разбираться в специфике продукта? :)


 
Юрий Зотов ©   (2012-09-27 00:56) [69]

> Rouse_ ©   (27.09.12 00:49) [68]
> А как тут поможет UML?

UML начинается с вариантов использования - а это уже описание прикладухи.


 
Rouse_ ©   (2012-09-27 00:58) [70]


> Юрий Зотов ©   (27.09.12 00:56) [69]
> UML начинается с вариантов использования - а это уже описание
> прикладухи.

Отлично, берем прикладное приложение - ассистент врача, нарисуй мне UML диаграмму на основании которой можно поставить диагноз :)


 
Ega23 ©   (2012-09-27 00:59) [71]


> Ну я тоже проектирую, завожу специальную папку в проекте
> куда картинки складываю и прочую святотень, а так-же специальный
> блокнотик, в котором ведется ТЗ по провекту, никаких UML
> - усе по старинке :)


Ты часто рисуешь в своём блокноте блок-схемы? Понятно, что для простого цикла её рисовать бесмысленно. Но вот представь, что у тебя какой-то супер-пупер-навороченный алгоритм. Тут уже эта блок-схема может пригодиться.
Теперь ты отдал этот блокнот мне. Я смотрю на твои кружочки-прямоугольнички - и ни хрена не понимаю. Прошу объяснения. Ты мне объясняешь, что кружочек - это тарелка, прямоугольничек - это спички, а кружочек в кружочке - это вид мексиканца в сомбреро сверху. ОК.
Теперь мы отдаём этот блокнотик Жеке и говорим про все эти кружочки и прямоугольнички. И тоже всё ОК.
А теперь ты решаешь этот хитрый алгоритм на своём сайте разместить, так, чтобы его понял Вася Пупкин из Нижней бердяевки. А у Васи Пупкина в конторе "ОАО Колокольчик", в которой он трудится, есть договорённость, что прямоугольничек - это ЗИЛ с мешком удобрений, кружочек - это молочный сепаратор, а кружочек в кружочке - это бесконечный цикл в бесконечном цикле, которые символизируют бренность бытия.
И вот тут на помощь приходит UML.

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


 
Rouse_ ©   (2012-09-27 01:03) [72]


> Ega23 ©   (27.09.12 00:59) [71]

У тебя отдельный и передовой случай, под тебя я уже специально купил диктофон, бо наскальная живопись в виде палочек и кружочков не эффективна  :)


 
Германн ©   (2012-09-27 01:08) [73]


> о промахах в алгоритмах отправки данных через SimpleMAPI.

Когда это было?


 
Rouse_ ©   (2012-09-27 01:16) [74]


> Германн ©   (27.09.12 01:08) [73]
>
> > о промахах в алгоритмах отправки данных через SimpleMAPI.
>
>
> Когда это было?

Бета семерки, не помню какая по номеру...


 
Германн ©   (2012-09-27 01:41) [75]


> Бета семерки, не помню какая по номеру

Возможно эти промахи (или некоторые из них) были исправлены уже в шестёрке благодаря твоим багрепортам. И если они были в конце прошлого/ начале этого года, то именно они помогли мне получить дополнительную премию при сдаче проекта. Тогда тебе спасибо! :)


 
Rouse_ ©   (2012-09-27 01:54) [76]

В шестерке я тоже правил код и постил багрепорты в виде исправленного кода, там их в районе 14 штук было примерно, один из них был связан с транспортом, но не с отправкой а с переключением режимов отправки, т.е. грубо изначально мы отправляем через SMTP, а если не получилось то переключаемтся на SimpleMAPI и там происходила потеря части данных из-за некоторых нюансов в калбэках.
А по семерке, я очень плотно поработал. Но там уже другой нюанс, ребята практически полностью переписали движок и понятное дело что ошибок (один инсталер на 80 метров) может быть море во всех местах, ибо переписано практически все.


 
Германн ©   (2012-09-27 02:12) [77]


> Rouse_ ©   (27.09.12 01:54) [76]

Просто я в начале этого года сдавал проект. И в качестве дополнительного бонуса использовал посылку отчета Эврики об ошибке на адрес разработчика/владельца программы. И возникли проблемы. АА посоветовал мне обновить Эврику и проблемы исчезли.


 
Inovet ©   (2012-09-27 04:19) [78]

> [53] Юрий Зотов ©   (26.09.12 23:30)
> ты сколько стаканов на прикроватный столик ставишь?

Зависит от объёма подкроватной вазы.


 
Inovet ©   (2012-09-27 04:21) [79]

> [54] Юрий Зотов ©   (26.09.12 23:33)
> проектируя, ты одновременно составляешь документацию. Как
> бы даром она получается.

Для этого давно придумана Автошема.


 
Игорь Шевченко ©   (2012-09-27 09:54) [80]

вот поэтому основная масса программного обеспечения приходит из-за рубежа :)



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.63 MB
Время: 0.074 c
15-1329597005
Юрий
2012-02-19 00:30
2013.03.22
С днем рождения ! 19 февраля 2012 воскресенье


15-1330604387
upc
2012-03-01 16:19
2013.03.22
Покупка Delphi


2-1338721041
Разведка
2012-06-03 14:57
2013.03.22
Нужна проверка слабых мест


2-1342074698
Sergey
2012-07-12 10:31
2013.03.22
просьба к участникам быть взаимовежливыми


2-1331468421
Димка На
2012-03-11 16:20
2013.03.22
Создать несколько экз. класса сразу.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский