afagorn
@afagorn
Пытаюсь стать хорошим веб-программистом

Что почитать про правильное проектирование своих приложений?

Привет. Появилась такая проблема, что нет понимания как правильно строить свои приложения. В данный момент я начал изучать Yii, все идёт хорошо, но не очень понятно как лучше и где применять инструменты фреймворка, как организовать в целом проект. Это касается не только фреймворка, но и программирования в целом, так как тоже непонятно какие именно использовать паттерны и шаблоны. И собственно вопрос, может есть какая-то книга или какой-то набор, который подскажет как именно все это организовать? Может нужно копать в сторону проектирование ПО? Или куда-то ещё искать? Может есть какие-то гайды? Буду благодарен за ваши ответы

UPD
Всем огромное спасибо за ответы и рекомендации!

Выжимка из ответов и комментариев:
  • Yii для обучения не очень(больше подходит для быстрого кодинга). Вместо рекомендуют Symfony
  • Смотреть и анализировать чужой код(думаю очевидно)
  • Елисеев Д. Неделя ООП Третий поток (видеокурс)
  • "Чистый код" Роберт Мартин
  • "Рефакторинг" Фаулер
  • "PHP. Объекты, шаблоны и методики программирования" - сам читаю и сам тоже советую
  • "Чистая архитектура" Роберт Мартин
  • "Паттерны проектирования"

Также в ответах есть еще интересные ссылки
  • Вопрос задан
  • 6959 просмотров
Решения вопроса 1
@Flying
Думаю что имеет смысл отметить что, безотносительно самого фреймворка как прикладного инструмента, Yii - не лучший кандидат для освоения правильного проектирования своих приложений...

В целом, если вы хотите получше разобраться в паттернах проектирования - можно брать любую хорошую книжку по этой теме (те же Gang of Four, Мартин Фаулер (на русском) и т.п., предложенная Ярослав ссылка тоже выглядит весьма достойно), изучать, а затем пытаться найти эти паттерны в коде популярных и хорошо написанных проектов.

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

Изучение реализации паттернов в рамках конкретных реализаций позволит вам с одной стороны лучше понять сами паттерны, а с другой - лучше разобраться с тем как изнутри работают довольно сложные проекты, это позволит использовать их самих и, что ещё важнее, заложенные их идеи в вашем собственном коде.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@DEugene
"Чистая архитектура" Роберта Мартина - маст хэв для понимания того как лучше подходить к вопросу разделения приложения на логические слои.
Ответ написан
Комментировать
myks92
@myks92
Нашёл решение — пометь вопрос ответом!
К дополнению выше.

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

Архитектура приложения. Как сделать независимые модули (сервисы)?
Ответ написан
Комментировать
customtema
@customtema
arint.ru
У Фаулера есть еще несколько книг, кроме перечисленных. В том числе "Архитектура корпоративных программных приложений"
Ответ написан
Комментировать
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
построй десяток-другой-третий лэндосов, кабинетов, онлайн-магазинов и прочих веб-приложений - соберешь массу контекстов относительно того что, как и зачем делается, там уже и понимание придет, какими инструментами и что и как лучше делать.
Ответ написан
Ваш ответ на вопрос

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

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