|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Интересуют мнения имевших опыт консервативной модернизации относительно больших систем. Описание обобщенной ситуации по ссылке . ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2009, 19:49 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Сейчас двухзвенка? Без сервера приложений? Templar ООП практически не используется Непонятно. Главное чтобы вы видели, как вы хотите его использовать %) Templar местами с обработкой строк в сишном стиле Непонятно. Это отдельная мелкая (по сравнению с остальным) проблема - зачем о ней упоминать?! %) Templar BDE + ODBC Эээ... Одновременно? Чё так? Ааа, ODBC - для отчётов? Templar простыни спагетти-кода, где прикладная логика размазана по событиям. Аналогично "обработке строк в сишном стиле", но проблема пожалуй покрупнее... Опять-таки, вы уже знаете, как оно "должно" быть вместо текущего состояния? Templar Несколько "ортодоксальная" реализация с прямыми запросами к СУБД (MS SQL), хотя имеется небольшое количество хранимых процедур. Я пока не очень большой знаток MS SQL - поэтому про ХП промолчу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 02:51 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Templar В общем, стандартный набор "прелестей". Предпоследняя среда разработки Delphi 4, перенесена в 2006 или 2007, на очереди 2009. Многовато изменений. Неплохо бы вспомнить "отцов" рефакторинга - изменения делаем последовательно, "небольшими" простыми кусками, тестируем каждый шаг. Если затеете переход на 2009 - занимайтесь им одним, пока не переведёте весь проект. И если этот переход 100% будет - может даже в первую очередь. Возможностей будет больше - может сократите часть шагов по сравнению с вариантом "Отложим 2009 на потом"... Templar Обьем кода (порядка 500К-1М строк) и функционала (сотни модулей и функций) достаточно велик, чтобы забыть о "переписывании нахрен". +1 - не являюсь сторонником вариантов "снесём и новый мир построим"... Templar База данных относительно компактная (единицы сотен таблиц) и небольшая по обьему (единицы гигабайт), тип использования - транзакционный и аналитический. Структуры спроектированы неплохо, однако практически отсутствует поддержка целостности на уровне СУБД. Повышать поддержку целостности хотите? Поскольку объём изменений в связи с этим планируется большой, для работ в этом направлении считаю более предпочтительным вариант: "Наведём порядок с функционалом - примемся за данные" - так будет в сумме меньше затрат на модификацию программы... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 02:52 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Templar Отчеты (сотни форм) - локально, типа crystal reports/rave reports через ODBC. Отчёты по опыту - это, пожалуй, самая живучая зараза :). По моей практике: 0. Если отсутствует логирование/статистика запуска отчётов - добавляйте в первую очередь - потом поможет во многих случаях 1. Существующие отчёты пусть ПОКА живут (у некоторых отчётов этот срок неприлично долгий) 2. Определяемся с основным генератором отчётов (например, FastReport 4 :)). Ни с Rave, ни с Crystal незнаком. Если Rave а-ля Quick - компилируемый - это "+". Если формат шаблона отчёта не текстового содержания - это "-". Если есть нужда в матричных отчётах - и для них вынуждены использовать отдельный генератор - ещё раз стоит посмотреть на FR4 - он умеет и с ними работать. 3. Новые отчёты делаем "принудительно" только на "избранном" генераторе 4. При модификации старых больше, чем косметика - переделываем отчёт на "избранном" генераторе Templar Функциональная архитектура (декомпозиция, номенклатура задач, раширяемость на существующей базе и т.д.) в целом хорошего качества. Ресурсы у разработки минимальные - команда порядка 5-7 человек включая функциональных спецов и тестеров. Бета-тесты делают ключевые пользователи/клиенты. Ничего не сказано про наличие автоматизированных тестов :(. Небольшая команда при изменении глобальных вещей в проекте не сможет много тестировать вручную... Вобщем, см. ещё раз про "отцов" рефакторинга... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 02:53 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Templar Во время разработки требуется минимальная поддержка текущей версии. Непонятно. Templar Цели модернизации: - снижение затрат на внесение изменений (в основном косметика, функционально система сложилась и будет меняться слабо) Непонятно. То есть сейчас на косметику много тратите?! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 02:53 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Templar - облегчение развертывания (единицы сотен АРМ), в идеале - один EXE, который можно копировать или запускать с веб-странички, автообновление версий Локальная сеть? 1. Добавить логирование в БД запусков клиентов с указанием версии - если этого ещё нет... 2. До сих пор работаю с вариантом "Запускаем с файл-сервера приложение-обновлятор, которое по ini-описанию сверяет и при необходимости копирует файлики + запускает основное приложение и при необходимости отдельные мелкие модификаторы (например, для реестра)". Templar - реструктуризация технической архитектуры: декомпозиция монолита, обозримость, ясность, снижение "хрупкости" (меняем в одном месте, появляется аномалия в другом) Постройте параллельно новый монолит, и на него переводите постепенно имеющийся функционал. Опять-таки, шаг за шагом, понемногу, тестируя на привалах. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 02:54 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Templar - разделение логики с другими приложениями, например, веб-клиент для некоторых функций (для простоты считаем, что они также разрабатываются на Delphi) Для себя решил, что использовал бы IntraWeb - достаточно экономный вариат, но после того, как будет проведена реструктуризация интерфейса по MVC :). Templar Возможные варианты: Templar - постепенный вынос логики на уровень СУБД, Если будете выносить: 1. Если ХП сейчас мало, скорее всего и опыта мало. Приложите усилия к тому, чтобы "хаос" не перебрался с паскаля в СУБД.... Используйте те же знания и методики к СУБД коду: ХП небольшие, одинаково форматированные, изменения хранятся в системе контроля версий и т.д. 2. СУБД - ещё один слой. Потратьте ненавязчиво время на инструментарий, который будет генерировать по функциональности СУБД прослойку для использования в ООП... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 02:55 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Templar реструктуризация интерфейса по MVC (model-view-controller), В данном случае оправдан - если нацелились на веб-интерфейс и "обычный". Тем не менее, не обязательно переводить всё: пробуйте выделять поначалу только-то, что необходимо для веб-интерфейс. Templar "тонкий" веб-сервис для доступа к слою логики Непонятно. Templar - вынос логики в модули даных Если выносить одним махом всё - это увеличение количества unit'ов грубо говоря в два раза. Стоит подумать... Templar затем - на сервер приложений Если поделитесь вариантом без эпоса "снесём и новый мир построим" - с радостью выслушаю. Templar доступ через веб-сервисы Мода или реальная необходимость? Templar реструктуризация интерфейса MVC Ещё раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 02:56 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Templar - отчеты - миграция на MS SQL Server Reporting Services Как кулИк - ответственно заявляю - FR4 :). Не забывать, что отчёты - это тоже "исходники": соответственно, СКВ и прочая... Templar - еще что-то... - уйти от BDE. Альтернатива: AnyDAC. +: Поддерживается и развивается, есть исходники, нет заморочек с multithreaded app (а в вебе с BDE они почти 100% появятся), есть возможности оптимизации производительности и на уровне компонент доступа, ... - говорили про "транзакционный и аналитический". Как обстоят дела с OLAP? - наращивать мускулы монолиту. Если в двух задачах (хотя "отцы рефакторинга" и рекомендут от трёх) повторяется реализация функционала - выделяйте и переносите в монолит, и т.д. Прикладные задачи должны по объёму кода выглядеть легковесными. Templar Прежде всего интересуют мнения имевших реальный опыт подобной модернизации Регулярно. %). Обращайтесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 03:01 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
АнатоЛой, +1 - от 3-х звенки отказаться (БЛ на сервер) - т.к. БЛ на сервер, найти грамотного спеца по БД с правом решающего голоса (ООП в БД не совать) - от БДЕ отказаться (на сиквеле можно на адо) - после вычистки от логики клиента можно и про web думать - если надо, выделить OLAP - выделить цели, написать на плакате над головой у всех и поставить в план. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 09:25 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Имеем консервативный опыт сопровождения и развития схожих по масштабу систем. Идем немного иным путем. Если интересны детали, пишите. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 12:27 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
ValPot, Опыт всегда интересен. Им надо обмениваться ;) Если не хотите флейма здесь, может быть напишете пару абзацев в комментариях к исходной ссылке (регистрация не требуется)? АнатоЛой, Petro123, спасибо, ваши комментарии касаются более детального уровеня реализации, но он также становится нужным позднее, когда завершены планы по эволюции архитектуры. Разумеется, БДЕ не годится по многим критериям. Использование веб-служб существенно упрощает работу в глобальной сети, для сохранения DataSet-подхода потребуется реализация своих на основе ClientDataSet, например. Вынос отчетов на сервер также решает многие проблемы резвертывания. ООП в базе данных необходимо в разумных пределах, минимально - сокрытие доступа к таблицам на уровне ХП и проекций, CRUD-часть генерируется по метаданным (если они есть), рееестр обьектов, ядро безопасности. Тонкий веб-сервис в данном варианте только вызывает нужную ХП и возврашает результат, по сути обертка протокола работы с сервером приложений (реализованном в виде слоя ХП). Ну ладно, это детали. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 13:02 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
TemplarАнатоЛой, Petro123, спасибо, ваши комментарии касаются более детального уровеня реализации, но он также становится нужным позднее, когда завершены планы по эволюции архитектуры. Собственно, а что Вы хотя бы приблизительно ожидали? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 13:08 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
АнатоЛойСобственно, а что Вы хотя бы приблизительно ожидали? :) Я прошу никого не обижаться ;) Вначале хотелось бы послушать начальника транспортного цеха, например, что " было принято решение по выносы логики в модули данных, затем их вынесли на сервер и стали использовать удаленно (midas, еще что-то в т.ч. свое). Это дало преимущества в том-то, решило следующие проблемы, но еще остались такие-то проблемы и появились новые " ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 13:16 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
TemplarАнатоЛойСобственно, а что Вы хотя бы приблизительно ожидали? :) Я прошу никого не обижаться ;) Вначале хотелось бы послушать начальника транспортного цеха, например, что " было принято решение по выносы логики в модули данных, затем их вынесли на сервер и стали использовать удаленно (midas, еще что-то в т.ч. свое). Это дало преимущества в том-то, решило следующие проблемы, но еще остались такие-то проблемы и появились новые " это в учебниках читай, или мемурах. Опыт не купишь. Я могу только сказать IMHO и "налево пойдёшь - коня потеряешь" (тьфу - должность) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 13:31 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
TemplarВначале хотелось бы послушать начальника транспортного цеха, например, что " было принято решение по выносы логики в модули данных, затем их вынесли на сервер и стали использовать удаленно (midas, еще что-то в т.ч. свое). Это дало преимущества в том-то, решило следующие проблемы, но еще остались такие-то проблемы и появились новые "Это как раз пример "переписывания нахрен". А про консервативную практику рассказали АнатоЛой и Petro123 Консервативная стратегия в 2-х словах заключается в составлении списка тех изменений, которые устранят наиболее мешающие проблемы и постепенная реализация этих вариантов по мере появления ресурсов. Она на то и "консервативная", что в ней нет идеи всё выкинуть и перейти на один из указанных в статье вариантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 14:13 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
TemplarАнатоЛойСобственно, а что Вы хотя бы приблизительно ожидали? :) Я прошу никого не обижаться ;) Ни в коем случае :) Templar Вначале хотелось бы послушать начальника транспортного цеха, например, что " было принято решение по выносы логики в модули данных, затем их вынесли на сервер и стали использовать удаленно (midas, еще что-то в т.ч. свое). Это дало преимущества в том-то, решило следующие проблемы, но еще остались такие-то проблемы и появились новые " Думаю не дождёшься :). Это действительно мемуары - для рассказа о конкретных модификациях архитектуры нужно зенать существующую - иначе историй чересчур много - и рассказывать их всеп непрактично. Про то, что было упомянуто - каждый своё вспомнил :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2009, 14:36 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
В качестве информации к размышлению предлагаю еще одно лекарство от "переписывания нахрен" - это интеграцию при помощи BPM-систем. Про сами системы говорить сейчас не стану, поскольку большинство о них уже "все знает", а те, кто не знают, могут и погуглить или просто спросить (тогда будет смысл отвечать :) ). А вот про то, что с этим можно сделать, скажу пару слов. Итак, имеем одно (а скорее всего два, три) легаси-приложения, несколько любимых экселевых таблиц (в которых просто удобно), электронную почту и icq в качестве средств коммуникации... ну и еще может быть что-то свое, родное. Переписывать все просто невозможно. Сломать что-то страшно, поскольку так хоть как-то живет, а там кто его знает. Думаю, что какое-то представление о том, как это должно между собой взаимодействовать у вас есть. Т.е. предполагаемую архитектуру вы можете описать (можно просто на бумаге). Если предположить, что взаимодействие строится на уровне сервисов, то назовем ее просто - сервис-ориентированная архитектура (то бишь SOA ;-) ). Не нравится - зовите по-другому, не принципиально. Для обмена сервисами можно использовать специальные транспорт - т.н. Enterprise Service Bus (ESB), хотя это не обязательное условие. В BPM-системе описываете процессы, в рамках которых взаимодействуют ваши приложения. На определенных шагах процесса выполняете интеграцию (кстати, интеграция возможна не только на уровне сервисов, но и, при желании, на уровне данных, на уровне функций). Т.к. задания приходят пользователям из BPM-системы, то необходимость пересылки по электронной почте отпадает (данные процесса доступны пользователям в необходимом для них объеме). Примерно так. Пунктиром. Почему мне нравится этот вариант? Да хотя бы потому, что когда у вас есть проблемы с устаревающим ПО (да и вообще с чем-то устаревающим), то решать их устаревающими методами можно, конечно, но тупиково, имхо. Особенно если есть современные. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 14:38 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
WJВ качестве информации к размышлению предлагаю еще одно лекарство от "переписывания нахрен" - это интеграцию при помощи BPM-систем. Про сами системы говорить сейчас не стану, поскольку большинство о них уже "все знает", а те, кто не знают, могут и погуглить или просто спросить (тогда будет смысл отвечать :) ). А вот про то, что с этим можно сделать, скажу пару слов. Итак, имеем одно (а скорее всего два, три) легаси-приложения, несколько любимых экселевых таблиц (в которых просто удобно), электронную почту и icq в качестве средств коммуникации... ну и еще может быть что-то свое, родное. Переписывать все просто невозможно. Сломать что-то страшно, поскольку так хоть как-то живет, а там кто его знает. Думаю, что какое-то представление о том, как это должно между собой взаимодействовать у вас есть. Т.е. предполагаемую архитектуру вы можете описать (можно просто на бумаге). Если предположить, что взаимодействие строится на уровне сервисов, то назовем ее просто - сервис-ориентированная архитектура (то бишь SOA ;-) ). Не нравится - зовите по-другому, не принципиально. Для обмена сервисами можно использовать специальные транспорт - т.н. Enterprise Service Bus (ESB), хотя это не обязательное условие. В BPM-системе описываете процессы, в рамках которых взаимодействуют ваши приложения. На определенных шагах процесса выполняете интеграцию (кстати, интеграция возможна не только на уровне сервисов, но и, при желании, на уровне данных, на уровне функций). Т.к. задания приходят пользователям из BPM-системы, то необходимость пересылки по электронной почте отпадает (данные процесса доступны пользователям в необходимом для них объеме). Примерно так. Пунктиром. Почему мне нравится этот вариант? Да хотя бы потому, что когда у вас есть проблемы с устаревающим ПО (да и вообще с чем-то устаревающим), то решать их устаревающими методами можно, конечно, но тупиково, имхо. Особенно если есть современные. Обожаю адптов полумертвой СОА . Вам трудно поддерживать унаследованный софт? Окружите его веб-сервисами, и тогда вы сможете поддерживать не только унаследованный софт, но и сервисы впридачу. Извините, не удержался, по сути же. Речь не идет о "легаси", речь о промышленных системах в эксплуатации с долгсрочными планами дальнейшего развития и эксплуатации. Чтобы использовать по назначению СОА/ОСА нужно вначале корректно декомпозировать монолит. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 16:19 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
Templar, "полумертвая" не СОА, "полумертвыми" выглядят попытки сообщества привести СОА к единому стандарту реализации . Слишком много видений того, "как нужно делать". Сама архитектура живет и здравствует. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 16:58 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
iscrafmTemplar, "полумертвая" не СОА, "полумертвыми" выглядят попытки сообщества привести СОА к единому стандарту реализации . Слишком много видений того, "как нужно делать". Сама архитектура живет и здравствует.+100 iscrafm, в точку!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:13 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
iscrafmTemplar, "полумертвая" не СОА, "полумертвыми" выглядят попытки сообщества привести СОА к единому стандарту реализации . Слишком много видений того, "как нужно делать". Сама архитектура живет и здравствует. Без стандартизации она остается внутренней технологией фреймворков и средством интеграции. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:28 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
2 Templar архитектура и реализация архитектурных решений - это несколько разные вещи. Если архитектура предусматривает взаимодействие между ее элементами посредством сервисов - это будет сервис-ориентированная архитектура. Если посредством передачи данных через дискетку - основанная на обмене файлами (можете придумать свое название :) ). Не нравится SOA - назовите ее просто АРХИТЕКТУРА. Надеюсь, Вы не возражаете, что архитектура в том или ином виде существует, как бы она ни называлась. Если архитектор задумал так, что посреди пустыни стоит один столб (или одна монолитная система) - то это тоже его архитектурное решение. Архитектура сама по себе не является средством интеграции. Поэтому, если Вы внимательно читали мой пост, я предлагаю в качестве средства интеграции BPM-систему(ы). Хотя, если я правильно понимаю, то уже одно то, что "BPMS" стояла рядом с "SOA", в Ваших глазах делает ее оскверненной и не достойной рассмотрения :)? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:31 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
WJ2 Templar архитектура и реализация архитектурных решений - это несколько разные вещи. Если архитектура предусматривает взаимодействие между ее элементами посредством сервисов - это будет сервис-ориентированная архитектура. Ок, т.е. два сиквел-сервера с репликацией - это СОА. WJПоэтому, если Вы внимательно читали мой пост, я предлагаю в качестве средства интеграции BPM-систему(ы). Если вы внимательно читали постановку вопроса, то интеграция в нее не входит. Посему просьба не засорять ветку. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 17:45 |
|
Консервативная модернизация системы
|
|||
---|---|---|---|
#18+
TemplariscrafmTemplar, "полумертвая" не СОА, "полумертвыми" выглядят попытки сообщества привести СОА к единому стандарту реализации . Слишком много видений того, "как нужно делать". Сама архитектура живет и здравствует. Без стандартизации она остается внутренней технологией фреймворков и средством интеграции. а нужно ли большее? Вот в чем вопрос. Требуется решать конкретную задачу. Если эта задача решается путем использования внутренней технологии какого-нибудь фреймворка, то зачем для решения локальной задачи искать какие-то глобальные решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 18:03 |
|
|
start [/forum/topic.php?fid=33&msg=35987040&tid=1548547]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 460ms |
0 / 0 |