Нет ничего нового под Солнцем.
Книга Екклесиаста
Я не утверждаю, что вложил в книгу много нового, но считаю, что скомпоновал ее содержание не только интересно, но и эффективно. Многие правила были взяты из книги Роберта К. Мартина «Чистый код»1, но при этом изменены для простоты понимания и применения. Многие шаблоны рефакторинга позаимствованы из книги Мартина Фаулера «Рефакторинг»2, но адаптированы под использование компилятора вместо упора на сильные наборы тестов.
Аудитория и план изложения
Книга состоит из двух частей, сильно различающихся по стилю. Часть I закладывает прочный фундамент для выполнения рефакторинга и адресована каждому отдельно взятому разработчику. Не стремясь охватить вообще все стороны рефакторинга, я решил сделать упор на простоту изложения. Эта часть предназначена для тех, кому еще предстоит сформировать устойчивую основу для проведения рефакторинга, например для студентов, для начинающих программистов, в том числе самоучек. Если же, взглянув на исходный код в книге, вы решите, что улучшить его несложно, тогда часть I не для вас.
В части II фокус смещается на контекст применения рефакторинга и адресуется команде разработчиков. Здесь я выбрал наиболее ценные, на мой взгляд, уроки разработки программного обеспечения (ПО) в реальном, а не учебном мире. Некоторые темы состоят в основном из теории, например «Сотрудничайте с компилятором» и «Соблюдайте структуру в коде». Другие же в первую очередь практические, например «Страсть к удалению кода» и «Пусть плохой код выглядит плохо». Таким образом, часть II уже более универсальна, и даже опытные разработчики найдут здесь чему поучиться.
Поскольку во всех главах части I используется один общий пример, они тесно связаны между собой, и предполагается, что читать их будут в предложенной очередности. А вот часть II состоит уже из самостоятельных глав, связанных между собой только некоторыми ссылками из одной на другую. Если у вас нет времени на прочтение всей книги, можете просто выбрать наиболее интересные темы в части II и ознакомиться только с ними.
О преподавании
Я много размышлял о преподавании. Передача знаний и навыков несет в себе много сложностей. Учитель должен стимулировать у студентов интерес, уверенность и отдачу. Но по факту мозг учащегося склонен к сохранению энергии, поэтому постоянно стремится отвлечься от процесса обучения.
Чтобы побороть эту склонность ума, сначала нужно пробудить мотивацию. Для этого я обычно привожу простое с виду упражнение. Когда студенты понимают, что не могут его выполнить, их охватывает естественное любопытство. В этом и состоит цель кода из сквозного примера части I. «Оптимизировать базу кода» — это на первый взгляд так просто. Но при ближайшем рассмотрении код оказывается уже настолько качественным, что многие просто не знают, что еще можно в нем улучшить.
На втором этапе нужно подтолкнуть студентов к уверенному экспериментированию и применению новых знаний. Всю важность этого я осознал во время факультативов по французскому языку. Когда преподавательница хотела научить нас новой фразе, она всегда делала это в три этапа.
Пять строк кода. Роберт Мартин рекомендует
·
Клаусен Кристиан