Анализ зависимостей
Есть небольшая опердень, в которой несколько сотен различных объектов - таблицы, вьюшки, хранимые процедуры, запросы, гуишные окна, справочники и прочая дб-центрик хрень. Часть из этих вещей по историческим причинам устарела.
Я вот думаю, сделать автоматический анализатор графа зависимостей между между всем этим, чтобы создать список, "чего нахрен удалить" или по старинке, руками и только то, что нужно на текущий момент.
А то очень уж близко к зоопарку с яками изготовление анализатора зависимостей, хоть он и займет день-два в разработке.
Я вот думаю, сделать автоматический анализатор графа зависимостей между между всем этим, чтобы создать список, "чего нахрен удалить" или по старинке, руками и только то, что нужно на текущий момент.
А то очень уж близко к зоопарку с яками изготовление анализатора зависимостей, хоть он и займет день-два в разработке.
no subject
Поэтому проект чуть более чем наполовину (!!!!) состоял из кода, который не используется. Но в силу специфики проекта и корцедусов, код который не используется, все еще остается вызываемым. Например в ветках if'ов, которые никогда не выполнятся и т.п.
Таким образом полностью автоматическая система должна как минимум обладать интеллектом среднего разработчика для того, чтобы выяснить, что же из этого надо удалять.
В общем я это все к тому, что полная автоматика, как показывает практика, не слишком применима в данных условиях. И вместо того, чтобы потратить Н времени на разработку автоматики, лучше потратить Н/4 времени на разработку простых инструментов для того, чтобы разгребать зоопарк в полуавтоматическом режиме или для того, чтобы облегчить ручной разбор.
Ей богу, руками, grep'ом и крепким словом я разгреб это барахло куда раньше чем сваял бы внятную систему анализа зависимостей. (:
Конечно я разгреб еще не все, потому что там остались еще более запутанные куски, которые требуют глубокого анализа, но с такими кусками, очевидно, автоматика не справится еще больше.
no subject
Плюс он не сколько код, сколько базу анализировать собирается.
no subject
Я скорее рассматриваю эти проблемы как впринципе свойственные ситуации "куча устаревшего и неиспользуемого кода".
no subject
В целом с вашим исходным посылом согласен - зачастую полуавтоматически будет проще, корректней и быстрее.
no subject
Абсолютно согласен. Я всего лишь поделился своим опытом сражения с аналогичной проблемой. В конце концов, чем больше точек зрения можно обдумать, тем более взвешенное решение можно принять. (:
no subject
no subject
no subject
no subject
no subject
no subject
no subject
В случае если код используется только в ветке if которая никогда не отработает и это можно легко доказать простым анализом кода, то такая чистка достаточно безопасна. Но бесспорно, если есть юнит-тесты оно то завсегда лучше.
Впрочем, это никак не относится к вопросу "руками или автоматикой". Автоматика тоже может иметь ошибки и тоже может удалить что то лишнее. Или не удалить чего то что стоило бы.
no subject
no subject
Там могут быть внутренние ошибки типа "неправильно посчиталось", но они ищутся другими методами, тут главное, чтобы не удалить что-нибудь из используемых запросов.
no subject