Рефакторинг: мы им занимаемся, сами того не подозревая
Наши партнёры Наши проекты: 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

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

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

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

28.06.16
Бум на облачные сервисы, который так давно предрекали визионеры и футурологи мира информационных технологий, наконец-то наступил: по итогам 2 ...
21.06.16
Системные интеграторы, внедряющие BI-проекты, постепенно расширяют список BI-вендоров. Появлению в этом списке российских разработчиков ...
26.05.16
У меня действительно сильная команда, состоящая из пяти советников и пяти юристов – все они блестящие специалисты. Чем интересен консал ...
26.05.16
Рынок меняется в соответствии с новыми требованиями. Многим компаниям необходимо получать не столько Business Intelligence, сколь ...

Реклама

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

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

"Только для звездного персонала""Только для звездного персонала"
01.07.16
IT-ДиалогIT-Диалог
28.06.16
Слет Axoft 2016: Легенда Камелота  Слет Axoft 2016: Легенда Камелота
24.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 ...