Повторяющийся код и настройки запуска: шаблон небольшого (sic!) проекта на C • Live coding

Начнём, но не успеем закончить сборку шаблонного проекта на C: Github template, Codespaces, .gitignore, выбор лицензии, структура каталогов первого уровня, зачатки Docker, совсем немного Makefile — ну и так, по мелочи. Таймлайн: 00:00:00 Вступление: зачем этот стрим и почему тема проще обычного 00:01:13 Почему даже Hello World может отпугнуть 00:01:49 Хотелка: быстрое начало проекта на C 00:02:07 Почему чужие шаблоны не работают и как подойти по-своему 00:03:05 Когда стоит делать шаблон: не с первого раза 00:04:40 Создание шаблона проекта на GitHub 00:06:19 Делаем репозиторий шаблонным 00:07:03 Создание нового проекта из шаблона 00:09:05 Структура проекта: какие папки создавать 00:12:30 Папка include: хедеры и публичные API 00:13:25 Папка lib: свои библиотеки 00:14:04 Папка play: место для экспериментов 00:14:37 Папка test: юнит-тесты 00:15:10 Папка tool: скрипты для автоматизации 00:16:04 Минимум папок: с чего начать 00:16:53 Что класть в .gitignore: build, play, .swp и другие 00:18:14 Gitignore как часть шаблона 00:19:01 Проблема пустых папок и gitkeep 00:20:51 README и другие Markdown-файлы 00:27:06 Локальные настройки редактора, Vim и dotfiles 00:28:29 Каталог tool и скрипт для запуска tmux-сессии 00:32:03 CodeSpaces от GitHub: как запустить код в облаке 00:36:43 Программа запускается даже без локальной настройки! 00:40:48 CodeSpaces не бесплатен: лимиты и как экономить 00:42:55 Что установить на свою систему: requirements 00:45:18 Ставим зависимости через файл и make-цель 00:48:05 Как подключить requirements к make-файлу 00:50:35 Вводим Docker как способ изоляции 00:54:05 Простой Dockerfile и создание образа 00:57:12 Что такое контейнеры и как это работает 01:05:07 Выполнение программы внутри контейнера 01:07:06 Как передать код внутрь контейнера 01:11:11 Выполнение программы внутри Docker без входа 01:13:02 Команда компиляции в Docker: слишком длинно! 01:14:55 Промежуточные итоги и планы на следующий выпуск Конспект на Github:

Смотрите также