OberonCore https://forum.oberoncore.ru/ |
|
Рефакторинг: есть ли ему место в разработке систем? https://forum.oberoncore.ru/viewtopic.php?f=86&t=3573 |
Страница 3 из 4 |
Автор: | Valery Solovey [ Четверг, 22 Сентябрь, 2011 22:14 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
alexus писал(а): Valery Solovey писал(а): Пишется один или несколько новых модулей. Они подключаются. Старые модули отключаются. Всё это время система как работала, так и продолжает работать. Остановок в работе не было. Повторного тестирование ранее написанного кода тоже не было. Фактически, это всё тот же рефакторинг |
Автор: | alexus [ Четверг, 22 Сентябрь, 2011 22:16 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Драконограф писал(а): alexus писал(а): Программисты должны стараться создавать качественные инструменты в тех случаях, когда речь идёт о том, что предметную область невозможно или не нужно/бесполезно (как в приведённом случае) формализовать. Читай - когда, скажем, требуется просто отработать задачу от начала до конца по дной и той же схеме? М.б. неоднократно - но с рестартом каждый раз с определённого места (возможно, одного из нескольких)?Драконограф писал(а): alexus писал(а): Развитие должно опираться на "правильную схему/модель"... иначе неизбежно вернёмся к рефакторингу (переделки то в одном месте, то в другом). Так вот... "выявление сущностей/отношений предметки, операций над ними" - это относится к получению "правильной модели", но не её развитию. М.б. и нет... ну потом так потом. ... Общее движение (аналитика, проектировщика, программиста) должно происходить от семантики в сторону насыщения/многообразия форм, а не от ошибок и недочётов (в модели/проектной документации/коде) к их исправлению. Исходная мысль здесь: "смысл всегда прост, трудно даётся его обретение". Ладно... я, кажется, опять увлёкся "тонкими материями"... Напрасно... Т.е. суммируя - один раз, уяснив смысл предметки, формируем её ДСЛ (язык моделей, которые считаем правильными)? Вообще я имел в виду под изменением ДСЛ (кроме указанных Вами введений его изоморфных представлений) не столько его исправление, сколько расширение... подобно тому, как интегро/диффисчисления расширяют арифметику... ну и т.д. Вряд ли это всегда сразу видимо... или нет?.. После того, как суть (как минимальная... правильная схема/модель) определена и реализована, может начинаться развитие. Развитие происходит как пошаговое углубление (более детальная проработка) и пошаговое расширение (включение новых "несущественных" элементов). Никакой переработки того, что сделано на предыдущем шаге не делается (конечно, если семантическая модель была хорошо продумана). Развитие (углубление и расширение) связаны не с недостатками исходной семантической модели (она банально проста), а с привязкой её к конкретной предметной области. |
Автор: | Иван Кузьмицкий [ Пятница, 23 Сентябрь, 2011 05:14 ] |
Заголовок сообщения: | Re: Оберон, ДРАКОН и проектирование систем |
Info21 писал(а): Иван Кузьмицкий писал(а): статьи типа "Смелее и чаще делайте рефакторинг". Заранее можно обдумать структуру программы, если отчетливо понимаешь, в чем задача.Чем новее и сложнее задача, тем труднее ее понять. Вот игра с реальными прототипами как раз и позволяет понять, в чем там дело. Да, и я замечаю, что модульность позволяет аккуратно локализовать рефакторинг, а если ещё использовать абстрактные фабрики с подменой реализации, то дело ещё больше упрощается. Ну а интерфейс вида HandleMessage добавляет дополнительной гибкости. То есть, возможности оберона таковы, что даже ещё не касаясь предметной области, можно уже на старте совершить правильный и относительно безопасный задел. |
Автор: | alexus [ Пятница, 23 Сентябрь, 2011 06:34 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Простите, вынужден был прервать ответ... Драконограф писал(а): Ну, мне тоже кажется правильным проекция... в этом смысле и говорил. И она в Вашем понимании возможна так - просто даём уже определённым в инварианте вещам/отношениям названия, принятые в предметке? Т.е. можно определить некий базис типов отношений и сущностей? Да, об этом и идёт речь. Если мы подразумеваем последующий рефакторинг, то можно подходить к выбору базиса произвольно, не задумываясь. Но противоположный подход, без рефакторинга, исходит из выявления и реализации базовых элементов с последующим их углублением и насыщением в направлении той или иной предметной области, включая те области, где разработчики... некомпетентны... (понимаю, что это высказывание вызовет волну негодования и насмешек, но может быть хоть кто-то задумается... оно того стоит...)
|
Автор: | alexus [ Пятница, 23 Сентябрь, 2011 06:49 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Alexey_Donskoy писал(а): alexus писал(а): Общее движение (аналитика, проектировщика, программиста) должно происходить от семантики в сторону насыщения/многообразия форм, а не от ошибок и недочётов (в модели/проектной документации/коде) к их исправлению... Первая мысль: блин, всё же так просто и очевидно!Например так, есть некоторая супер-модель ("правильная схема"), которая включает в себя все модели ("схемы"). Эта "супер-модель" является собирательным образом и постоянно дополняется новыми моделями (схемами). А можно так, супер-модель, проецируется на разные области, и поэтому она не является собирательным образом, а является про-образом тех образов-моделей, которые являются её проекциями на предметные области. Это два принципиально разных... взгляда/подхода... И всегда сам знал, только словами выразить не мог Alexey_Donskoy писал(а): Вторая мысль: а примеров второго-то я и не видел в жизни... за исключением пары относительно мелких частных задач... Почему? А, может, это всё правильно, но принципиально недостижимо, как абсолютный идеал? Достижимо, точнее оно всегда с нами, рядом... только стремимся мы к другому, как правило... Потом, что-то правим или выбрасываем...Alexey_Donskoy писал(а): Если ты не знаешь ни одной предметной области - то откуда возьмётся прообраз? Следовательно, нужна подготовка, изучение, опыт построения моделей, рефакторинг тот же... пока не кристаллизуется вот эта самая суть! Прообраз берётся не из предметной области. Предметная область нужна только для того, чтобы... привести человека к... себе самому (заинтересовать в познании), а не для того, чтобы приподнести "прообраз".PS. Просьба, пишите подобные сообщения (офтопик) в личку... |
Автор: | Alexey_Donskoy [ Пятница, 23 Сентябрь, 2011 08:08 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
alexus писал(а): Прообраз берётся не из предметной области. Предметная область нужна только для того, чтобы... привести человека к... себе самому (заинтересовать в познании), а не для того, чтобы приподнести "прообраз". Согласен.alexus писал(а): хотя в статье "О познании" я говорил тоже самое... Пока это выглядит как противоречие, и в голове не укладывается... Но, вероятно, и не надо укладывать В познании, как и везде, имхо, есть циклы. "Экстенсивный" период накапливает опыт, затем "интенсивный" кристаллизует суть, которая, будучи познана, даёт потенциал для очередного "экстенсивного" скачка... имхо... alexus писал(а): PS. Просьба, пишите подобные сообщения (офтопик) в личку... Если ещё хотя бы один человек, кроме меня, сочтёт сие важным, то уже никак не офтопик
|
Автор: | albobin [ Пятница, 23 Сентябрь, 2011 09:12 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Спор по поводу рефакторинга, понимаемого всеми по разному, есть пример "семантического недоразумения" Не могу в толк взять, а в чём предмет спора в части системостроительства? Неужели кто-то спорит, что если идёт проектирование сверху вниз, то изменения верхнего уровни могут приводить к большим изменениям в низлежащих и потому это нежелательно и потому надо тщательно подходить к проектированию. Боюсь, что в том, что сейчас написал, также заложена мина "семантического недоразумения". Поясню мысль. Всегда есть слой, где локализована вся количественная сложность системы, грубо говоря все человеко-месяцы написания кода. Надо избегать смены проектных решений, которые сильно возмущают этот слой. Универсальных конкретных рецептов наверное нет, есть абстрактные рекомендации и хорошие и/или плохие примеры инженерных решений. Давеча был приведён хороший пример инженерного решения. ЗЫ. В начале этой ветки было высказано мнение, что нет в Обероне всего необходимого для проектирования/моделирования систем. Как то быстро затухла стартовая тема. Видимо оттого, что те люди, которые знают и используют сабж, имеют конкретные аргументы в пользу Оберона. Остальным же приходится аргументировать общими соображениями (как за, так и против). |
Автор: | Илья Ермаков [ Пятница, 23 Сентябрь, 2011 13:05 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
alexus писал(а): Никакой переработки того, что сделано на предыдущем шаге не делается (конечно, если семантическая модель была хорошо продумана). Развитие (углубление и расширение) связаны не с недостатками исходной семантической модели (она банально проста), а с привязкой её к конкретной предметной области. Мне кажется, что даже при таком подходе - поиск смыслового ядра и потом его уточнение - остаётся частая ошибка: что-то не включено в ядро, что-то не вяжется при переходе к конкретным случаям. Модель тут же "догромождается", как только её конкретизируем. Тогда приходится выделять ещё одно упущенное "ядерное" понятие или связь и вносить её в ядро. |
Автор: | alexus [ Пятница, 23 Сентябрь, 2011 15:51 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Илья Ермаков писал(а): alexus писал(а): Никакой переработки того, что сделано на предыдущем шаге не делается (конечно, если семантическая модель была хорошо продумана). Развитие (углубление и расширение) связаны не с недостатками исходной семантической модели (она банально проста), а с привязкой её к конкретной предметной области. Мне кажется, что даже при таком подходе - поиск смыслового ядра и потом его уточнение - остаётся частая ошибка: что-то не включено в ядро, что-то не вяжется при переходе к конкретным случаям. Модель тут же "догромождается", как только её конкретизируем. Тогда приходится выделять ещё одно упущенное "ядерное" понятие или связь и вносить её в ядро.А может быть и правда, "страшнее кошки зверя нет"?.. Илья, я не собираюсь никого ни в чём убеждать, я говорю только о своём опыте. Что Вы можете сказать о системе расчётов?.. Это реализуемо? Это расширяемо?.. ... положив правую руку на левое сердце... Хотите я нарисую сбыт/снабжение, как семантическую модель?.. Обсудим возможные направления развития... или опровержения выслушаем (вдруг есть такое предприятие, где всё/что-то не так... то есть, не всё предусмотрено в семантической модели... и придётся рано/поздно её переделать... обидно же... весь жизненный опыт... к проктологу...) (производство и финансы тоже можно рассмотреть, как и прочие подсистемы, но там вводная часть больше... лениво...) |
Автор: | Илья Ермаков [ Пятница, 23 Сентябрь, 2011 16:40 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Я не возражал, а просто уточнял... Что иногда возврата к работе над смысловым ядром бывает не избежать... |
Автор: | Peter Almazov [ Пятница, 23 Сентябрь, 2011 17:39 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
alexus писал(а): Хотите я нарисую сбыт/снабжение, как семантическую модель?.. Обсудим возможные направления развития... или опровержения выслушаем (вдруг есть такое предприятие, где всё/что-то не так... то есть, не всё предусмотрено в семантической модели... и придётся рано/поздно её переделать... обидно же... весь жизненный опыт... к проктологу...) Илья, ну напишите уже "хотим!"(производство и финансы тоже можно рассмотреть, как и прочие подсистемы, но там вводная часть больше... лениво...) |
Автор: | alexus [ Пятница, 23 Сентябрь, 2011 18:24 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Peter Almazov писал(а): alexus писал(а): Хотите я нарисую сбыт/снабжение, как семантическую модель?.. Обсудим возможные направления развития... или опровержения выслушаем (вдруг есть такое предприятие, где всё/что-то не так... то есть, не всё предусмотрено в семантической модели... и придётся рано/поздно её переделать... обидно же... весь жизненный опыт... к проктологу...) Илья, ну напишите уже "хотим!"(производство и финансы тоже можно рассмотреть, как и прочие подсистемы, но там вводная часть больше... лениво...) Да, действительно... не стоит быть навязчивым... Всем пламенный привет, и удачи... в рефакторинге! |
Автор: | Peter Almazov [ Пятница, 23 Сентябрь, 2011 18:43 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
alexus писал(а): Peter Almazov писал(а): alexus писал(а): Хотите я нарисую сбыт/снабжение, как семантическую модель?.. Обсудим возможные направления развития... или опровержения выслушаем (вдруг есть такое предприятие, где всё/что-то не так... то есть, не всё предусмотрено в семантической модели... и придётся рано/поздно её переделать... обидно же... весь жизненный опыт... к проктологу...) Илья, ну напишите уже "хотим!"(производство и финансы тоже можно рассмотреть, как и прочие подсистемы, но там вводная часть больше... лениво...) Да, действительно... не стоит быть навязчивым... Всем пламенный привет, и удачи... в рефакторинге! Я бы сам написал ХОТИМ, и даже очень, но предложение-то относилось к Илье. Поэтому не счел возможным и попытался повлиять на Илью. |
Автор: | Valery Solovey [ Пятница, 23 Сентябрь, 2011 19:44 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
albobin писал(а): Спор по поводу рефакторинга, понимаемого всеми по разному, есть пример "семантического недоразумения" Просто у рефакторинга есть автор. Он описал какую-то деятельность и дал ей имя, чтобы потом на неё ссылаться. Если мне не изменяет память, то автор его - тот же человек, что и описавший технику экстремального программирования. Возможно даже, что в книге про экстремальное программирования этот термин и был введён. Сам я книгу не читал, но мне говорили, что рефакторинг в идеале не должен вносить изменения в логику работы. Таким образом, рефакторинг в сумме с полётом мысли даёт то, против чего выступает alexus.Но если вдуматься в слово "рефакторинг", то его значение окажется более глубоким, чем официальное. Относиться к исходному коду оно будет в самую последнюю очередь. |
Автор: | albobin [ Пятница, 23 Сентябрь, 2011 20:01 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Valery Solovey писал(а): ]Просто у рефакторинга есть автор... Вот он и виноват во всём. Напридумывал, понимаешь, а люди потом ссорятся и обижаются |
Автор: | Валерий Лаптев [ Пятница, 23 Сентябрь, 2011 21:08 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Книгу о рефакторинге написал Мартин Фаулер. Тот же, который написал книгу о DSL. По определению Мартина Фаулера рефакторинг - это изменение когда с целью его улучшения без изменения функциональности. В книге приводится 130 приемов-паттернов рефакторинга. От небольших до крупных. Есть еще книга Кориевски Рефакторинг с использованием шаблонов (паттернов) проектирования. Есть еще Рефакторинг баз данных. Это довольно модный ныне термин. |
Автор: | Владислав Жаринов [ Суббота, 24 Сентябрь, 2011 08:42 ] |
Заголовок сообщения: | Инвариантная модель <искусственной> системы |
alexus писал(а): Peter Almazov писал(а): alexus писал(а): Хотите я нарисую сбыт/снабжение, как семантическую модель?.. Обсудим возможные направления развития... или опровержения выслушаем (вдруг есть такое предприятие, где всё/что-то не так... то есть, не всё предусмотрено в семантической модели... и придётся рано/поздно её переделать... обидно же... весь жизненный опыт... к проктологу...) Илья, ну напишите уже "хотим!"(производство и финансы тоже можно рассмотреть, как и прочие подсистемы, но там вводная часть больше... лениво...) Да, действительно... не стоит быть навязчивым... Всем пламенный привет, и удачи... в рефакторинге! |
Автор: | Info21 [ Суббота, 24 Сентябрь, 2011 09:46 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
Peter Almazov писал(а): alexus писал(а): Да, действительно... не стоит быть навязчивым... Да нет, Вы поняли все в точности наоборот.Всем пламенный привет, и удачи... в рефакторинге! |
Автор: | igor [ Суббота, 24 Сентябрь, 2011 18:07 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
alexus писал(а): Всем пламенный привет, и удачи... в рефакторинге! (оффтоп) - удалил!
|
Автор: | albobin [ Суббота, 24 Сентябрь, 2011 19:59 ] |
Заголовок сообщения: | Re: Оберон и проектирование систем |
igor писал(а): (оффтоп) - удалил! оффтоп смыт (Здесь) |
Страница 3 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |