Какие книги/видео/курсы для изучения продвинутого ООП вы бы посоветовали Ruby-программисту?
Я - рельсовик-джуниор. Недавно мои рабочие обязанности начали дрейфовать в сторону чистого руби, и передо мной встала в полный рост проблема говнокода, генерируемого мной в те моменты, когда я отдаляюсь от успокаивающих рельсовых шаблонов.
Я хорошо разбираюсь в базовом ООП, отличаю наследование от полиморфизма и даже знаю, что такое Eigenclass. Однако, когда разговор заходит о концепциях вроде dependency injection или inversion of control, или о паттернах программирования, я впадаю в ступор.
Сейчас я читаю "Practical Object-Oriented Design in Ruby". Товарищи, можете что-нибудь еще посоветовать на эту тему? Не обязательно на примере Ruby - я вполне нормально понимаю, например, Java/C#. Не обязательно на русском - английский я читаю. Но очень желательно, чтобы это было читаемым и с практическими примерами - а то после закрытия, скажем, Gang of Four у меня все знания улетучиваются минут через пять =-(
На всякий случай переформулирую. Базовое понимание ООП у меня есть, и святой триадой я пользуюсь регулярно. Мне нужны именно концепции уровня повыше - "предложения", складывающиеся из "слов" классов-объектов-интерфейсов-наследований-композиции.
Спасибо!
По ссылке - огромный список курсов, причем большинство из них - рельсовые, а меньшинство - ориентированные на новичков в Руби. Что конкретно вы советуете?
Однозначно лучшая книга для новичков в ООП, да ещё и на русском "Эрик Фримен, Элизабет Фримен - Паттерны проектирования". Во время чтения нужно сверяться с Рубишной реализацией описанных паттернов на Гитхабе.