C/C++

Как можно научится не писать говнокод на C++?

Я новичок, можете посоветовать материал для изучения данной темы?
не могу потому что общался с коллегами-профи и стажировался и только так научился.
такой это язык, 90% всего что есть - это шлак от любителей, который послушаешь, никто и не работает по этому языку.

могу лишь перечислить основные моменты

- C++ имеет режим "почти нормальный современный язык", однако имеет много архаичных рудиментов, то есть является помойкой и далеко не все что ты изучил надо продолжать использовать. скорее наоборот - изучив что-то, надо искать способ сделать лучше и проще.

- С++ поддерживает всю библиотеку Си, но ее не нужно применять без необходимости, также как и функционал платформ типа WinAPI, потому что они слишком низкоуровневы. строка - это std::string или QString, а не char[], WCHAR[] и т. п.

- ручное выделение памяти (malloc, new...) которые у многих копролюбителей ассоциируются с С++ -на самом деле являются атрибутикой чистого Си и в C++ надо их избегать.
неправильно:
Class* obj = new Class(1, 2, 3);
obj->method();
правильно:
Class obj(1, 2, 3);
obj.method();

- указатели тоже. надо избегать и стараться использовать ссылки.

- Boost - это не "непонятная хрень wtf", а must-have для Ъ-применения C++. в отличие от более понятного кутэ, который однако совсем не Ъ. просто C++ не для прикладных программ и надо это понимать. поэтому кутэ - это немного изврат.

- не получится полноценно изучить С++ по гуглу. многие вещи, типа того же boost, можно найти лишь в коде профессионально написанных проектов. не можешь стажироваться - найди такой проект просто на гитхабе и ходи как на работу: собери его у себя, разобравшись со всеми ошибками, запускай, что-то делай, изучай C++. публиковать свои наработки при этом вообще необязательно (хотя такой соблазн возникнет).
тут надо понимать, что open-source на самом деле пишется совсем не энтузиастами за миской роллтона, это тоже определенная коммерция.
глупо смотреть на Билла Гейтса, который заработал больше чем создатели всех линуксов, либрофисов и реакт-осей. да, больше, но если он заработал миллиарды, то они заработали миллионы, что тоже не плохо.
особенно нелепо, когда от open-source брезгливо морщится человечек, который в детстве и этот самый роллтон едал.
да, можно (и нужно) быть человеком правильных взглядов и не любить все эти проекты - большинство этого заслужили - ну так используй их только для зарабатывания денег, а трать их на свои хорошие проекты. но это уже другая история...
D&
Dmitrii 鮫
260
Лучший ответ
Для новичка самое главное - это понять основы и научиться решать хотя бы простые задачи. Писать хороший код - это не тема для новичка.
Иногда люди пишут говнокод, поскольку плохо понимают, как работает компьютер и язык программирования. Или берут код из интернета и без всякого понимания вставляют в свою программу.
Чтоб научиться писать хороший код, нужен опыт, и надо читать книги по проектированию программ.

Курс лекций Алгоритмы и структуры данных (С++)
https://www.youtube.com/watch?v=MWsfHQaUzI0&list=PLRDzFCPr95fL_5Xvnufpwj2uYZnZBBnsr
Seks Manyakiyam По факту сказал.Молодец!
Никак. Ибо C++ это гоvно для юЗверей-потребителей, юзающих кем-то написанные библиотеки классов и считающих себя типа "программистами".
Лучше начинай с чистого СИ, тогда за умного сойдёшь, а не за фраера дешёвого)))
Денис Ермаков
Денис Ермаков
37 945
Виктор Ковалев Не думал что это гвно код так связан с C++. Я собираюсь переходить на c# а с++ использовал для изучения программирования вообщем. Спасибо за ответ.
Кроме книги "Совершенный код" можно ещё внимательно почитать дилогию Роберта Мартина "Идеальный код" (Clean Code) - "Идеальный кодировщик" (Clean Coder), что в другом переводе будет звучать как "Идеальная программа" и "Идеальный программист". Собственно по С++ есть ещё "Стандарты программирования на С++" Герба Саттера и другие его работы, если это важно. Равно как и книги Дьюхерста, Мейерса, Эккеля, Седжвика и прочих интересных авторов...
Saribek Nahapetyan
Saribek Nahapetyan
28 648
хочешь не писать гвн код
займись оптимизацией своего кода
может потом научишься писать сразу оптимальный по виду и структуре код

но интренет это такое пространство
где оптимальный твой код любой - завистливый малалетний дебил и задира
может назвать гвн кодом
без объяснения причин некоректности этих данных
никак.

Любой код можно оценить как говнокод главное проявить фантазию.
Для хорошего кода нужен опыт. Да и не всегда хороший код нужен, ибо в некоторых задачах нужно, чтобы просто работало, и нужно это еще вчера. Ну или вообще иногда нужно, чтобы код отработал несколько раз и в утиль его.
Как научиться? Писать. Писать много. Писать разное. Писать сложное. И переписывать потом свой код, улучшая его. Переписывать можно много раз.