diff --git a/Russian/Graph/roadmap.graphml b/Russian/Graph/roadmap.graphml index 470129c..745b7e7 100644 --- a/Russian/Graph/roadmap.graphml +++ b/Russian/Graph/roadmap.graphml @@ -901,10 +901,10 @@ - + - 1 этап + 1 этап @@ -927,7 +927,7 @@ - + Базовые операции @@ -938,7 +938,7 @@ - + Арфиметические операции @@ -949,7 +949,7 @@ - + Циклы for/while @@ -960,7 +960,7 @@ - + Логические операции @@ -971,7 +971,7 @@ - + Битовые операции @@ -982,7 +982,7 @@ - + Функции @@ -993,7 +993,7 @@ - + lambda @@ -1004,7 +1004,7 @@ - + Операторы @@ -1015,10 +1015,10 @@ - + - Типы данных + Типы данных @@ -1026,10 +1026,10 @@ - + - Динамическая типизация + Динамическая типизация @@ -1037,10 +1037,10 @@ - + - Статическая типизация + Статическая типизация @@ -1048,10 +1048,10 @@ - + - RTTI + RTTI @@ -1059,10 +1059,10 @@ - + - Указатели и ссылки + Указатели и ссылки @@ -1070,10 +1070,10 @@ - + - Организация кодовой базы + Организация кодовой базы @@ -1081,10 +1081,10 @@ - + - Ссылки + Ссылки @@ -1092,10 +1092,10 @@ - + - Модель памяти + Модель памяти @@ -1103,10 +1103,10 @@ - + - Умные указатели + Умные указатели @@ -1114,10 +1114,10 @@ - + - Сырые Указатели + Сырые Указатели @@ -1125,10 +1125,10 @@ - + - Разделение кода на headers/cpp юниты + Разделение кода на headers/cpp юниты @@ -1136,10 +1136,10 @@ - + - Область видимости + Область видимости @@ -1147,10 +1147,10 @@ - + - Утечки памяти + Утечки памяти @@ -1158,10 +1158,10 @@ - + - Forward declaration + Forward declaration @@ -1169,10 +1169,10 @@ - + - unique_ptr + unique_ptr @@ -1180,10 +1180,10 @@ - + - shared_ptr + shared_ptr @@ -1191,10 +1191,10 @@ - + - Время жизни + Время жизни @@ -1202,10 +1202,10 @@ - + - Операторы new/delete + Операторы new/delete @@ -1213,10 +1213,10 @@ - + - weak_ptr + weak_ptr @@ -1224,10 +1224,35 @@ - + - Пространство имён + Пространство имён + + + + + + + + + + + Перегрузка стандартных операторов для +различных типов/структур/классов. + + + + + + + + + + + Чтобы избежать проблем с управлением памятью, +старайтесь писать код используя ссылки и умные +указатели. @@ -1240,10 +1265,10 @@ - + - 2 этап + 2 этап @@ -1266,7 +1291,7 @@ - + Структуры и классы @@ -1277,7 +1302,7 @@ - + Обработка ошибок @@ -1288,7 +1313,7 @@ - + Перегрузка методов @@ -1299,7 +1324,7 @@ - + Таблица вирутальных методов @@ -1310,7 +1335,7 @@ - + ООП @@ -1321,7 +1346,7 @@ - + Исключения @@ -1332,10 +1357,10 @@ - + - Access violation + Access violation @@ -1343,7 +1368,7 @@ - + Динамический полиморфизм @@ -1354,7 +1379,7 @@ - + Виртуальные методы @@ -1365,7 +1390,7 @@ - + Правило нуля/трех/пяти @@ -1376,10 +1401,10 @@ - + - Статический полиморфизм + Статический полиморфизм @@ -1387,7 +1412,7 @@ - + Множественное наследование @@ -1398,7 +1423,7 @@ - + Ромбовидное наследование @@ -1409,7 +1434,7 @@ - + Коды возврата @@ -1417,6 +1442,18 @@ + + + + + + + Не используйте +множественное наследование + + + + @@ -1425,14 +1462,14 @@ - + - 3 этап + 3 этап - + @@ -1451,7 +1488,7 @@ - + auto (автоматическое выведение типов) @@ -1462,7 +1499,7 @@ - + Концепции языка @@ -1473,7 +1510,7 @@ - + type casting @@ -1484,7 +1521,7 @@ - + static_cast @@ -1495,7 +1532,7 @@ - + const_cast @@ -1506,7 +1543,7 @@ - + dynamic_cast @@ -1517,7 +1554,7 @@ - + reinterpret_cast @@ -1528,7 +1565,7 @@ - + Неопределённое поведение (Undefined Behavior) @@ -1539,7 +1576,7 @@ - + Поиск, зависящий от аргумента (ADL) @@ -1550,10 +1587,10 @@ - + - Макросы + Макросы @@ -1561,7 +1598,7 @@ - + Name mangling @@ -1572,10 +1609,10 @@ - + - Стандартная библиотека + Стандартная библиотека @@ -1583,10 +1620,10 @@ - + - Поток ввода/вывода + Поток ввода/вывода @@ -1594,10 +1631,10 @@ - + - Алгоритмы стандартной библиотеки + Алгоритмы стандартной библиотеки @@ -1605,10 +1642,10 @@ - + - Итераторы + Итераторы @@ -1616,10 +1653,10 @@ - + - Контейнеры + Контейнеры @@ -1627,10 +1664,10 @@ - + - Дата/время + Дата/время @@ -1638,7 +1675,7 @@ - + Многопоточность @@ -1646,16 +1683,30 @@ + + + + + + + Языковые конструкции для которых отсутствуют прописанные +требования в стандартах. В случае ошибки дальнейшее +поведение будет предсказать невозможно, и всецело будет +зависеть от контекста выполнения или платформы, где запущено +приложение. + + + + - - + Этап 4 @@ -1681,7 +1732,7 @@ - + Шаблоны @@ -1692,7 +1743,7 @@ - + Variadic templates @@ -1703,7 +1754,7 @@ - + Специализация шаблона @@ -1714,10 +1765,10 @@ - + - type traits + type traits @@ -1725,10 +1776,10 @@ - + - SFINAE + SFINAE @@ -1736,7 +1787,7 @@ - + Полная специализация @@ -1747,7 +1798,7 @@ - + Частичная специализация @@ -1758,7 +1809,7 @@ - + Идиомы @@ -1769,7 +1820,7 @@ - + RAII @@ -1780,7 +1831,7 @@ - + pimpl @@ -1791,7 +1842,7 @@ - + Erase-Remove @@ -1802,7 +1853,7 @@ - + Non-Copyable/Non-Moveable @@ -1813,7 +1864,7 @@ - + Copy and swap @@ -1824,7 +1875,7 @@ - + Copy on write @@ -1835,7 +1886,7 @@ - + CRTP @@ -1846,7 +1897,7 @@ - + Стандарты @@ -1857,7 +1908,7 @@ - + C++11/14 @@ -1868,7 +1919,7 @@ - + C++17 @@ -1879,7 +1930,7 @@ - + C++20 @@ -1890,10 +1941,10 @@ - + - newest + newest @@ -1901,7 +1952,7 @@ - + C++0x @@ -1913,19 +1964,26 @@ - - + - 1 этап + 1 этап + + + + + + + + - + @@ -1944,10 +2002,10 @@ - + - Работа с исходным кодом + Работа с исходным кодом @@ -1955,10 +2013,10 @@ - + - Текстовый редактор + Текстовый редактор @@ -1966,10 +2024,10 @@ - + - IDE + IDE @@ -1977,10 +2035,10 @@ - + - Редакторы исходного кода + Редакторы исходного кода @@ -1988,7 +2046,7 @@ - + Отладчик @@ -1999,7 +2057,7 @@ - + Линтеры @@ -2010,29 +2068,7 @@ - - - - Знание о базовых возможностях (shortcuts, tools, plugins) - - - - - - - - - - - Редакторы исходного кода - - - - - - - - + Знание о базовых возможностях (shortcuts, tools, plugins) @@ -2040,10 +2076,32 @@ + + + + + + + Умение читать сообщения отладчика + + + + + + + + + + + Отладочные символы + + + + - + WinDbg @@ -2054,7 +2112,7 @@ - + GDB @@ -2062,23 +2120,97 @@ + + + + + + + Выберите один из понравившихся популярных IDE +и хорошо освойте его: Eclipse, MS Visual Studio, +Qt Creator, JetBrains Clion, XCode и т.д. + + + + + + + + + + + Научитесь пользоваться отладчиком. Изучите его +возможности. + + + + + + + + + + + Выберите один из популярных редакторов и хорошо +освойте его. К примеру: Notepad++, Atom, и т.д. + + + + + + + + + + + Навык работы с отладчиком в через командную строку - +узконаправленный навык. В регулярной работе достаточно +уметь работать с отладчиком в рамках IDE. + + + + + + + + + + + Ознакомьтесь с самыми распространёнными ошибками +(segfault, out of memory, access violation) и концепцией  +неопределённого поведения (undefined behavior) + + + + + + + + + + + Выберите один из популярных редакторов и и хорошо +освойте его: Visual Code, Atom, Sublime Text и т.д. + + + + - - + - 3 этап + 3 этап - + @@ -2097,7 +2229,7 @@ - + Компиляторы @@ -2108,7 +2240,7 @@ - + Базовые знания работы компиляторов @@ -2119,10 +2251,10 @@ - + - Компиляция кода в объектные файлы + Компиляция кода в объектные файлы @@ -2130,10 +2262,10 @@ - + - Компоновка объектных файлов в приложение (линковка) + Компоновка объектных файлов в приложение (линковка) @@ -2141,10 +2273,10 @@ - + - Этапы работы компилятора + Этапы работы компилятора @@ -2152,10 +2284,38 @@ - + - Платформозависимые компиляторы + Платформозависимые компиляторы + + + + + + + + + + + У компиляторов есть свои особенности, о которых +хорошо бы знать: Clang++/LLVM, Intel C++, MSVS C++, +GCC, MinGW + + + + + + + + + + + Есть несколько этапов работы компилятора, которые +хорошо бы знать. Это помогает ошибки решать +проблемы сборки на разных этапах. Достаточно базово +понимать, что происходит. Детали работы нужны +разработчикам компиляторов @@ -2164,7 +2324,6 @@ - @@ -2504,15 +2663,14 @@ - - + - 1 этап + 1 этап @@ -2560,7 +2718,7 @@ - Алгоритмы + Алгоритмы @@ -2582,7 +2740,19 @@ - Конечные автоматы + Конечные автоматы + + + + + + + + + + + Также необходимо понимать, как вычислить сложность +и потребление памяти у алгоритмов. @@ -2591,7 +2761,6 @@ - @@ -2636,7 +2805,7 @@ - Распределенные + Распределенные @@ -2647,7 +2816,7 @@ - Централизованные + Централизованные @@ -2867,7 +3036,7 @@ - Понимание жизненного цикла производства ПО + Понимание жизненного цикла производства ПО @@ -3076,7 +3245,7 @@ - Промышленные стандарты + Промышленные стандарты @@ -3219,7 +3388,7 @@ - Использование других языков программирования + Использование других языков программирования @@ -3230,7 +3399,60 @@ - Межязыковое взаимодействие + Межязыковое взаимодействие + + + + + + + + + + + Правила именования переменных, пробелы vs табы, +положение фигурных скобок и т.д. + + + + + + + + + + + Настроить форматирование и автоматически проверять + в одной из утилит: clang-format, Resharper - стиль кода, +MSVS - стиль кода. + + + + + + + + + + + - Скриптовые +- Функциональные +- SQL like +- NoSQL +- Брагилевский :) + + + + + + + + + + + Иногда требуется предоставить обертку к библиотеке, написанной +на C++ для другого ЯП, например Python или C#. Для этого +применяют специальные библиотеки/фреймворки. @@ -3265,7 +3487,7 @@ - Component-based + Component-based @@ -3298,7 +3520,7 @@ - Client-server + Client-server @@ -3309,7 +3531,7 @@ - Microservices architecture + Microservices architecture @@ -3342,7 +3564,7 @@ - REST + REST @@ -3353,14 +3575,13 @@ - Service-oriented architecture + Service-oriented architecture - @@ -3416,7 +3637,7 @@ - Структурные + Структурные @@ -3484,7 +3705,7 @@ - MVC + MVC @@ -3517,7 +3738,7 @@ - Onion + Onion @@ -3550,7 +3771,7 @@ - Test Driven Development + Test Driven Development @@ -3627,7 +3848,7 @@ - Бинарные единицы + Бинарные единицы @@ -3748,7 +3969,7 @@ - Ошибки + Ошибки @@ -4133,7 +4354,7 @@ - Облачные сервисы + Облачные сервисы @@ -4221,7 +4442,7 @@ - Драйверы + Драйверы @@ -4331,7 +4552,7 @@ - Общие навыки + Общие навыки @@ -4350,7 +4571,7 @@ - + Синтаксис языка @@ -5999,7 +6220,10 @@ - + + + + @@ -6009,7 +6233,10 @@ - + + + + @@ -6019,7 +6246,10 @@ - + + + + @@ -6029,7 +6259,10 @@ - + + + + @@ -6039,7 +6272,10 @@ - + + + + @@ -6059,7 +6295,10 @@ - + + + + @@ -6069,7 +6308,10 @@ - + + + + @@ -6079,7 +6321,10 @@ - + + + + @@ -6089,7 +6334,10 @@ - + + + + @@ -7989,7 +8237,9 @@ - + + + @@ -7999,7 +8249,9 @@ - + + + @@ -8129,7 +8381,9 @@ - + + + @@ -8139,13 +8393,203 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +