Писать код уже умею, что дальше?
==================================

 Я умею писать код, я знаю все нюансы своего языка, но что делать дальше?  

  

Раньше я не понимал всех этих разговоров про архитектуру, но когда появился более менее большой проект, то резко стал понимать, что это действительно важно.  

  

Мне не сложно разобраться в каком-то фреймворке или технологии — у них у всех есть прекрасная документация, которая учит использованию этой штуковины, но не учит делать архитектурно верные проекты на её основе.  

  

В какую конкретно сторону мне смотреть, чтобы научиться писать не просто код, а грамотный код в правильно спроектированном проекте?  

  

Я слышал много крутых терминов, как `Dependency Injection`, `Domain Driven Design` и `Гексагональная архитектура`, но я не думаю, что это те вещи, с которых стоит начинать.  

  

В общем, меня интересуют две темы:  

1) Архитектура  

2) Чистый код 

 Роберт Мартин - Чистая архитектура(SOLID)  

Эрик Эванс - Предметно-ориентированное проектирование(DDD)  

  

Начинать определенно стоит с Чистой архитектуры, затем почитай где-нибудь про гексагональную архитектуру, затем почитай Эванса.  

Тема архитектуры построения отдельного приложения(которое может быть частью бОльшего приложения) действительно умещается в 2-3 книги и статьи с пояснениями.  

Затем, нужно изучить UML на базовом уровне, чтобы визуально проектировать архитектуру приложения.  

Затем бери draw.io и проектируй. Хочешь пет проджект, хочешь свой рабочий проект, затем предлагая изменения команде. 

 Дальше книги по чистому коду, шаблонам проектирования, парадигмам, архитектуре, полезным практикам и прочему. 

 Посмотри в сторону каких-то залайканных проектов, типа **awesome-** или смотри официальные стайлгайды