Taras_Serevann
@Taras_Serevann
веб-разработчик, автор

Как использовать шаблоны проектирования на практике?

Имеются теоретические знания по всем популярным шаблонам проектирования в PHP и JavaScript, в чем их отличие и как с ними работать, но... я не понимаю, как их применять на практике, какие у них преимущества по сравнению с обычным кодом и зачем они вообще нужны в работе, ведь всё хорошо и без них? В общем, вроде бы хорошо, но чувствую, что чего-то не хватает...

Может быть мне нужно прочитать какую-то книгу, которая проведет нужные изменения в мозгу, или посмотреть примеры кода на гитхабе?
  • Вопрос задан
  • 644 просмотра
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
зачем они вообще нужны в работе, ведь всё хорошо и без них?


Видите ли, паттерны это не что-то такое, что "применяют намерянно", они просто появляются. Им просто дали названия и все. Это "словарь", что бы быстро сказать другому разработчику мол "мы тут медиатор впихнем, а сверху вот этой фигни фасадом закроем". И всем сразу все понятно.

Словом, если вы разберетесь с принципами SOLID и GRASP, а так же в принципе с ООП (сокрытие состояния, обмен сообщениями между объектами разных типов), то паттерны будут появляться сами по себе.

Еще хорошо себя показывает TDD в вопросах "как узнать как лучше делать". В виде теста описываем что должен делать объект, или как они взаимодействуют, потом делаем. Если неудобно в тестах или они становятся слишком завязаны на реализацию (опять же неудобно поддерживать) - то значит что-то пошло не так и надо рефакторить. А при наличии тестов это делать очень легко и просто.
Ответ написан
RussellKvashnin
@RussellKvashnin
WEB-developer
Почитать хорошо бы вот такое - www.ozon.ru/context/detail/id/33506422
Посмотреть примеры кода - наверное лучше будет на примере популярного фреймворка.
Понять как он устроен, где какие паттерны применены и какие проблемы они решают.
Я бы советовал Symfony - https://github.com/symfony/symfony
Ответ написан
@Barmunk
Само придет. В один прекрасный момент подумаешь, а не плохо бы сюда засунуть фабрику классов вместо тысячи if. Или а вот тут бы можно впихнуть синглтон для класса бд, вместо постоянного создания объектов
Ответ написан
Комментировать
В общем, вроде бы хорошо, но чувствую, что чего-то не хватает...

Так все хорошо или все же чего-то не хватает?

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

Примеры кода можно посмотреть, главное найти достаточно большой проект с высоким качеством кода. По PHP и JS не могу таких посоветовать, не в теме. Еще лучше - поработать над большим проектом. Видите ли, многие практики разработки ПО имеют смысл только в проектах больше некоторого критического размера, и в командах с достаточно большим числом человек.
Почитать можете Банду Четырех, но не удивляйтесь, если изложенное там покажется вам излишеством.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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