Обзор книги «99 Bottles of OOP»
«99 бутылок ооп» - вторая книга Сенди Метц, в соавторстве с Катриной Оуэн. Книга привлекла меня по нескольким причинам: во-первых, мне нравятся сами Сенди и Катрина и их деятельность, во-вторых интересная тема и нестандартное название. Сама по себе идея написать целую книгу, исходя из решения одной каты, да не какой-нибудь, а про 99 бутылок пива - это уже интересно.
Перед прочтением авторы предлагают потратить полчаса на решение задачи: вывести на экран текст песни «99 бутылок пива»
После этого можно читать: в начале книги разбираются несколько вариантов решений и оценка их качества с помощью метрик и здравого смысла. Когда лучшее решение выбрано, как и в жизни, появляются новые требования. Теперь приходится менять код для того, чтобы он стал открытым дDcля лёгкого внесения изменений. Для этого в последующих главах проводится пошаговый рефакторинг с подробными объяснениями.
«Сделайте так, чтобы внести изменения было просто (осторожно: это может быть сложно), потом внесите простые изменения.»
Make the change easy (warning: this may be hard), then make the easy change Кент Бек
Эта книга – альтернатива воркшопу, поэтому в процессе чтения рекомендуется воспроизводить весь рефакторинг по шагам и представлять, что вы на воркшопе :)
Авторы пишут, что книга может перевернуть представление о TDD: изменения вносятся совсем маленькими кусочками, за 1 раз редактируется одна строчка кода, после каждого шага прогоняют тесты и они должны оставаться зелёными.
Если у вас уже большой опыт программирования и раньше вы не использовали этот подход, то вам будет сложно принять его. Мне трудно применять все правила, особенно при работе над большими и далеко неидеальными проектами. Но присмотреться к подходу полезно: таким образом легче определить верные абстракции - решение приходит само после выполнения серии маленьких шагов. Потренироваться можно при решении кат.
По словам самих авторов, у книги 2 цели:
- предложить конкретные приёмы рефакторинга для постоянного использования
- влюбить вас в полиморфизм
Думаю, не стоит воспринимать “99 бутылок”, как поиск решения конкретной задачи. Скорее, это демонстрация техник рефакторинга и принципов ооп на этом примере.
Рефакторинг – моя любимая тема, поэтому книга мне понравилась, она помогла систематизировать знания, посмотреть на TDD под другим углом и начать больше применять этот подход.
Подкасты по книге: