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 брезгливо морщится человечек, который в детстве и этот самый роллтон едал.
да, можно (и нужно) быть человеком правильных взглядов и не любить все эти проекты - большинство этого заслужили - ну так используй их только для зарабатывания денег, а трать их на свои хорошие проекты. но это уже другая история...
такой это язык, 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 брезгливо морщится человечек, который в детстве и этот самый роллтон едал.
да, можно (и нужно) быть человеком правильных взглядов и не любить все эти проекты - большинство этого заслужили - ну так используй их только для зарабатывания денег, а трать их на свои хорошие проекты. но это уже другая история...
Для новичка самое главное - это понять основы и научиться решать хотя бы простые задачи. Писать хороший код - это не тема для новичка.
Иногда люди пишут говнокод, поскольку плохо понимают, как работает компьютер и язык программирования. Или берут код из интернета и без всякого понимания вставляют в свою программу.
Чтоб научиться писать хороший код, нужен опыт, и надо читать книги по проектированию программ.
Курс лекций Алгоритмы и структуры данных (С++)
https://www.youtube.com/watch?v=MWsfHQaUzI0&list=PLRDzFCPr95fL_5Xvnufpwj2uYZnZBBnsr
Иногда люди пишут говнокод, поскольку плохо понимают, как работает компьютер и язык программирования. Или берут код из интернета и без всякого понимания вставляют в свою программу.
Чтоб научиться писать хороший код, нужен опыт, и надо читать книги по проектированию программ.
Курс лекций Алгоритмы и структуры данных (С++)
https://www.youtube.com/watch?v=MWsfHQaUzI0&list=PLRDzFCPr95fL_5Xvnufpwj2uYZnZBBnsr
Seks Manyakiyam
По факту сказал.Молодец!
Никак. Ибо C++ это гоvно для юЗверей-потребителей, юзающих кем-то написанные библиотеки классов и считающих себя типа "программистами".
Лучше начинай с чистого СИ, тогда за умного сойдёшь, а не за фраера дешёвого)))
Лучше начинай с чистого СИ, тогда за умного сойдёшь, а не за фраера дешёвого)))
Виктор Ковалев
Не думал что это гвно код так связан с C++. Я собираюсь переходить на c# а с++ использовал для изучения программирования вообщем. Спасибо за ответ.
Кроме книги "Совершенный код" можно ещё внимательно почитать дилогию Роберта Мартина "Идеальный код" (Clean Code) - "Идеальный кодировщик" (Clean Coder), что в другом переводе будет звучать как "Идеальная программа" и "Идеальный программист". Собственно по С++ есть ещё "Стандарты программирования на С++" Герба Саттера и другие его работы, если это важно. Равно как и книги Дьюхерста, Мейерса, Эккеля, Седжвика и прочих интересных авторов...
хочешь не писать гвн код
займись оптимизацией своего кода
может потом научишься писать сразу оптимальный по виду и структуре код
но интренет это такое пространство
где оптимальный твой код любой - завистливый малалетний дебил и задира
может назвать гвн кодом
без объяснения причин некоректности этих данных
займись оптимизацией своего кода
может потом научишься писать сразу оптимальный по виду и структуре код
но интренет это такое пространство
где оптимальный твой код любой - завистливый малалетний дебил и задира
может назвать гвн кодом
без объяснения причин некоректности этих данных
никак.
Любой код можно оценить как говнокод главное проявить фантазию.
Любой код можно оценить как говнокод главное проявить фантазию.
Для хорошего кода нужен опыт. Да и не всегда хороший код нужен, ибо в некоторых задачах нужно, чтобы просто работало, и нужно это еще вчера. Ну или вообще иногда нужно, чтобы код отработал несколько раз и в утиль его.
Как научиться? Писать. Писать много. Писать разное. Писать сложное. И переписывать потом свой код, улучшая его. Переписывать можно много раз.
Как научиться? Писать. Писать много. Писать разное. Писать сложное. И переписывать потом свой код, улучшая его. Переписывать можно много раз.
Похожие вопросы
- Как писать класс в C++?
- Зачем нужно писать int около main(), return 0, void main в c++?
- Как хорошо писать на c++?
- Какие из этих книг вы посоветуете прочесть в первую очередь чтобы повысить свои знания в C/C++?
- Задача по C++
- День добрый \[-_-]/ вопрос по вузовскому программированию на си(C)
- Программирование C++ ПРОШУ ПОМОЧЬ!
- Почему создатель Linux Линус Торвальдс называет C++ ужасным языком, а ядро ОС Linux пишется только на Си?
- Задача на C++ (Остатки).
- Сделать перестановку чисел с помощью функции в C++, но у меня получается чепуха