Задать вопрос
Taras_Serevann
@Taras_Serevann
веб-разработчик, автор

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

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

Может быть мне нужно прочитать какую-то книгу, которая проведет нужные изменения в мозгу, или посмотреть примеры кода на гитхабе?
  • Вопрос задан
  • 645 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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 не могу таких посоветовать, не в теме. Еще лучше - поработать над большим проектом. Видите ли, многие практики разработки ПО имеют смысл только в проектах больше некоторого критического размера, и в командах с достаточно большим числом человек.
Почитать можете Банду Четырех, но не удивляйтесь, если изложенное там покажется вам излишеством.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы