/ books

99 Bottles of OOP

Если вы уже читали книги Сэнди, можете представить язык, которым написана эта книга: много воды, много аналогий из реального мира. Если не читали ни одной, следующие абзацы для вас.

Книги про программирование

Помните, в начале 2000х годов начали появляться переводы книг про программирование, тогда было 2 типа книг:

  • программирование с примерами из математики (Шмидт)
  • программирование с примерами из реального мира (ООП на примере единорога)

Первые были более “хардкорные” и ориентированные на людей, которые хорошо знали математику, потому что если тебе не близки термины и аналогии из математики, будет тяжело понять идеи, заложенные в книге.
Вторые - попроще и с примерами из “жизни”, но в них чрезмерно всё упрощено, поэтому они ощущаются, как книги для “неумных” людей.

99 Bottles of OOP

Идея книги проста, за что она мне и нравится: есть популярная американская песня “99 бутылок”, которую обычно поют, чтобы скоротать время в дороге. Нужно написать программу, которая выведет полностью текст песни. Для того, чтобы понять, что песня правильная, есть тесты (которые нужно будет написать). И вот на основе этой песни Сэнди показывает, как программисты в “реально мире” декомпозируют задачу и программируют. Математики и математических терминов в книги нет. Зато есть обильное разжевывание и “вода”, которые раздражают в процессе чтения.

Что хорошего в этой книге: классно показано, как разбирать задачи на подзадачи, как делать рефакторинг, на каком моменте можно было бы остановиться и отправить код в продакшн. С интересной точки зрения Сэнди рассказывает про SOLID принципы (не про все).

“The official definition of Liskov says that "subtypes must be substitutable for their supertypes." This principle was originally postulated in terms of types and subtypes, but you can think of it in terms of classes and subclasses.
Liskov, in plain terms, requires that objects be what they promise they are.”

Хорошо описана важность правильного именования классов/методов с примерами хорошего/плохого наименования. Никогда бы не подумал, что название метода может быть следствием плохого понимания задачи.

Что не понравилось: обилие воды, которым знаменита Сэнди, чрезмерное разжевывание каждого шага. Видимо, это расчет на определенную аудиторию молодых программистов.

Для кого книга?

Книга будет скучна для опытного программиста, но для новичка/мидла - обязательна к прочтению.

7 / 10. 99 Bottles of OOP

Mac Shifford

Mac Shifford

hEl|0 W0r1d exP3r7. Code artisan. Current: Ruby, Elixir, Swift, JS. Next: Clojure, Haskell. Main gopher - gophers.by Co-founder - minsk.rb

Read More