Материалы по паттернам ООП с наклоном в веб-проектирование?
Желательно, чтобы материал отсылался к серверным языкам, а именно к PHP. Ранее я и сам пытался продумать веб-приложение, следуя каким-то "своим" паттернам, но все это было методом тыка: логика программы страдала, некоторые классы просто дублировали методы других, а об абтрактном представлении классов совсем молчу. Конечно можно и и про другие языки, ведь мне сейчас главное просто ухватить саму суть проектирования и разработки приложения. Но хотелось бы с уклоном к веб-проектированию.
что бы писать на ООП и паттерны всякие - необходимо научиться мыслить объектами и написать/взят готовый ORM
без ORM вся объектно-ориентированность будет как мертвому припарка
Виктор Ablebeam: За идею написать фреймворк я могу положительно высказаться, но брать "популярный фреймворк" я не считаю нужном на первых парах изучения ООП.
Дмитрий Трапов: если б взяли, то быстро б перестали велосипедить. Да, такое начало сказалось бы - и, возможно, вам бы казалось, что тот подход, который используется в первом-вашем-в-жизни-фреймворке - единственно-верный. Но это лечится вторым фреймворком с кардинально иной философией
Виктор Ablebeam: Нет, вы не подумайте ничего дурного. Я пользовался фреймворками, да и всеми руками за их использование. Но я очень сильно запутывался в их функционале, и зачастую просто не понимал зачем мне все эти заранее описанные классы с их методами. Я говорю о том, что сперва стоит осознать саму суть проектирования, да и попробовать самому описать легкую систему. А потом уже переходить к "мощнейшим" инструментам.
Дмитрий Трапов: вот именно "странные требования фреймворков" и помогают вначале осознать объем всех этих штук.
Например, что запрос поступает через миддлвер в диспатчер, дальше на роутер, потом в контроллер и дальше вью-модел и т.д. и т.п. Если будете делать сами облегченный вариант фреймворка для проекта в вакууме - просто о факте наличия диспатчера вообще врядли особо будете задумываться. И у вас могут появиться вопросы, "а не перенести ли роутинг на nginx?"