@RomanYakimchuk

Какие есть рецепты по использованию паттернов?

Всем привет,

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

Мне этот подход очень не нравится, и я вижу в паттернах решение задач, и что самое главное, они позволяют отложить решение задачи на самый конец, т.е. можно создать систему, а потом в неё интегрировать нужное решение.

На деле немного другое получается. Если стараться проектировать систему на уровне паттернов, получается хорошее решение (т.е. можно безболезненно изменять систему, развивать, поддерживать, и так далее), но на выходе получается решение, которое далеко от принципа KISS, т.е. вместо простого решения получается гибкий монстр, который говорит тебе "я гибкий, я хороший", но от количества сущностей система становится сложной и запутанной.

Я почитал что пишут люди, но мнения разные, от "не используйте паттерны, будет хуже" до "используйте их всегда", и есть кто посередине, "пишите сначала без паттернов, а потом упрощайте систему их внедрением".

Поэтому, какие ваши рецепты по использованию паттернов, когда вы их используете и почему?
  • Вопрос задан
  • 324 просмотра
Решения вопроса 1
Adamos
@Adamos
Такой рецепт: используйте паттерны, когда вам кажется, что вы можете их использовать, и не бойтесь выкинуть неудачный код только потому, что там красиво использованы паттерны.
Постепенно придете к пониманию, когда их нужно применять и как.
Просто по книжкам этого понимания не получишь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
Я давно занимаюсь разработкой ПО

Судя по фразе
и я вижу в паттернах решение задач
нет. Вы еще не переболели болезнью джуна, прочитавщего книгу с паттернами

Правильный подход
все работают по принципу прибить гвоздями, а потом когда нужен будет развивать систему, что-нибудь придумаем.


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

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

Пишите код, который решает задачи. По возможности, масштабиремый, слабосвязный и тп.
Главная забота - решение поставленной задачи

А про паттерны можно поговорить на конференция
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы