Здравствуйте, Изучаю С++ и столкнулся с ощущением что знания не складываются в цельную картину, знаю синтаксис С++, имею общее представление об ООП, знаю stl, понимаю что такое указатели, ссылки, и вот это все легко применяю на каких то не больших учебных программах, начал писать учебный проект, систему управления персоналом (консольная), сотрудники, отдел, должность
программу разбил на классы, меню, должность, сотрудники, отдел, должность, и вот тут у меня путанница
как все это грамотно связать то есть объекты между собой(сотрудник отдел должность)
что лучше использовать стуктуру или класс
данные и логика в одном классе должны храниться или в разных
как сделать что бы программу легко было масштабировать
как правильно структурировать код? какую литературу изучать для понимания? у меня каша в голове, я просто не знаю что дальше делать, точнее с чего начать
буду благодарен за советы
Говнокод начального этапа позволит вам погрузиться в проблемную область и узнать, к чему приводят высокая связность и прямолинейность решений, неизбежные для говнокода.
Только набравшись такого негативного опыта, стоит изучать паттерны, решающие проблемы взаимодействия классов, и принципы типа DRY, KISS, SOLID, решающие проблемы роста самих классов. По уже знакомой проблематике, а не по теоретическим (ложным) о ней представлениям.
Так что не надо бояться говнокодить. Надо бояться - колебаться и ничего не делать.
поддержу комментатора
язык тут вообще не причём, это проблема любого языка.
нужно изучать паттерны, проектирование, архитектуры, взаимодействие.
без всех этих знаний, языки программирования ничего не стоят.
Ответ на все эти "как" придёт к вам с опытом по мере реализации различных проектов. Начать лучше с чего-то типа такого: https://roadmap.sh/cpp и по шагам на практике изучать всё необходимое. Главное — постоянная практика по решению реальных задач.
VoidVolker, в идеале мне qt нужен в первую очередь, векторный графический редактор хотелось бы сделать, которая рутину у проектировщиков будет выполнять, но и С++ мне нужен, я инженер конструктор, на С++ есть возможность писать скрипты для программы в которой работаю, creo parametric, буду стараться все это осваивать
Jora_jora, рутину может взять на себя скорее не свой графический редактор, который будет куцым, если получится вообще, а генератор заготовок в открытом формате, которые уже можно будет открыть в нормальном инструменте и пользоваться.