- PVSM.RU - https://www.pvsm.ru -

Зачем нужны паттерны ООП?

Эта статья — попытка ответить на вопрос 11-летнего олимпиадника: «Зачем нужны паттерны?» Ещё не отправил, выношу на общий суд и прошу любой критики. Цель — не дать исчерпывающий ответ, а вызвать новые вопросы.

Итак

Как учат программированию в школе? Вам дают формочки и учат делать куличики из песка. Это хорошо, надо ведь с чего-то начинать.

Но ты хочешь заняться более серьёзным делом. Например, построить дом. Из чего? Вас учили только из песка. Вам ничего не рассказывали о кирпичах — это не дело школы. (Скажу по секрету: они это не умеют.)

Хочешь строить дом? Подожди, давай научимся обжигать кирпичи. Или пойдём купим на рынке. Кирпичи — это и есть паттерны.

Зачем нужны паттерны ООП?

Почему это важно? Просто многие мои друзья (именно из разряда «олимпиадников») жестоко разочаровались в программировании, потому что они хотели строить зáмки из песка. Внешне это было классно! Например, мой друг написал сложнейшую логическую игру, но «на коленке», на анти-паттернах, как нас учили в школе…

«Анти-паттерн» — это то, как не надо проектировать программы.

А ещё мы с ним делали машинки на электромоторах. Мои машины всегда ездили быстрее, но я их делал «на коленке», из подручных материалов с изолентой. А он всегда пытался применять какие-то методы проектирования, стандартизировал «производственные процессы»… Его машины были медленнее. Но догадайся: кто из нас теперь стал конструктором (проектирует коробки передач)?

Вот что я наблюдаю: если ты сейчас научишься строить домá из песка (красивые!), машины на скотче (быстрые!), то потом переучиться практически невозможно. Мотивации не будет.

Вывод: если хочешь стать профессионалом, лучше начать строить домик из двух кирпичей, чем большущий зáмок из песка. Хотя замок проще.

Зачем нужны паттерны ООП?

Когда ты начнёшь потихоньку применять методики ООП в своих проектах (даже в самых простых), ты сразу увидишь, что паттерны не дают наступать на одни и те же грабли. Потом увидишь, как они упрощают взаимодействие между разработчиками. И вообще облегчают жизнь.

Применение паттернов — это те знания, которые приходят только с опытом. Если ты уже начнёшь пытаться их применять, то сэкономишь несколько лет.

P.S. Хабру:

Вопрос «Зачем нужны паттерны… 11-летнему?!» предлагаю не обсуждать. Мне бы лет 15 назад рассказали хоть что-нибудь из проектирования! (При всём моём уважении к подходу «пусть набьёт шишки, а потом мы ему скажем, что есть паттерны»...)

Кстати, тенденция «ООП с пелёнок» не нова [1].

Обсуждения по теме

Для чего нужны шаблоны проектирования [2]
Паттерны ООП в метафорах [3]
Как два программиста хлеб пекли [4]

Автор: x256

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/27975

Ссылки в тексте:

[1] не нова: http://msdn.microsoft.com/ru-ru/beginner/ee344863.aspx

[2] Для чего нужны шаблоны проектирования: http://habrahabr.ru/post/170125/

[3] Паттерны ООП в метафорах: http://habrahabr.ru/post/136766/

[4] Как два программиста хлеб пекли: http://habrahabr.ru/post/153225/

[5] Источник: http://habrahabr.ru/post/170597/