Объектно-Ориентированное Программирование Книги


Разработка → Бертран Мейер
Апрель 9, 2016 – 14:34
Вид сверху
DISCLAIMER: более навороченной книги по ООП в природе нет и в ближайшее время, скорее всего, не будет; эта книга заслуженно считается классической книгой по объектной технологии и не зря является первой в списке рекомендуемых книг по этой теме (причем она первая не только в моем списке).

Основная сложность при изучении объектно-ориентированного программирования (или любой другой парадигмы программирования) заключается в том, что весьма сложно подобрать формальные критерии, которые бы сказали: «ок, теперь я знаю ООП и стану писать более клевые (читай модульные, реюзабельные и легкие в сопровождении) программы». Например, при изучении языков программирования мы относительно быстро замечаем, опа, level-up, я, кажись, перешел на новый уровень понимания идиом и конструкций языка программирования и могу использовать его более интересным образом, да еще и другим рассказывать, где они не правы.

Когда же речь касается изучения ООП, то здесь проявляется проблема, которую Мейер называет mOOzak effect или buzzword effect. Сводится она к следующему: человек знакомится с некоторым понятием или термином и начинает интенсивно использовать его в повседневной (рабочей) жизни, не придавая значения тому, что сам он его до конца не понимает. Если прислушаться к обсуждениям в коллективе (или на форумах), то можно заметить употребление множества «страшных слов», типа инвариант, инкапсуляция, полиморфизм, ковариантность, контрактное программирование и многие другие, при этом очень часто они могут употребляться без полного понимания того, что же они означают.

Многие знания по ООП мы впитываем через призму изучаемых объектно-ориентированных языков программирования, через неформальные беседы с коллегами, через некоторые идиомы и принципы проектирования или заметки в Вики. Это дает нам понимание основных концепций, поэтому для многих мысль «а не потратить ли мне годик на изучение ООП с помощью фолианта в 1.2К страниц» кажется весьма сомнительной.

Однако зря.

В последнее время появилась тенденция описывать все, что происходит в нашей с вами компьютерной жизни разными метафорами, идиомами и паттернами. Сейчас, если вы не знаете все GoF-овские паттерны, не знакомы с принципами S.O.L.I.D., и не осилили архитектурные паттерны, то вы УГ, которому за проектирование не стоит даже браться. Нисколько не умаляя заслуги всего перечисленного, я отношусь ко всему этому со здоровым прагматизмом. Во-первых, запоминание всех этих принципов и паттернов слишком утомительно, во-вторых, значительно проще получить определенные базовые знания, из которых вытекает многое другое, нежели тренировать память и из года в год стараться запомнить всякие новомодные словечки.

Source: habrahabr.ru
Похожие публикации