В этой статье быстро расскажу об отличной и очень известной книге «банды четырёх». Кому она будет полезна, а кому не очень и стоит ли читать её в целом, если вы веб-разработчик.
На самом деле, по большому счёту, это даже не книга. Это справочник самых известных паттернов объектного программирования. В книге перечислены 23 самых популярных паттерна. Глобально авторы делят их на три основные категории — порождающие, структурные и поведенческие.
Основной интерес в книге — узнать из каких кусочков состоит любая система. Сложность в том, чтобы повторить изложенную в книге информацию на практике. Многие паттерны невозможны или неэффективны в том виде, которые предлагают авторы. В основном, в силу того, что все паттерны сопровождаются реализацией на C++ и Smalltalk. Не самых популярных языков в моём сетке, мягко говоря.
Но информация изложенная в книге важна. Особенно, если вы пишите на Java и C-подобных языках. Менее интересно будет разработчикам на PHP/Python, а совсем неинтересно JavaScript/TypeScript стартаперам. В любом случае, применять все паттерны тут и там вы не начнёте, но однозначно сможете подчерпнуть для себя несколько интересных пассов.
Важно понимать, что не смотря на сложный язык, книга не является сложной сама по себе. Если вы работали с большим проектом или фреймворком, то многие реализации уже встречались вам на пути. Просто, вы не знали, как они работают и называются. И если по началу читать книгу сложно (особенно, если это первая техническая литература в жизни), то ближе к середине, вы уже чувствуете себе достаточно комфортно.
Очень рекомендую эту книгу, если вы только слышали о паттернах, но никогда не разбирались в них. Если вы бекенд или системный/мобильный разработчик. Фронтендерам интересен может быть лишь Посредник.
Но не стоит забывать о более современной и куда менее скучной «Head First. Паттерны проектирования».
Если же вы знаете, что такое паттерны и как они работают — не думаю, что книга будет вам полезна.
Вместе с книгой очень рекомендую сайт Refactoring.guru. Он поможет повторить заинтересовавший вас паттерн на вашем языке.