концепції / design-patterns
Патерни проєктування
Позиція каналу щодо патернів свідомо дефляційна: це не сакральне знання, а просто найпоширеніші рішення, які хтось класифікував і назвав. Доказ Віктора з власної карʼєри: у Mail.ua його команда самостійно реалізувала 8 із 24 патернів GoF ще до того, як він прочитав книжку (книжки на пʼять зірок), — якщо достатньо довго розвʼязуєш реальні задачі, ти їх перевинаходиш. Справжня цінність каталогу, стверджує він, — спільний словник: сказавши іншому розробнику «фасад», «стратегія» чи «адаптер», ти передаєш цілий дизайн одним словом.
Наслідок — розвинутий у 3 речах, що псують програміста та у Q&A — у тому, що ставитися до патернів (GoF чи Фаулера) як до євангелія — це догматизм: патерн — це назва для того, що спрацювало, і суть у проблемі, яку він розвʼязує, а не в церемонії. У книжкових рекомендаціях він навіть ставить фаулерівську Patterns of Enterprise Application Architecture вище за Design Patterns (GoF): на ~70% її патернів ти спираєшся, ніколи не реалізовуючи їх власноруч (книжки на пʼять зірок, 3 книжки про проєктування ПЗ).
Розібрано у відео
- Книги, які я прочитав і поставив п'ять зірок
історія перевинайдення у Mail.ua, патерни як спільний словник, PoEAA понад GoF
Повʼязане
Проєктування програмного забезпечення — патерни як один із входів у проєктування, але ніколи не заміна розумінню Абстракції — патерн — це заздалегідь названа абстракція Глибоке вивчення фундаментальних речей — зрозумій причини за практикою, перш ніж їй слідувати (чи її порушувати) Design Patterns (GoF), Patterns of Enterprise Application Architecture — два обговорювані каталоги