Предисловие
Желая написать нечто полезное для людей понимающих,
я стремлюсь скорее следовать реальной природе вещей,
чем нашим представлениям о них.
Никколо
Макиавелли
Государь, XV
Эту книгу я хочу предварить небольшой историей . Я с большим трудом
закончил книгу «The Art of SQL
» . Она еще не поступила в продажу, ког-
да мой редактор, Джонатан Генник, подал идею о написании книги по
рефакторингу SQL . Что такое SQL, я знал хорошо . Однако слова
рефак-
торинг я прежде не слышал . Я поискал это слово в �oogle . В знамени-
�oogle . В знамени-
. В знамени-
той комедии Мольера богатый, но малообразованный человек был по-
ражен, когда выяснил, что он всю жизнь говорил прозой . Подобно го-
сподину Журдену, я обнаружил, что годами занимался рефакторингом
кода SQL, сам того не зная – анализ производительности для моих за-
SQL, сам того не зная – анализ производительности для моих за-
, сам того не зная – анализ производительности для моих за-
– анализ производительности для моих за-
– анализ производительности для моих за-
казчиков естественным образом приводил к усовершенствованию кода
посредством внесения небольших последовательных изменений, не ме-
нявших поведение программы . Одно дело пытаться спроектировать базу
данных в меру своих возможностей и спланировать архитектуру и про-
граммы, которые обеспечат эффективный доступ к базе данных . Совсем
другое дело выжать максимальную производительность из систем, ко-
торые вовсе не обязательно были удачно спроектированы с самого нача-
ла или бесконтрольно росли из года в год, но работа которых является
жизненно важной . И меня привлекла идея рассказа об SQL с собствен-
SQL с собствен-
с собствен-
ной профессиональной точки зрения .
Последнее, что хочется делать после окончания работы над книгой, –
это приступать к написанию новой книги . Но идея меня слишком заин-
тересовала . Я обсудил ее с несколькими друзьями, среди которых был
один из самых авторитетных специалистов по SQL, кого я знал . Этот
друг впал в негодование от моих слов, но на сей раз я с ним не согла-
сился . Действительно, идею, которую первым популяризировал Мар-
тин Фаулер
1
– усовершенствование кода с помощью маленьких лока-
– усовершенствование кода с помощью маленьких лока-
лизованных изменений, – можно воспринимать как причуду – чушь,
которой заполняют отчеты корпоративные консультанты, только что
получившие диплом . Но что касается меня, действительная важность
1
М . Фаулер . «Рефакторинг: улучшение существующего кода» . – Пер . с англ . –
СПб:
Символ-Плюс, 2002 .
Предисловие
11
рефакторинга заключается в том, что первоначальный код уже нельзя
считать хорошим, и в признании того, что множество посредственных
систем может после небольших усилий выполнять свои задачи значи-
тельно лучше . Рефакторинг является также подтверждением того, что
причиной падения производительности до не удовлетворяющего нас
уровня являемся мы сами, а не гримасы судьбы . И для корпоративного
мира это некоторое откровение .
Я видел множество сайтов, администраторы которых придавали про-
изводительности слишком большое значение, для них такие проблемы
были ударом судьбы и они возлагали последнюю надежду на настройку .
Если усилия администраторов баз данных и системных администрато-
ров оказывались безуспешными, единственным остающимся для них
выходом была закупка более мощной техники . Я читал слишком много
аудиторских отчетов самозваных экспертов по базам данных, которые
после переформатирования вывода системных утилит делали вывод, что
нужно увеличить несколько параметров и добавить еще памяти . Ради
справедливости замечу, что в некоторых таких отчетах упоминалась
«необходимость настроить» пару ужасных запросов, но в лучшем случае
в приложение к отчету был вставлен план действий .
Я годами не касался параметров базы данных (технические службы
моих заказчиков обычно достаточно компетентны) . Но мне удалось усо-
вершенствовать множество программ, и я старался как можно больше
сотрудничать с разработчиками, а не запираться в кабинете . В боль-
шинстве случаев я встречал людей, которые горели желанием учиться
и узнавать, которых достаточно было немного подбодрить и подтолкнуть
в нужном направлении, которые получали удовольствие от усовершен-
ствования своих навыков работы с SQL и которые вскоре начинали ста-
SQL и которые вскоре начинали ста-
и которые вскоре начинали ста-
вить для себя задачи повышения производительности .
Когда через некоторое время из моей головы выветрились воспоминания
о трудностях, связанных с написанием предыдущей книги, я присту-
пил к новой с намерением подробно изложить идеи, которые я обычно
пытаюсь передать разработчикам . Вопросы доступа к базам данных,
вероятно, являются одной из областей с наибольшим простором для
усовершенствования кода . Моей задачей при написании этой книги
было не предложение готовых рецептов, а концепция, в соответствии
с которой далеко не идеальные приложения SQL можно было бы усо-
SQL можно было бы усо-
можно было бы усо-
вершенствовать, не переписывая их с нуля (несмотря на периодически
возникающее сильное искушение) .
Достарыңызбен бөлісу: