Рефакторинг уже давно и прочно занимает свое достойное место среди технологий программирования, и не в последнюю очередь благодаря книге Мартина Фаулера — одной из тех книг, которые написаны "на все времена" и которые, как хорошее вино, со временем становятся только ценнее.Сам принцип рефакторинга прост: это последовательность небольших шагов, таких как перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и его превращение в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый такой шаг выглядит настолько просто и естественно, что кажется удивительным - о чем здесь можно писать? Однако кумулятивный эффект от таких малых изменений состоит в существенном улучшении проекта существующего кода.Мартин Фаулер и другие высококлассные специалисты в области объектно-ориентированного программирования, принявшие участие в написании этой книги, изложили принципы и наиболее эффективные методики выполнения различных рефакторингов и показали, когда и как следует тщательно изучать код с целью его улучшения. В книге подробно описано более 70 методов рефакторинга, причем приведено не только их теоретическое описание, но и практические примеры на языке программирования Java.Данная классическая книга достойна того, чтобы занять свое место на книжной полке каждого серьезного программиста - вне зависимости от используемого языка программирования.По мере распространения объектных технологий - в особенности с использованием языка программирования Java - для сообщества разработчиков программного обеспечения становилась все более и более актуальной новая проблема.Недостаточно опытные разработчики создали множество плохо спроектированных программ, оказавшихся в результате малопроизводительными приложениями, которые трудно поддерживать и расширять. Все чаще разработчики программного обеспечения сталкиваются с тем, насколько сложно работать с такими доставшимися им в наследство приложениями. В течение нескольких лет объектные программисты-эксперты использовали постоянно растущую коллекцию методов повышения структурной целостности и эффективности таких существующих программ. Известные как "рефакторинг", эти практики так и оставались достоянием экспертов, потому что не предпринималось никаких попыток донести эти знания до широких масс разработчиков в доступной форме.В данной книге известный эксперт в области объектных технологий Мартин Фаулер открывает перед сообществом разработчиков новые горизонты, рассказывая о практиках, применяемых экспертами, и демонстрируя, какие значительные преимущества от их применения может получить любой разработчик. При надлежащей подготовке квалифицированный проектировщик систем может взять плохо спроектированную программу и превратить ее в хорошо продуманный, надежный код. В книге Мартин Фаулер показывает читателям, где обычно можно найти возможности для оптимизации и как превратить плохой проект в хороший. Каждый шаг рефакторинга прост - даже, казалось бы, слишком прост, чтобы его стоило выполнять. Оптимизация может включать перемещение поля из одного класса в другой или извлечение некоторого кода из метода с тем, чтобы превратить его в отдельный метод, или даже перенос некоторого кода вверх или вниз по иерархии классов. Хотя эти отдельные шаги могут показаться элементарными, кумулятивный эффект таких небольших изменений может радикально улучшить проект программы. Рефакторинг кода - проверенный способ предотвращения распада программного обеспечения.Помимо описания различных методов рефакторинга, автор приводит подробный каталог более чем с семьюдесятью рефакторингами и полезными указаниями, которые научат вас, когда их следует применять. Книга содержит подробное описание свыше 70 методов рефакторинга, причем не только теоретическое их описание, но и практические примеры на языке программирования Java. Следует учесть, что изложенные в книге идеи применимы к любому объектно-ориентированному языку программирования.
Refaktoring uzhe davno i prochno zanimaet svoe dostojnoe mesto sredi tekhnologij programmirovanija, i ne v poslednjuju ochered blagodarja knige Martina Faulera — odnoj iz tekh knig, kotorye napisany "na vse vremena" i kotorye, kak khoroshee vino, so vremenem stanovjatsja tolko tsennee.Sam printsip refaktoringa prost: eto posledovatelnost nebolshikh shagov, takikh kak peremeschenie polja iz odnogo klassa v drugoj, vynesenie fragmenta koda iz metoda i ego prevraschenie v samostojatelnyj metod ili dazhe peremeschenie koda po ierarkhii klassov. Kazhdyj takoj shag vygljadit nastolko prosto i estestvenno, chto kazhetsja udivitelnym - o chem zdes mozhno pisat? Odnako kumuljativnyj effekt ot takikh malykh izmenenij sostoit v suschestvennom uluchshenii proekta suschestvujuschego koda.Martin Fauler i drugie vysokoklassnye spetsialisty v oblasti obektno-orientirovannogo programmirovanija, prinjavshie uchastie v napisanii etoj knigi, izlozhili printsipy i naibolee effektivnye metodiki vypolnenija razlichnykh refaktoringov i pokazali, kogda i kak sleduet tschatelno izuchat kod s tselju ego uluchshenija. V knige podrobno opisano bolee 70 metodov refaktoringa, prichem privedeno ne tolko ikh teoreticheskoe opisanie, no i prakticheskie primery na jazyke programmirovanija Java.Dannaja klassicheskaja kniga dostojna togo, chtoby zanjat svoe mesto na knizhnoj polke kazhdogo sereznogo programmista - vne zavisimosti ot ispolzuemogo jazyka programmirovanija.Po mere rasprostranenija obektnykh tekhnologij - v osobennosti s ispolzovaniem jazyka programmirovanija Java - dlja soobschestva razrabotchikov programmnogo obespechenija stanovilas vse bolee i bolee aktualnoj novaja problema.Nedostatochno opytnye razrabotchiki sozdali mnozhestvo plokho sproektirovannykh programm, okazavshikhsja v rezultate maloproizvoditelnymi prilozhenijami, kotorye trudno podderzhivat i rasshirjat. Vse chasche razrabotchiki programmnogo obespechenija stalkivajutsja s tem, naskolko slozhno rabotat s takimi dostavshimisja im v nasledstvo prilozhenijami. V techenie neskolkikh let obektnye programmisty-eksperty ispolzovali postojanno rastuschuju kollektsiju metodov povyshenija strukturnoj tselostnosti i effektivnosti takikh suschestvujuschikh programm. Izvestnye kak "refaktoring", eti praktiki tak i ostavalis dostojaniem ekspertov, potomu chto ne predprinimalos nikakikh popytok donesti eti znanija do shirokikh mass razrabotchikov v dostupnoj forme.V dannoj knige izvestnyj ekspert v oblasti obektnykh tekhnologij Martin Fauler otkryvaet pered soobschestvom razrabotchikov novye gorizonty, rasskazyvaja o praktikakh, primenjaemykh ekspertami, i demonstriruja, kakie znachitelnye preimuschestva ot ikh primenenija mozhet poluchit ljuboj razrabotchik. Pri nadlezhaschej podgotovke kvalifitsirovannyj proektirovschik sistem mozhet vzjat plokho sproektirovannuju programmu i prevratit ee v khorosho produmannyj, nadezhnyj kod. V knige Martin Fauler pokazyvaet chitateljam, gde obychno mozhno najti vozmozhnosti dlja optimizatsii i kak prevratit plokhoj proekt v khoroshij. Kazhdyj shag refaktoringa prost - dazhe, kazalos by, slishkom prost, chtoby ego stoilo vypolnjat. Optimizatsija mozhet vkljuchat peremeschenie polja iz odnogo klassa v drugoj ili izvlechenie nekotorogo koda iz metoda s tem, chtoby prevratit ego v otdelnyj metod, ili dazhe perenos nekotorogo koda vverkh ili vniz po ierarkhii klassov. Khotja eti otdelnye shagi mogut pokazatsja elementarnymi, kumuljativnyj effekt takikh nebolshikh izmenenij mozhet radikalno uluchshit proekt programmy. Refaktoring koda - proverennyj sposob predotvraschenija raspada programmnogo obespechenija.Pomimo opisanija razlichnykh metodov refaktoringa, avtor privodit podrobnyj katalog bolee chem s semjudesjatju refaktoringami i poleznymi ukazanijami, kotorye nauchat vas, kogda ikh sleduet primenjat. Kniga soderzhit podrobnoe opisanie svyshe 70 metodov refaktoringa, prichem ne tolko teoreticheskoe ikh opisanie, no i prakticheskie primery na jazyke programmirovanija Java. Sleduet uchest, chto izlozhennye v knige idei primenimy k ljubomu obektno-orientirovannomu jazyku programmirovanija.