Книга поможет выработать правильную тактику и оценить перспективы раз


Почему нужно прибегать к рефакторингу?



Pdf көрінісі
бет10/24
Дата19.11.2023
өлшемі1.3 Mb.
#483696
1   ...   6   7   8   9   10   11   12   13   ...   24
refaktoringsql-prilozheniy

Почему нужно прибегать к рефакторингу?
У большинства приложений рано или поздно снижается производитель-
ность . В лучших случаях успех некоторых старых удачных приложе-
ний приводил к тому, что им приходилось обрабатывать такие объемы 
данных, для которых они не были исходно предназначены, поэтому 
старым программам нужно было продлить жизнь до внедрения новой 


12
Предисловие
программы . В худших случаях тесты производительности до введения 
приложения в эксплуатацию показывали полное несоответствие требо-
ваниям к системе . В промежуточных случаях при росте объемов дан-
ных, добавлении новой функциональности, обновлении программного 
обеспечения или изменениях конфигурации обнаруживались дефекты, 
которые до определенного момента были незаметны, а возврат к преж-
нему состоянию не всегда мог исправить ситуацию . Все эти проблемы 
объединяют чрезвычайно сжатые сроки для увеличения производитель-
ности и постоянное давление на разработчиков .
Первые действия по разрешению проблемы обычно выполняют систем-
ные инженеры и администраторы баз данных, которых просят «покол-
довать» над параметрами . Если не обнаруживается какая-то особо се-
рьезная ошибка (такое случается), настройки операционной системы 
и базы данных часто дают только незначительный прирост производи-
тельности .
После этого традиционным следующим шагом является увеличение 
мощности оборудования . Это очень дорогой вариант, поскольку к цене 
оборудования, вероятно, добавится увеличение стоимости лицензий на 
использование программного обеспечения . Это приведет к прерыванию 
бизнес-процесса, потребуется планирование . Что самое печальное, нет 
никакой реальной гарантии рентабельности этих вложений . Случается, 
что массированное обновление оборудования не оправдывало надежд . 
Ходят ужасные истории о том, как после подобных обновлений произ-
водительность падала еще больше . Бывает, что добавление процессоров 
только увеличивает конкуренцию между процессами .
Концепция рефакторинга подразумевает необходимый промежуточ-
ный этап между настройкой и приобретением нового оборудования . 
Выше упомянутая конструктивная книга Мартина Фаулера фокусиру-
ется на объектных технологиях . Но контекст приложений баз данных 
значительно отличается от контекста прикладных программ, написан-
ных на объектно-ориентированных или процедурных языках, эти раз-
личия вносят значительные отличия в рефакторинг . Например:
Изменения, кажущиеся малыми, не всегда оказываются таковыми 
Благодаря декларативной природе языка SQL, незначительная моди-
SQL, незначительная моди-
, незначительная моди-
фикация кода часто может принести значительные изменения в то, 
как SQL обрабатывает данные, что приводит к серьезным изменени-
SQL обрабатывает данные, что приводит к серьезным изменени-
обрабатывает данные, что приводит к серьезным изменени-
ям производительности – как в лучшую, так и в худшую сторону .
Проверка правильности изменений может быть затруднена
Сравнительно несложно убедиться, что значение, возвращаемое 
функцией, одинаково во всех случаях до и после изменения кода . 
Значительно сложнее проверить, остается ли прежним содержимое 
большой таблицы после изменения главного оператора обновления .


Предисловие 
13
Контекст часто оказывается критичным
Приложения баз данных могут годами работать удовлетворительно 
без заметных проблем . Часто случается, что объем данных или на-
грузка переходят некий порог либо обновление программного обе-
спечения изменяет работу оптимизатора, после чего производитель-
ность внезапно становится неудовлетворительной . Работы по улуч-
шению производительности баз данных обычно происходят в усло-
виях кризиса .
В результате рефакторинг приложений баз данных происходит на слож-
ном фоне, но в то же время такая попытка может быть (и часто бывает) 
очень успешной .


Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   24




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет