Рефакторинг: мы им занимаемся, сами того не подозревая
Наши партнёры Наши проекты: IT Worldall CIOIT ContactIT Analytics
ВходРегистрация
X

Логин

Пароль

Запомнить

Забыли свой пароль?

Рефакторинг: мы им занимаемся, сами того не подозревая

Рефакторинг: мы им занимаемся, сами того не подозревая

| 29.09.2013

Рефакторинг является подтверждением того,
что причиной падения производительности
до неудовлетворяющего нас уровня являемся
мы сами, а не гримасы судьбы.
Стефан Фаро

 

Эта книга сильно отличается от тех многих работ по программированию, которые я читал, изучал, на которые писал рецензии. Основные свойства технической литературы — изложение, обучение и «справочность».

И поэтому специалист, который уже находится в теме излагаемых вопросов, может читать книгу по частям, а не сначала, пропускать тексты и главы, получать только ту информацию, которая интересует его в данный момент. Так построено большинство IT-изданий, включая произведения классиков – Тома Кайта, Стивена Фернштейна, Кевина Луни, Дага Бурлесона и др. Исключение, конечно, учебники, их полагается осваивать постепенно, глава за главой.

Книга же Стефана Фаро принадлежит к другому, довольно редкому виду изданий, которые надо читать (обязательно) от начала и (не обязательно) до конца именно как литературное произведение с динамично развивающимся сюжетом. Допустимо ли такое в технической литературе? Да, но редко. Тем ценнее рассматривая книга.

Сразу поясню: я постоянно называю только одного автора — Стефана Фаро, от лица которого ведется повествование. Но необходимо упомянуть и его партнера, Паскаля Лерми, чья помощь в написании этой книги была столь значительна, что он справедливо указан в качестве соавтора.

 

Из Википедии: «Рефакторинг (реорганизация кода) — процесс изменения внутренней структуры программы, не затрагивающий ее внешнего поведения и имеющий целью облегчить понимание ее работы. В основе рефакторинга лежит последовательность небольших эквивалентных (то есть сохраняющих поведение) преобразований. Поскольку каждое преобразование маленькое, программисту легче проследить за его правильностью, и в то же время вся последовательность может привести к существенной перестройке программы и улучшению ее согласованности и четкости».

 

Сразу становится понятной позиция Стефана Фаро:

·           Когда возникает вопрос рефакторинга кода, можно быть уверенным, что либо проблема уже возникла, либо она появится в ближайшее время.

·           Известно, что нужно улучшить в плане функциональности, но нужно понять природу проблемы.

·           При анализе производительности первое, что нужно диагностировать: не достиг ли один из трех основных ресурсов (загрузка процессора, использование памяти, операции ввода/вывода) проблемного уровня. Это покажет, что нужно улучшить и как это сделать.

·           Меня привлекла идея рассказа о SQL с собственной профессиональной точки зрения.

Тем самым перед нами не что иное, как роман-исследование. Начинается он с пролога (глава 1 «Оценка»), где автор заявляет, что «рассматривает различные способы увеличения производительности, которые иногда  оказываются эффективными и не зависят от настройки параметров базы данных или обновления оборудования». Глава вторая («Проверка работоспособности») и третья («Пользовательские функции и представления») посвящены, по оценке автора, мечте любого менеджера – быстрым победам, когда изменения производятся на стороне базы данных, а не приложения (давно же известно, что сравнительная эффективность настройки приложения и базы данных составляет знаменитую формулу 80/20).

Далее идет речь об изменениях, которые можно внести в приложение:

Глава 4. «Концепция тестирования. Приводится правильная концепция данного процесса (при модификации кода важно обеспечить получение тех же результатов, что до внесения изменений).

Глава 5. «Рефакторинг операторов. Обсуждается правильный подход к написанию SQL-предложений и излагаются способы, как превратить оптимизатор в друга, а не врага.

Глава 6. «Рефакторинг задач». Рассматриваются использование SQL там, где он работает лучше, реструктуризация кода, введение управляющих структур в SQL и другие темы. Так что, овладев SQL-мышлением, можно «рассчитывать на успех», утверждает Фаро.

Глава 7. «Рефакторинг потоков и баз данных. Последняя надежда для тех, кто все еще не удовлетворен производительностью. Скорее всего, это шутливая посылка автора, поскольку полностью довольных производительностью нигде и никогда не встречается. Но сам Фаро, изменяя потоки, вводя параллелизм, логически и физически корректируя структуру базы данных, в качестве последнего шанса пытается повысить производительность. Недаром одна из подглавок названа «Потрясая основы». Бог ему в помощь!

Глава 8. «Как это работает. Практика рефакторинга». Она же – эпилог-заключение этого SQL-романа. Подводит итоги и дает рекомендации на будущее. Очень мудрое замечание: «Повышение производительности является итеративным процессом. Очень часто за проблемами, которые приходится решать, скрываются другие проблемы». Осмелюсь предположить, что от такого тезиса не отказался бы и автор «Диалектики» великий Аристотель.

 

Автор: Анатолий Бачин, к. т. н., «ФОРС – Центр разработки»

Теги: software

Еженедельник IT Weekly № 39/2013 (02.10)

Компания: Форс-Центр Разработки


ВКонтакт Facebook Google Plus Одноклассники Twitter Livejournal Liveinternet Mail.Ru

ПопулярноеСобытия

software

Еженедельник IT Weekly

Компании сообщают

Компании сообщаютМаркетинговые акции

Редакция рекомендует

26.05.16
У меня действительно сильная команда, состоящая из пяти советников и пяти юристов – все они блестящие специалисты. Чем интересен консал ...
26.05.16
Рынок меняется в соответствии с новыми требованиями. Многим компаниям необходимо получать не столько Business Intelligence, сколь ...
25.04.16
Реселлеры и дистрибьюторы, работающие в IT-канале, постоянно сталкиваются с риском неплатежей. Неприятны неплатежи и в бизнесе с небольшо ...
18.04.16
Тим Хармон (Tim Harmon), специалист Forrester Research, рассуждает в издании Channelnomics о том, как повысить рентабельность работы партн ...

Реклама

Последние комментарии

Фоторепортажи

Слет Axoft 2016: Легенда Камелота  Слет Axoft 2016: Легенда Камелота
24.06.16
Distree в Санкт-Петербурге: B2B и B2CDistree в Санкт-Петербурге: B2B и B2C
23.06.16
МАРВЕЛ: Summertime Network StudiosМАРВЕЛ: Summertime Network Studios
17.06.16

Тренды

04.03.16
Агентство East-West Digital News подготовило отчет «E-Commerce in Russia. February 2016», в котором указало, что за 2015 год 30 млн ро ...
13.01.16
IBM в 23-й раз подряд получила в США больше патентов за год, чем все ее конкуренты. Такие подсчеты провела аналитическая компания IFI Claims Pa ...