Как должна выглядеть хорошая архитектура приложения на C++?
Изучил GOF и GRASP паттерны, хорошо помню каждый из них и смогу без проблем сделать пример кода с одним из паттернов без подсказок.
Но когда дело доходит до реальных проектов, максимум что вспоминается - паттерн одиночка(который, к слову, я так понимаю использую очень часто, и зря, а все потому что не понимаю как сделать иначе лучше).
Спустя несколько тысяч строк кода начинаю понимать, что допускаю много ошибок в архитектуре программы и можно было сделать лучше, даже используя те же паттерны проектирования.
Где то не понимаю, стоит ли создавать класс Application, который будет хранить объекты классов Gui, Network, или лучше Gui и Network сделать одиночками.
Я понимаю, что все должно приходить с опытом, но спустя месяца я понимаю, что я как не понимал как это делать правильно - так и не понял.
Есть какие нибудь хорошие книги, которые помогут лучше понять архитектуру программ?
Или примеры проектов с открытым исходным кодом с грамотной архитектурой, что бы понимать как должна выглядеть хорошая архитектура приложения?
Ответы (1 шт):
По архитектуре и культуре программирования именно на C++ книг довольно много, например:
Джефф Элджер - "C++" - выделяется тем, что учит не сколько языку, сколько культуре программирования на нем.
Ален И. Голуб - "ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ,ЧТОБЫ ВЫСТРЕЛИТЬ СЕБЕ В НОГУ Правила программирования на С и С++"
Обе книги выделяются тем, что сейчас модно называть "токсичностью". Однако стоит понимать, что разработка - это не посиделки со смуззи в баре, а серьезная работа, а ваша ошибка может убить кого-то.
Также замечу, что некоторые советы по оптимизации программ, приведенные в этих книгах, более не актуальны, либо, подлежат обсуждению. Процессоры и компиляторы сильно поумнели.
Рекомендую большой список литературы от сообщества