metaclass: (дзедline)
metaclass ([personal profile] metaclass) wrote2013-03-15 09:36 am

Анализ зависимостей

Есть небольшая опердень, в которой несколько сотен различных объектов - таблицы, вьюшки, хранимые процедуры, запросы, гуишные окна, справочники и прочая дб-центрик хрень. Часть из этих вещей по историческим причинам устарела.
Я вот думаю, сделать автоматический анализатор графа зависимостей между между всем этим, чтобы создать список, "чего нахрен удалить" или по старинке, руками и только то, что нужно на текущий момент.
А то очень уж близко к зоопарку с яками изготовление анализатора зависимостей, хоть он и займет день-два в разработке.

[identity profile] http://users.livejournal.com/zubr_/ 2013-03-15 09:46 am (UTC)(link)
Выгребать и удалять можно только при наличии юнит-тестов. Почему-то везунчики, у которых среда разработки умеет юнит тесты, даже не вспоминают про них.

[identity profile] 7ocb.livejournal.com 2013-03-15 09:50 am (UTC)(link)
Наличию юнит-тестов необходимо в случае если речь идет о том, чтобы вычищать код который очень тесно переплетается с реально работающим.

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

Впрочем, это никак не относится к вопросу "руками или автоматикой". Автоматика тоже может иметь ошибки и тоже может удалить что то лишнее. Или не удалить чего то что стоило бы.

[identity profile] jakobz.livejournal.com 2013-03-15 11:26 am (UTC)(link)
Для таких БД оперденей часто неясно как писать тесты и что в них вообще проверять.

[identity profile] metaclass.livejournal.com 2013-03-15 11:39 am (UTC)(link)
У меня как раз просто - "выбрать все пункты меню доступные пользователям и проверить что они не валятся с ошибками".
Там могут быть внутренние ошибки типа "неправильно посчиталось", но они ищутся другими методами, тут главное, чтобы не удалить что-нибудь из используемых запросов.

[identity profile] jdevelop.livejournal.com 2013-03-15 12:59 pm (UTC)(link)
юниттесты писать нельзя, это вам любой айсед расскажет