powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Консервативная модернизация системы
25 сообщений из 26, страница 1 из 2
Консервативная модернизация системы
    #35986669
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересуют мнения имевших опыт консервативной модернизации относительно больших систем.
Описание обобщенной ситуации по ссылке .
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987036
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас двухзвенка? Без сервера приложений?

Templar
ООП практически не используется

Непонятно. Главное чтобы вы видели, как вы хотите его использовать %)

Templar
местами с обработкой строк в сишном стиле

Непонятно. Это отдельная мелкая (по сравнению с остальным) проблема - зачем о ней упоминать?! %)

Templar
BDE + ODBC

Эээ... Одновременно? Чё так? Ааа, ODBC - для отчётов?

Templar
простыни спагетти-кода, где прикладная логика размазана по событиям.

Аналогично "обработке строк в сишном стиле", но проблема пожалуй покрупнее... Опять-таки, вы уже знаете, как оно "должно" быть вместо текущего состояния?

Templar
Несколько "ортодоксальная" реализация с прямыми запросами к СУБД (MS SQL), хотя имеется небольшое количество хранимых процедур.

Я пока не очень большой знаток MS SQL - поэтому про ХП промолчу :)
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987037
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Templar
В общем, стандартный набор "прелестей". Предпоследняя среда разработки Delphi 4, перенесена в 2006 или 2007, на очереди 2009.

Многовато изменений. Неплохо бы вспомнить "отцов" рефакторинга - изменения делаем последовательно, "небольшими" простыми кусками, тестируем каждый шаг. Если затеете переход на 2009 - занимайтесь им одним, пока не переведёте весь проект. И если этот переход 100% будет - может даже в первую очередь. Возможностей будет больше - может сократите часть шагов по сравнению с вариантом "Отложим 2009 на потом"...

Templar
Обьем кода (порядка 500К-1М строк) и функционала (сотни модулей и функций) достаточно велик, чтобы забыть о "переписывании нахрен".

+1 - не являюсь сторонником вариантов "снесём и новый мир построим"...

Templar
База данных относительно компактная (единицы сотен таблиц) и небольшая по обьему (единицы гигабайт), тип использования - транзакционный и аналитический.
Структуры спроектированы неплохо,
однако практически отсутствует поддержка целостности на уровне СУБД.

Повышать поддержку целостности хотите? Поскольку объём изменений в связи с этим планируется большой, для работ в этом направлении считаю более предпочтительным вариант: "Наведём порядок с функционалом - примемся за данные" - так будет в сумме меньше затрат на модификацию программы...
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987038
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Templar
Отчеты (сотни форм) - локально, типа crystal reports/rave reports через ODBC.

Отчёты по опыту - это, пожалуй, самая живучая зараза :). По моей практике:
0. Если отсутствует логирование/статистика запуска отчётов - добавляйте в первую очередь - потом поможет во многих случаях
1. Существующие отчёты пусть ПОКА живут (у некоторых отчётов этот срок неприлично долгий)
2. Определяемся с основным генератором отчётов (например, FastReport 4 :)). Ни с Rave, ни с Crystal незнаком. Если Rave а-ля Quick - компилируемый - это "+". Если формат шаблона отчёта не текстового содержания - это "-". Если есть нужда в матричных отчётах - и для них вынуждены использовать отдельный генератор - ещё раз стоит посмотреть на FR4 - он умеет и с ними работать.
3. Новые отчёты делаем "принудительно" только на "избранном" генераторе
4. При модификации старых больше, чем косметика - переделываем отчёт на "избранном" генераторе

Templar
Функциональная архитектура (декомпозиция, номенклатура задач, раширяемость на существующей базе и т.д.) в целом хорошего качества.
Ресурсы у разработки минимальные - команда порядка 5-7 человек включая функциональных спецов и тестеров.
Бета-тесты делают ключевые пользователи/клиенты.

Ничего не сказано про наличие автоматизированных тестов :(. Небольшая команда при изменении глобальных вещей в проекте не сможет много тестировать вручную... Вобщем, см. ещё раз про "отцов" рефакторинга...
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987040
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Templar
Во время разработки требуется минимальная поддержка текущей версии.

Непонятно.

Templar
Цели модернизации:
- снижение затрат на внесение изменений (в основном косметика, функционально система сложилась и будет меняться слабо)

Непонятно. То есть сейчас на косметику много тратите?!
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987041
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Templar
- облегчение развертывания (единицы сотен АРМ), в идеале - один EXE, который можно копировать или запускать с веб-странички, автообновление версий

Локальная сеть?
1. Добавить логирование в БД запусков клиентов с указанием версии - если этого ещё нет...
2. До сих пор работаю с вариантом "Запускаем с файл-сервера приложение-обновлятор, которое по ini-описанию сверяет и при необходимости копирует файлики + запускает основное приложение и при необходимости отдельные мелкие модификаторы (например, для реестра)".

Templar
- реструктуризация технической архитектуры: декомпозиция монолита, обозримость, ясность, снижение "хрупкости" (меняем в одном месте, появляется аномалия в другом)

Постройте параллельно новый монолит, и на него переводите постепенно имеющийся функционал. Опять-таки, шаг за шагом, понемногу, тестируя на привалах.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987042
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Templar
- разделение логики с другими приложениями, например, веб-клиент для некоторых функций (для простоты считаем, что они также разрабатываются на Delphi)

Для себя решил, что использовал бы IntraWeb - достаточно экономный вариат, но после того, как будет проведена реструктуризация интерфейса по MVC :).

Templar
Возможные варианты:


Templar
- постепенный вынос логики на уровень СУБД,

Если будете выносить:
1. Если ХП сейчас мало, скорее всего и опыта мало. Приложите усилия к тому, чтобы "хаос" не перебрался с паскаля в СУБД.... Используйте те же знания и методики к СУБД коду: ХП небольшие, одинаково форматированные, изменения хранятся в системе контроля версий и т.д.
2. СУБД - ещё один слой. Потратьте ненавязчиво время на инструментарий, который будет генерировать по функциональности СУБД прослойку для использования в ООП...
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987043
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Templar
реструктуризация интерфейса по MVC (model-view-controller),

В данном случае оправдан - если нацелились на веб-интерфейс и "обычный". Тем не менее, не обязательно переводить всё: пробуйте выделять поначалу только-то, что необходимо для веб-интерфейс.

Templar
"тонкий" веб-сервис для доступа к слою логики

Непонятно.

Templar
- вынос логики в модули даных

Если выносить одним махом всё - это увеличение количества unit'ов грубо говоря в два раза.
Стоит подумать...

Templar
затем - на сервер приложений

Если поделитесь вариантом без эпоса "снесём и новый мир построим" - с радостью выслушаю.

Templar
доступ через веб-сервисы

Мода или реальная необходимость?

Templar
реструктуризация интерфейса MVC

Ещё раз?
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987045
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Templar
- отчеты - миграция на MS SQL Server Reporting Services

Как кулИк - ответственно заявляю - FR4 :). Не забывать, что отчёты - это тоже "исходники": соответственно, СКВ и прочая...

Templar
- еще что-то...

- уйти от BDE. Альтернатива: AnyDAC. +: Поддерживается и развивается, есть исходники, нет заморочек с multithreaded app (а в вебе с BDE они почти 100% появятся), есть возможности оптимизации производительности и на уровне компонент доступа, ...
- говорили про "транзакционный и аналитический". Как обстоят дела с OLAP?
- наращивать мускулы монолиту. Если в двух задачах (хотя "отцы рефакторинга" и рекомендут от трёх) повторяется реализация функционала - выделяйте и переносите в монолит, и т.д. Прикладные задачи должны по объёму кода выглядеть легковесными.

Templar
Прежде всего интересуют мнения имевших реальный опыт подобной модернизации


Регулярно. %). Обращайтесь.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987208
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,
+1
- от 3-х звенки отказаться (БЛ на сервер)
- т.к. БЛ на сервер, найти грамотного спеца по БД с правом решающего голоса (ООП в БД не совать)
- от БДЕ отказаться (на сиквеле можно на адо)
- после вычистки от логики клиента можно и про web думать
- если надо, выделить OLAP
- выделить цели, написать на плакате над головой у всех и поставить в план.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987827
ValPot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем консервативный опыт сопровождения и развития схожих по масштабу систем. Идем немного иным путем. Если интересны детали, пишите.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987960
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValPot, Опыт всегда интересен. Им надо обмениваться ;) Если не хотите флейма здесь, может быть напишете пару абзацев в комментариях к исходной ссылке (регистрация не требуется)?

АнатоЛой, Petro123, спасибо, ваши комментарии касаются более детального уровеня реализации, но он также становится нужным позднее, когда завершены планы по эволюции архитектуры. Разумеется, БДЕ не годится по многим критериям. Использование веб-служб существенно упрощает работу в глобальной сети, для сохранения DataSet-подхода потребуется реализация своих на основе ClientDataSet, например. Вынос отчетов на сервер также решает многие проблемы резвертывания. ООП в базе данных необходимо в разумных пределах, минимально - сокрытие доступа к таблицам на уровне ХП и проекций, CRUD-часть генерируется по метаданным (если они есть), рееестр обьектов, ядро безопасности. Тонкий веб-сервис в данном варианте только вызывает нужную ХП и возврашает результат, по сути обертка протокола работы с сервером приложений (реализованном в виде слоя ХП). Ну ладно, это детали.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35987979
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TemplarАнатоЛой, Petro123, спасибо, ваши комментарии касаются более детального уровеня реализации, но он также становится нужным позднее, когда завершены планы по эволюции архитектуры.
Собственно, а что Вы хотя бы приблизительно ожидали? :)
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35988008
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойСобственно, а что Вы хотя бы приблизительно ожидали? :)
Я прошу никого не обижаться ;)
Вначале хотелось бы послушать начальника транспортного цеха, например, что " было принято решение по выносы логики в модули данных, затем их вынесли на сервер и стали использовать удаленно (midas, еще что-то в т.ч. свое). Это дало преимущества в том-то, решило следующие проблемы, но еще остались такие-то проблемы и появились новые "
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35988034
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TemplarАнатоЛойСобственно, а что Вы хотя бы приблизительно ожидали? :)
Я прошу никого не обижаться ;)
Вначале хотелось бы послушать начальника транспортного цеха, например, что " было принято решение по выносы логики в модули данных, затем их вынесли на сервер и стали использовать удаленно (midas, еще что-то в т.ч. свое). Это дало преимущества в том-то, решило следующие проблемы, но еще остались такие-то проблемы и появились новые "
это в учебниках читай, или мемурах.
Опыт не купишь.
Я могу только сказать IMHO и "налево пойдёшь - коня потеряешь" (тьфу - должность)
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35988168
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TemplarВначале хотелось бы послушать начальника транспортного цеха, например, что " было принято решение по выносы логики в модули данных, затем их вынесли на сервер и стали использовать удаленно (midas, еще что-то в т.ч. свое). Это дало преимущества в том-то, решило следующие проблемы, но еще остались такие-то проблемы и появились новые "Это как раз пример "переписывания нахрен".

А про консервативную практику рассказали АнатоЛой и Petro123

Консервативная стратегия в 2-х словах заключается в составлении списка тех изменений, которые устранят наиболее мешающие проблемы и постепенная реализация этих вариантов по мере появления ресурсов.

Она на то и "консервативная", что в ней нет идеи всё выкинуть и перейти на один из указанных в статье вариантов.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35988258
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TemplarАнатоЛойСобственно, а что Вы хотя бы приблизительно ожидали? :)
Я прошу никого не обижаться ;)

Ни в коем случае :)
Templar
Вначале хотелось бы послушать начальника транспортного цеха, например, что " было принято решение по выносы логики в модули данных, затем их вынесли на сервер и стали использовать удаленно (midas, еще что-то в т.ч. свое). Это дало преимущества в том-то, решило следующие проблемы, но еще остались такие-то проблемы и появились новые "
Думаю не дождёшься :). Это действительно мемуары - для рассказа о конкретных модификациях архитектуры нужно зенать существующую - иначе историй чересчур много - и рассказывать их всеп непрактично. Про то, что было упомянуто - каждый своё вспомнил :)
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35996716
WJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В качестве информации к размышлению предлагаю еще одно лекарство от "переписывания нахрен" - это интеграцию при помощи BPM-систем. Про сами системы говорить сейчас не стану, поскольку большинство о них уже "все знает", а те, кто не знают, могут и погуглить или просто спросить (тогда будет смысл отвечать :) ). А вот про то, что с этим можно сделать, скажу пару слов.
Итак, имеем одно (а скорее всего два, три) легаси-приложения, несколько любимых экселевых таблиц (в которых просто удобно), электронную почту и icq в качестве средств коммуникации... ну и еще может быть что-то свое, родное. Переписывать все просто невозможно. Сломать что-то страшно, поскольку так хоть как-то живет, а там кто его знает.
Думаю, что какое-то представление о том, как это должно между собой взаимодействовать у вас есть. Т.е. предполагаемую архитектуру вы можете описать (можно просто на бумаге). Если предположить, что взаимодействие строится на уровне сервисов, то назовем ее просто - сервис-ориентированная архитектура (то бишь SOA ;-) ). Не нравится - зовите по-другому, не принципиально.
Для обмена сервисами можно использовать специальные транспорт - т.н. Enterprise Service Bus (ESB), хотя это не обязательное условие.
В BPM-системе описываете процессы, в рамках которых взаимодействуют ваши приложения. На определенных шагах процесса выполняете интеграцию (кстати, интеграция возможна не только на уровне сервисов, но и, при желании, на уровне данных, на уровне функций).
Т.к. задания приходят пользователям из BPM-системы, то необходимость пересылки по электронной почте отпадает (данные процесса доступны пользователям в необходимом для них объеме).
Примерно так. Пунктиром.
Почему мне нравится этот вариант? Да хотя бы потому, что когда у вас есть проблемы с устаревающим ПО (да и вообще с чем-то устаревающим), то решать их устаревающими методами можно, конечно, но тупиково, имхо. Особенно если есть современные.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35997015
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WJВ качестве информации к размышлению предлагаю еще одно лекарство от "переписывания нахрен" - это интеграцию при помощи BPM-систем. Про сами системы говорить сейчас не стану, поскольку большинство о них уже "все знает", а те, кто не знают, могут и погуглить или просто спросить (тогда будет смысл отвечать :) ). А вот про то, что с этим можно сделать, скажу пару слов.
Итак, имеем одно (а скорее всего два, три) легаси-приложения, несколько любимых экселевых таблиц (в которых просто удобно), электронную почту и icq в качестве средств коммуникации... ну и еще может быть что-то свое, родное. Переписывать все просто невозможно. Сломать что-то страшно, поскольку так хоть как-то живет, а там кто его знает.
Думаю, что какое-то представление о том, как это должно между собой взаимодействовать у вас есть. Т.е. предполагаемую архитектуру вы можете описать (можно просто на бумаге). Если предположить, что взаимодействие строится на уровне сервисов, то назовем ее просто - сервис-ориентированная архитектура (то бишь SOA ;-) ). Не нравится - зовите по-другому, не принципиально.
Для обмена сервисами можно использовать специальные транспорт - т.н. Enterprise Service Bus (ESB), хотя это не обязательное условие.
В BPM-системе описываете процессы, в рамках которых взаимодействуют ваши приложения. На определенных шагах процесса выполняете интеграцию (кстати, интеграция возможна не только на уровне сервисов, но и, при желании, на уровне данных, на уровне функций).
Т.к. задания приходят пользователям из BPM-системы, то необходимость пересылки по электронной почте отпадает (данные процесса доступны пользователям в необходимом для них объеме).
Примерно так. Пунктиром.
Почему мне нравится этот вариант? Да хотя бы потому, что когда у вас есть проблемы с устаревающим ПО (да и вообще с чем-то устаревающим), то решать их устаревающими методами можно, конечно, но тупиково, имхо. Особенно если есть современные.

Обожаю адптов полумертвой СОА .
Вам трудно поддерживать унаследованный софт?
Окружите его веб-сервисами, и тогда вы сможете поддерживать не только унаследованный софт, но и сервисы впридачу.

Извините, не удержался, по сути же.
Речь не идет о "легаси", речь о промышленных системах в эксплуатации с долгсрочными планами дальнейшего развития и эксплуатации. Чтобы использовать по назначению СОА/ОСА нужно вначале корректно декомпозировать монолит.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35997152
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Templar,
"полумертвая" не СОА, "полумертвыми" выглядят попытки сообщества привести СОА к единому стандарту реализации . Слишком много видений того, "как нужно делать". Сама архитектура живет и здравствует.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35997218
WJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmTemplar,
"полумертвая" не СОА, "полумертвыми" выглядят попытки сообщества привести СОА к единому стандарту реализации . Слишком много видений того, "как нужно делать". Сама архитектура живет и здравствует.+100
iscrafm, в точку!!!
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35997280
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmTemplar,
"полумертвая" не СОА, "полумертвыми" выглядят попытки сообщества привести СОА к единому стандарту реализации . Слишком много видений того, "как нужно делать". Сама архитектура живет и здравствует.
Без стандартизации она остается внутренней технологией фреймворков и средством интеграции.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35997295
WJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Templar
архитектура и реализация архитектурных решений - это несколько разные вещи. Если архитектура предусматривает взаимодействие между ее элементами посредством сервисов - это будет сервис-ориентированная архитектура. Если посредством передачи данных через дискетку - основанная на обмене файлами (можете придумать свое название :) ). Не нравится SOA - назовите ее просто АРХИТЕКТУРА. Надеюсь, Вы не возражаете, что архитектура в том или ином виде существует, как бы она ни называлась. Если архитектор задумал так, что посреди пустыни стоит один столб (или одна монолитная система) - то это тоже его архитектурное решение.
Архитектура сама по себе не является средством интеграции. Поэтому, если Вы внимательно читали мой пост, я предлагаю в качестве средства интеграции BPM-систему(ы). Хотя, если я правильно понимаю, то уже одно то, что "BPMS" стояла рядом с "SOA", в Ваших глазах делает ее оскверненной и не достойной рассмотрения :)?
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35997350
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WJ2 Templar
архитектура и реализация архитектурных решений - это несколько разные вещи. Если архитектура предусматривает взаимодействие между ее элементами посредством сервисов - это будет сервис-ориентированная архитектура.
Ок, т.е. два сиквел-сервера с репликацией - это СОА.

WJПоэтому, если Вы внимательно читали мой пост, я предлагаю в качестве средства интеграции BPM-систему(ы).
Если вы внимательно читали постановку вопроса, то интеграция в нее не входит. Посему просьба не засорять ветку.
...
Рейтинг: 0 / 0
Консервативная модернизация системы
    #35997428
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TemplariscrafmTemplar,
"полумертвая" не СОА, "полумертвыми" выглядят попытки сообщества привести СОА к единому стандарту реализации . Слишком много видений того, "как нужно делать". Сама архитектура живет и здравствует.
Без стандартизации она остается внутренней технологией фреймворков и средством интеграции.
а нужно ли большее? Вот в чем вопрос. Требуется решать конкретную задачу. Если эта задача решается путем использования внутренней технологии какого-нибудь фреймворка, то зачем для решения локальной задачи искать какие-то глобальные решения.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Консервативная модернизация системы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]