Содержание курса
1. Введение
1 урок
11
2
2м
0
Закрытый
1.1
О чём этот курс
↗
11
2
2м 57с
0
2. Синтаксис и управляющие конструкции
19 уроков
20
19
0м
0
Закрытый
2.1
Краткое введение
↗
2
1
-
0
Закрытый
2.2
Структура модуля и комментарии
↗
1
1
-
0
Закрытый
2.3
Точка входа в BetterC
↗
1
1
-
0
Закрытый
2.4
Идентификаторы
↗
1
1
-
0
Закрытый
2.5
Ключевые слова
↗
1
1
-
0
Закрытый
2.6
Объявления сущностей
↗
1
1
-
0
Закрытый
2.7
Инициализация переменных
↗
1
1
-
0
Закрытый
2.8
Константы
↗
1
1
-
0
Закрытый
2.9
Выражения и операторы
↗
1
1
-
0
Закрытый
2.10
Приоритеты операций
↗
1
1
-
0
Закрытый
2.11
Условные конструкции
↗
1
1
-
0
Закрытый
2.12
Выбор (switch)
↗
1
1
-
0
Закрытый
2.13
Циклы
↗
1
1
-
0
Закрытый
2.14
Цикл foreach
↗
1
1
-
0
Закрытый
2.15
Функции
↗
1
1
-
0
Закрытый
2.16
Лямбды
↗
1
1
-
0
Закрытый
2.17
Импорт Си-кода
↗
1
1
-
0
Закрытый
2.18
Внешние связи
↗
1
1
-
0
Закрытый
2.19
Импорт модулей
↗
1
1
-
0
3. Байты, символы и типы данных
16 уроков
16
16
0м
0
Закрытый
3.1
Целочисленные типы
↗
1
1
-
0
Закрытый
3.2
Числа с плавающей точкой
↗
1
1
-
0
Закрытый
3.3
Логический тип
↗
1
1
-
0
Закрытый
3.4
Символы
↗
1
1
-
0
Закрытый
3.5
Понятие байта и void
↗
1
1
-
0
Закрытый
3.6
Массивы фиксированной длины
↗
1
1
-
0
Закрытый
3.7
Указатели
↗
1
1
-
0
Закрытый
3.8
Срезы
↗
1
1
-
0
Закрытый
3.9
Строковые литералы
↗
1
1
-
0
Закрытый
3.10
Строки в стиле C
↗
1
1
-
0
Закрытый
3.11
Многобайтовые строки
↗
1
1
-
0
Закрытый
3.12
Перечисления
↗
1
1
-
0
Закрытый
3.13
Псевдонимы типов
↗
1
1
-
0
Закрытый
3.14
Приведение типов
↗
1
1
-
0
Закрытый
3.15
Знакомство с агрегатами
↗
1
1
-
0
Закрытый
3.16
Инструкция with
↗
1
1
-
0
4. Документирование
10 уроков
10
10
0м
0
Закрытый
4.1
Философия самодокументированного кода
↗
1
1
-
0
Закрытый
4.2
Синтаксис Ddoc. Основы
↗
1
1
-
0
Закрытый
4.3
Структура Ddoc-секции
↗
1
1
-
0
Закрытый
4.4
Секция Examples
↗
1
1
-
0
Закрытый
4.5
Макросы в Ddoc
↗
1
1
-
0
Закрытый
4.6
Кастомные макросы
↗
1
1
-
0
Закрытый
4.7
Markdown в документации
↗
1
1
-
0
Закрытый
4.8
Генерация документации
↗
1
1
-
0
Закрытый
4.9
Особенности для betterC
↗
1
1
-
0
Закрытый
4.10
Финальная практика: Создаем SDK
↗
1
1
-
0
5. Структуры
9 уроков
9
9
0м
0
Закрытый
5.1
Объявление и инициализация
↗
1
1
-
0
Закрытый
5.2
Методы структур
↗
1
1
-
0
Закрытый
5.3
Инкапсуляция
↗
1
1
-
0
Закрытый
5.4
Конструкторы
↗
1
1
-
0
Закрытый
5.5
Деструкторы
↗
1
1
-
0
Закрытый
5.6
Postblit и проблема копирования
↗
1
1
-
0
Закрытый
5.7
Атрибут @disable
↗
1
1
-
0
Закрытый
5.8
Выравнивание и размер
↗
1
1
-
0
Закрытый
5.9
Перегрузка операций над структурами
↗
1
1
-
0
6. Шаблоны
15 уроков
15
15
0м
0
Закрытый
6.1
Анатомия шаблонов
↗
1
1
-
0
Закрытый
6.2
Шаблоны и автоматический вывод типов
↗
1
1
-
0
Закрытый
6.3
Шаблоны структур — Универсальные контейнеры без GC
↗
1
1
-
0
Закрытый
6.4
Параметры-значения и alias — передаем в код всё, что угодно
↗
1
1
-
0
Закрытый
6.5
Ограничения шаблонов (Template Constraints)
↗
1
1
-
0
Закрытый
6.6
Специализация шаблонов
↗
1
1
-
0
Закрытый
6.7
Вариативные шаблоны (Variadic Templates)
↗
1
1
-
0
Закрытый
6.8
Рекурсия в шаблонах
↗
1
1
-
0
Закрытый
6.9
Как не «раздуть» бинарный файл?
↗
1
1
-
0
Закрытый
6.10
Эпонимные шаблоны — Магия одного имени
↗
1
1
-
0
Закрытый
6.11
Типовые признаки (Traits) - допрос компилятора
↗
1
1
-
0
Закрытый
6.12
Mixin-шаблоны — «Впрыскивание» готового кода
↗
1
1
-
0
Закрытый
6.13
Ленивые вычисления в шаблонах
↗
1
1
-
0
Закрытый
6.14
Умный проброс — auto ref и Forwarding
↗
1
1
-
0
Закрытый
6.15
Типобезопасная абстракция над железом
↗
1
1
-
0
7. CTFE
15 уроков
15
15
0м
0
Закрытый
7.1
CTFE как суперсила D — «Просто добавь enum»
↗
1
1
-
0
Закрытый
7.2
Триггеры исполнения — Как заставить код работать «пораньше»?
↗
1
1
-
0
Закрытый
7.3
Что запрещено в CTFE?
↗
1
1
-
0
Закрытый
7.4
Идеальный детерминизм
↗
1
1
-
0
Закрытый
7.5
Алгоритмы в CTFE
↗
1
1
-
0
Закрытый
7.6
Compile-time строки
↗
1
1
-
0
Закрытый
7.7
Генерация Look-up tables
↗
1
1
-
0
Закрытый
7.8
String Mixins
↗
1
1
-
0
Закрытый
7.9
Интроспекция типов в CTFE
↗
1
1
-
0
Закрытый
7.10
Статическая валидация — компиляция или краш
↗
1
1
-
0
Закрытый
7.11
Управление памятью в CTFE
↗
1
1
-
0
Закрытый
7.12
Оптимизация
↗
1
1
-
0
Закрытый
7.13
Паттерн «Парсер-генератор» — Свой язык внутри D
↗
1
1
-
0
Закрытый
7.14
Отладка CTFE — Как лечить невидимое?
↗
1
1
-
0
Закрытый
7.15
Финальный проект
↗
1
1
-
0
8. Динамическая память
1 урок
1
1
0м
0
Закрытый
8.1
Пустой
↗
1
1
-
0
9. Файлы
1 урок
1
1
0м
0
Закрытый
9.1
Отображаемые в память файлы
↗
1
1
-
0
10. Сокеты
1 урок
1
1
0м
0
Закрытый
10.1
Пример обертки для сокетов
↗
1
1
-
0
11. Встроенный ассемблер
1 урок
1
1
0м
0
Закрытый
11.1
Пустой
↗
1
1
-
0
12. OpenGl
4 урока
4
4
0м
0
Закрытый
12.1
BindBC-Loader
↗
1
1
-
0
Закрытый
12.2
BindBC-GLFW
↗
1
1
-
0
Закрытый
12.3
BindBC-OpenGL
↗
1
1
-
0
Закрытый
12.4
Первое приложение
↗
1
1
-
0
13. Работа с библиотекой Mir
1 урок
1
1
0м
0
Закрытый
13.1
Пустой
↗
1
1
-
0
14. Компиляторы и сборка
5 уроков
5
5
0м
0
Закрытый
14.1
Установка
↗
1
1
-
0
Закрытый
14.2
Сборочные скрипты
↗
1
1
-
0
Закрытый
14.3
DMD
↗
1
1
-
0
Закрытый
14.4
LDC
↗
1
1
-
0
Закрытый
14.5
GDC
↗
1
1
-
0
15. Утилита dub
1 урок
1
1
0м
0
Закрытый
15.1
Возможности утилиты
↗
1
1
-
0
16. Послесловие и планы
3 урока
3
3
0м
0
Закрытый
16.1
отчёт по курсу
↗
1
1
-
0
Закрытый
16.2
Ссылки на проекты на D
↗
1
1
-
0
Закрытый
16.3
тестовый полигон
↗
1
1
-
0