Где найти книги или курсы по PHP, где даётся проектирование приложений с учётом ООП?

Давно использую PHP в работе, но никогда не писал самостоятельно что-то по-настоящему серьёзное. Знаю основы ООП, знаю концепции MVC, понимаю как работают популярные фреймворки типа Yii и Laravel и даже часто на них делаю какие-то проекты. Но вот если мне поставить задачу написать какой-нибудь парсер или систему анализа данных, я её напишу, но это будет куча говнокода, работающего, но абсолютно не расширяемого в дальнейшем. Потому что, как читать использовать ООП-код я знаю, а вот как проектировать и писать его - к сожалению, нет. Зачастую, если встречается какая-то задача, я пишу кучу функций в процедурном стиле, где много чего дублируется и...хорошо, что работает вообще.

Возможно, кто-нибудь встречал какие-то книги или курсы, где показывалась бы разница при решении задач между процедурным кодом и ООП? Хочется на конкретных примерах почуствовать, почему соорудить некий интерфейс и классы с методами будет проще и оптимальнее, чем в тысячный раз говнокодить? В сети много информации, разжёвывающих саму суть ООП с её инкапсуляциями и полиморфизмом, но вот конкретных примеров, почему писать, как я сейчас пишу, это малоэффективно, и что надо изменить в своей голове, чтобы перестать начинать решать задачу с написания очередной функции, - я практически не встречал. Возможно, встречали вы...
  • Вопрос задан
  • 1736 просмотров
Решения вопроса 2
glaphire
@glaphire Куратор тега PHP
PHP developer
Мне в свое время помогла проработка всех шаблонов проектирования из трех источников: "Head First Design Patterns"+refactoring.guru+designpatternsphp.readthedocs.io. Каждый шаблон разбирала и пыталась понять, почему здесь нужен паттерн, а не процедурный код, обернутый в один класс. Еще помогла книга по чистой архитектуре, но она зашла уже после паттернов. Просто важно полностью для себя понять, почему эти подходы до сих пор существуют и находить для себя два-три примера, потому что один-единственный пример для изучения может быть однобоким и даже неправильным.
Также эти книги и темы помогают вылечиться от трудностей решения задач на фреймворках, потому что наконец-то начинаешь видеть всю структуру и взаимодействия модулей и классов, а не просто примеры из документации натягиваешь на бизнес-требования)
Ответ написан
Adamos
@Adamos
Вам не нужно сравнение процедурщины с ООП, вам нужно нормальное понимание ООП.
Для этого, например, подойдут классические "Рефакторинг" Фаулера или "Совершенный код" Макконнелла.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Kirill-Gorelov
С ума с IT
Эх дружище, так я тебя понимаю......
Но сколько бы я сам книг не прочитал, курсов не пересмотрел, тут дело в одной штуке, опыт.
Который приходит только через боль, пот, мучения, стыд, страдания, несколько лет ужасного кода и потом будет приходить видение как сделать классно и правильно, потому что пока ты все это на себе испытаешь ты очень многому научишься.
Поэтому продолжай читать, писать, учиться и все придет само собой.
Ответ написан
Комментировать
DollyPapper
@DollyPapper
Их не нужно сравнивать. Эти подходы дополняют друг друга. Внутри методов класса ты как ни крути пишешь процедурный код.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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