mirror of
https://github.com/salmer/CppDeveloperRoadmap.git
synced 2025-12-17 20:44:39 +03:00
Added mythbusters article
This commit is contained in:
29
Mythbusters.md
Normal file
29
Mythbusters.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Легенды и мифы про C++
|
||||||
|
|
||||||
|
## Прежде чем учить C++ необходимо хорошо изучить C/Assembler/etc.
|
||||||
|
|
||||||
|
Нет, нет и ещё раз нет!
|
||||||
|
|
||||||
|
Такое утверждение до сих пор живо из-за двух распространенных ситуаций: так учили в ВУЗе (Assembler -> C -> C++), либо от "старой гвардии" плюсовиков, т.к. они в своей практике проходили похожий путь. Современный C++ не требует подобного рода мучений. Этот язык автономен и может быть изучен без какого-либо бекграунда. Намного вероятнее, что при изучении в режиме "Си -> С++" у вас возникнет путаница в голове, а также устойчивое желание писать на C++ в стиле "Си с классами".
|
||||||
|
|
||||||
|
## Изучайте C++ по книге Страуструпа
|
||||||
|
|
||||||
|
Крайне вредный тезис, который пришел от "старогвардейцев", либо от тех, кто родился с клавиатурой в руках.
|
||||||
|
|
||||||
|
Скорее всего этот совет произносят те, кто уже имел большой опыт разработки на других языках (C, Fortran, Delphi, и т.д.) и переходил с них на C++. Книга Страуструпа написана больше как справочник, потому и работать с ней требуется соответсвенно, но для этого уже надо хоть немного разбираться в языке. Лучше загляните в раздел [Книги](Books.md), там вы найдете книги для любого уровня владения языком.
|
||||||
|
|
||||||
|
## Изучайте C++ только по стандарту
|
||||||
|
|
||||||
|
Тоже крайне снобисткий тезис.
|
||||||
|
|
||||||
|
Во-первых, современный стандарт C++ уже превысил размер в 2000 страниц. Во-вторых, доступ к актуальной версии стандарта платный. И, в-третьих, стандарт написан не самым "дружелюбным" способом. Тем кто изучил язык по его стандарту можно пожать руку, но мы не рекомендуем так издеваться над собой. Опять же, лучше загляните в раздел [Книги](Books.md), там вы найдете книги для любого уровня владения языком.
|
||||||
|
|
||||||
|
## Undefined Behavior преследует разработчика повсюду
|
||||||
|
|
||||||
|
Скорее нет, чем да.
|
||||||
|
|
||||||
|
Современный C++, а также инструментарий, возникший вокруг языка, позволяют избежать львиную долю багов, связанных с неопределенным поведением. Здесь мы можем дать довольно простой совет: если сомневаетесь, что делает та или иная конструкция, то почитайте о ней на [CppReference](https://en.cppreference.com), [StackOverflow](https://stackoverflow.com/) или иных профильных порталах. Если после прочтения констркуция остается непонятной, то попробуйте переписать блок кода альтернативным и более простым способом, чтобы избежать неопредленного поведения. В простоте кроется великая сила!
|
||||||
|
|
||||||
|
## Нужно вручную управлять памятью, это делать крайне сложно
|
||||||
|
|
||||||
|
Современный C++ имеет в составе своей библиотеки набор примитивов, который отвечает за выделение и освобождение памяти. Во многих компаниях и командах вы встретите правило: "не используйте сырых указателей". Ручной менеджмент памяти в современных проектах требуется редко. Опять же, не пренебрегайте современным инструментарием и санитайзерами. Они способны детектировать потенциальную утечку памяти ещё на этапе исходного кода.
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
1. [C++ - это просто!](FunCpp.md)
|
1. [C++ - это просто!](FunCpp.md)
|
||||||
1. [Области применения языка](AreasOfApplication.md)
|
1. [Области применения языка](AreasOfApplication.md)
|
||||||
1. [Грейды разработчиков](Grades/Overview.md)
|
1. [Грейды разработчиков](Grades/Overview.md)
|
||||||
|
1. [Легенды и мифы про C++](Mythbusters.md)
|
||||||
1. [Книги и прочие материалы по С++](Books.md)
|
1. [Книги и прочие материалы по С++](Books.md)
|
||||||
1. [Инструментарий для С++](Tooling.md)
|
1. [Инструментарий для С++](Tooling.md)
|
||||||
1. [Ресурсы по C++: каналы конференций и т.д.](CommunitySources.md)
|
1. [Ресурсы по C++: каналы конференций и т.д.](CommunitySources.md)
|
||||||
|
|||||||
Reference in New Issue
Block a user