Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемРоман Тимков
1 Рефакторинг баз данных
2 Для начала… Избегайте сверхспециализации (overspecialization) Разработчик приложенияРазработчик базы данных Разработчик Коммуникация Сотрудничество Обмен опытом Барьер
3 Определение Рефакторинг базы данных - изменение схемы базы данных, улучшающее ее дизайн, но не влияющее на ее поведенческую и информационную семантику Содержит как структурные, так и функциональные аспекты
4 Что рефакторить в БД? БД содержит: Данные (хранимые в соответствие со схемой) Хранимый код Хранимый код ничем не отличается от любого другого кода (его необходимо тестировать) Схема данных (таблицы, индексы и т.д.) Наличие данных усложняет рефакторинг схемы!
5 Зачем рефакторить? Исправление БД, доставшейся «в наследство» Обеспечивать эволюционное развитие Предотвратить избыточный дизайн (over-design)
6 Запахи плохого кода в БД Для хранимого кода применимы все рассмотренные запахи кода, включая: Процедуры-монстры Лапша-код (спагетти-код) Дублирование кода Перенасыщение условными операторами и т.д. Запахи, характерные для БД: Таблица/столбец широкого назначения Избыточные данные (повторяющиеся в нескольких таблицах) Таблица с огромным количеством столбцов/строк «Умные» столбцы (с кодом xml) Недостаток ограничений (отсутствие валидации) Страх внесения изменений в схему данных или процедуру
7 Страх внесения изменений Самый «вонючий запах» Препятствует развитию Снижает эффективность Наводит еще больший беспорядок Со временем становится только хуже
8 Как правильно действовать? Создать свою песочницу (sandbox) разработки Перенести изменения в песочницу интеграции Внедрить в производство (production)
9 Песочницы Частые развертыванияКонтролируемые развертывания Сильно контролируемые развертывания
10 Лучший случай (наипростейший)
11 Худший случай (сложнейший)
12 Тривиальные вещи Возможно ли переименовать столбец в БД без изменения сотни приложений? Если мы не можем сделать даже такую тривиальность, как мы можем сделать что-то поистине серьезное?
13 Модульные тесты в БД Слишком сложно? Нет хорошего средства тестирования (framework)?
14 Запуск модульных тестов Анонимный PL/SQL код Нет необходимости изменять БД Вызов raise_application_error с конкретным сообщением в случае возникновения ошибки Откат (rollback) по завершению теста Запуск при помощи любого SQL средства или ant-скриптов
15 Пример теста
16 Логи изменений (changelog) Необходимо отслеживание изменений Написание дельта-скриптов (миграций) В начале переходного периода В конце переходного периода Одинаковые скрипты для Обновления песочниц Развертывания на производстве
17 Простой скрипт
18 Версионирование
19 Работа в команде Разработчики Тесная кооперация с администраторами БД Навыки работы с БД Администраторы БД и проектировщики БД Должны быть вовлечены в процесс разработки приложения Навыки разработки приложений
20 Средства тестирования Дельта-скрипты Dbdeploy, liquibase, deltasql Легко писать самостоятельно PL/SQL код и
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.