Рефакторинг уже давно и прочно занимает достойное место среди технологий программирования, и не в последнюю очередь благодаря Мартину Фаулеру - автору одной из тех книг, которые написаны "на все времена".Сам принцип рефакторинга прост: это последовательность небольших шагов, таких как перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и его превращение в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый такой шаг выглядит настолько просто и естественно, что кажется удивительным - о чем здесь можно писать? Однако кумулятивный эффект от таких малых изменений состоит в существенном улучшении архитектуры существующего кода.Мартин Фаулер и другие высококлассные специалисты в области объектно-ориентированного программирования, принявшие участие в написании этой книги, изложили принципы и наиболее эффективные методики выполнения различных рефакторингов и показали, когда и как следует изучать код с целью его улучшения. В книге подробно описано более 60 методов рефакторинга, причем с практическими примерами на языке программирования JavaScript. Применение JavaScript и описание "рефакторинга без классов" является одним из отличий нового издания книги от старого.Если первое издание книги можно было сравнить с хорошим вином, которое со временем становится только ценнее, то второе издание можно сравнить с шампанским - идеи в книге опьяняют, а их изложение искрится и играет…Это издание классической книги достойно того, чтобы занять свое место на книжной полке каждого серьезного программиста - вне зависимости от используемого языка программирования.Более двадцати лет опытные программисты во всем мире использовали книгу Мартина Фаулера Рефакторинг, когда им нужно было улучшить проект существующего кода, повысить удобство сопровождения программного обеспечения или облегчить понимание существующего кода.Это - такое долгожданное - новое издание было полностью обновлено, чтобы отразить важные изменения в области программирования. Второе издание книги содержит обновленный каталог рефакторингов и включает примеры кода на JavaScript, а также новые функциональные примеры, демонстрирующие рефакторинг без классов.Как и в первом издании, здесь объясняется, что такое рефакторинг, почему вы должны прибегать к рефакторингу, как распознать код, который нуждается в рефакторинге, и как успешно его провести независимо от того, какой язык программирования вы используете.Основные темы книги" Понимание процесса и общих принципов рефакторинга" Быстрое применение полезных рефакторингов для облегчения понимания и изменения программ" Распознавание запаха в коде, который сигнализирует о возможном применении рефакторинга" Каталог рефакторингов с объяснениями, мотивацией, техникой применения и простыми примерами" Создание надежных тестов для рефакторингов" Компромиссы и препятствия на пути рефакторингаОб автореМартин Фаулер - главный научный сотрудник компании ThoughtWorks. Он называет себя "автором, докладчиком, консультантом и просто человеком, болтающим о разработке программного обеспечения". Фаулер занимается разработкой программного обеспечения для предприятий, изучая, что делает проект хорошим, и какие методы необходимо применять для его создания.