11 лет помогаем находить
интересные книги
  • 15 000 000оценок книг
  • 940 000рецензий на книги
  • 58 000 000книг в коллекциях
Зарегистрируйтесь или войдите
Пароль будет создан автоматически и отправлен вам на почту, или ввести пароль самостоятельно

Sandi Metz «Practical Object Oriented Design in Ruby: An Agile Primer» — рецензия

Оценка lightalloy:  5  
Книга о дизайне в Ruby

Название «Poodr» в этом случае хорошо отражает суть книги.

В ней мало «воды» и много полезной информации. Несмотря на небольшой объём, даются достаточно подробные объяснения, и язык несложный. Должна подойти и новичкам (не совсем зелёным), и опытным разработчкам.

В начале книги рассказывается о том, что такое дизайн и зачем он нужен, как принимать решения по дизайну в постоянно изменяющемся мире и не сойти с ума.
(Спойлер: нужно проектировать так, чтобы легче и дешевле было вносить изменения в приложение, а не так, чтобы было «кравиво» и «как в книжках пишут»; особенно полезно об этом задуматься, когда нужно принять решение: выбросить всё и переписать с нуля или работать с тем, что есть.)

В последующих главах рассматриваются разные принципы ООП, в качестве примеров кода используется приложение для фирмы, занимающейся организацией велопоходов, постоянно переживающее изменения, дополнения и рефакторинг.
Вот некоторые примеры тем из книги:
- принцип единственной ответственности (Single Responsibility Principle)
- слабая связанность (Louse Coupling)
- изоляция зависимостей
- внедрение зависимости (Dependency Injection)
- утиная типизация (Duck Typing)
- закон Деметры (the Law of Demeter)
- разработка оптимальных интерфейсов, в т.ч. рассматривается то, как реализуются интерфейсы в других языках, что позволяет шире посмотреть на объектно-ориентированное программирование, не застревать в руби-мире (для таких, как я)
- наследование
- принцип подстановки Барбары Лисков (Liskov substitution principle)
- шаблонный метод (Template method pattern)
- композиция, агрегирование, выбор между композицией и наследованием

Также рассматриваются более общие вопросы: как подступиться к разработке приложения с нуля, применение UML-подобных диаграмм, TDD, общие советы по дизайну, например, когда стоит отложить решение и даже потерпеть дублирование кода.

Последняя глава посвящена тестированию. Подробно рассматривается, как тестировать разные варианты решений, описанные в предыдущих главах. Приведены примеры на minitest.

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

Рихард фон Крафт-Эбинг «Половая психопатия»
Половая психопатия (на самом деле, конечно, название звучит совсем иначе, в классическом для медицинских работ XIX в. духе: «Половая психопатия, с обращением…
Hermanarich
livelib.ru
Райан Гродин «Волк за волка»
Привезли в 1944 году девочку в концлагерь, ставили над ней опыты. Ну вы знаете этих нацистских учёных. Пик науки. За скольких супергероев они ответственны?..…
Hell-Puppy
livelib.ru
Элена Ферранте «Моя гениальная подруга»
В этой истории про двух девочек запрятана вся вселенная. Да в принципе, никуда она не запрятана, она выставлена на показ. Скромно и откровенно одновременно.…
zdalrovjezh
livelib.ru
Регистрация по электронной почте
Пароль будет создан автоматически и отправлен вам на почту, или ввести пароль самостоятельно
Регистрация через соц. сеть
После регистрации Вы сможете:
Стать книжным экспертом
Участвовать в обсуждении книг
Быть в курсе всех книжных событий и новинок