Practical Object Oriented Design in Ruby: An Agile Primer
Sandi Metz
0
(0)
Это бета-версия LiveLib. Сейчас доступна часть функций, остальные из основной версии будут добавляться постепенно.
Sandi Metz
0
(0)

Название «Poodr» в этом случае хорошо отражает суть книги.
В ней мало «воды» и много полезной информации. Несмотря на небольшой объём, даются достаточно подробные объяснения, и язык несложный. Должна подойти и новичкам (не совсем зелёным), и опытным разработчкам.
В начале книги рассказывается о том, что такое дизайн и зачем он нужен, как принимать решения по дизайну в постоянно изменяющемся мире и не сойти с ума.
(Спойлер: нужно проектировать так, чтобы легче и дешевле было вносить изменения в приложение, а не так, чтобы было «кравиво» и «как в книжках пишут»; особенно полезно об этом задуматься, когда нужно принять решение: выбросить всё и переписать с нуля или работать с тем, что есть.)
В последующих главах рассматриваются разные принципы ООП, в качестве примеров кода используется приложение для фирмы, занимающейся организацией велопоходов, постоянно переживающее изменения, дополнения и рефакторинг.
Вот некоторые примеры тем из книги:
Также рассматриваются более общие вопросы: как подступиться к разработке приложения с нуля, применение UML-подобных диаграмм, TDD, общие советы по дизайну, например, когда стоит отложить решение и даже потерпеть дублирование кода.
Последняя глава посвящена тестированию. Подробно рассматривается, как тестировать разные варианты решений, описанные в предыдущих главах. Приведены примеры на minitest.
Для меня книга оказалась очень полезной — в повседневной жизни часто бывает так, что закапываешься в код, изучение принципов ооп и паттернов откладывается, происходит от случая к случаю. В итоге знания поверхностные — думаю, не у одной меня такая проблема.