Сборочное окружение
TODO Переименовать — добавить Git в заголовок, оформить полноценное Д/З с helloworld-ом
TODO Минимизировать разговор об установке — обмазать ссылками на соотв. лекции
Долг за прошлую лекцию: работа с GIT
Базовый сайт: Pro GIT
VCS:
- Хранение
- Версионирвание
- Совместная разработка
DVCS:
- ∄ единого места хранения
- с точки зрения протокола взаимодействия, так-то оно может и быть
Общие понятия (не все):
- Репозиторий
- Локальная копия
- Репозиторий для публикации
- Рабочая копия
- Коммит как срез состояния репозитория на опередённый момент
- Обязательное описание коммита (commit message)
Цикл работы
клонирование (git clone)
(повторно и далее) Синхронихация (git pull = git fetchi + git merge)
- Изменение
Отметка файлов для коммита (git add)
Коммит (git commit)
- Переход к 2. или 3.
Публикация (git push)
Что это было?
Свойства GIT:
Хранение всех версий исходников
Хранение полного репозитория в локальной копии
Отслеживание процесса разработки в виде орграфа (нам пока нужен только линейный)
- ⇒ понятие «ветка», «слияние веток» и т. п.
Для самых маленьких:
- Приложение:
Разработка
Исходный код, документация, мультимедиа
Сборка программного продукта
Тестирование и отладка
- Деплоймент
- Репозиторий и доставка
- Установка
- Сопровождение
Цикл разработки:
- Редактирование
- Сборка и подготовка к запуску
- Тестирование и запуск
Проброс SSH-агента
Использование ssh -A … → удалённый доступ к агенту на локальном хосте
Редактирование
Текстовый редактор для программирования — это:
синтаксис
рецепты сборки
многофайловые проекты и связи между файлами
инфоподдержка
- отладчик
- рецепты деплоймента
- чёрт в ступе…
Что делать:
- IDE: всё в одном
Eclipse, NetBeans, VisualStudio, JetBrains, …
- Mini-IDE: всё в одном, но по минимуму (зато простое)
VSCode, Geany, CodeBlocks, …
Редактор + набор внешних инструментов ($$ \oo $$)
Консольные: mcedit, jed, micro
- Vim или EMACS + набор внешних инструментов ☺
- VIM:
- vimtutor
Внешние инструменты: командная строка + текстовый профиль
Git и сборочный сервер.
Сборка
Исходники → пригодные к тестированию бинарники.
- Как минимум, компилятор
Пример компиляции программы на FreeBSD
Запуск бинарника, почему ./a.out
- Си:
- препроцессор
- компилятор
- ассемблер
- компоновщик
Окружение
Linux:
- пакеты и репозитории;
- зависимости среди пакетов
- (не тема этого курса…)
Понятия:
- Эксплуатационно окружение
Всё, что нужно для запуска программного продукта
- эксплуатационные зависимости (например, библиотеки)
- Сборочное окружение
Всё, что нужна для автоматической сборки программного продукта
- Компилятор Си
+ много другого, например, devel-версии библиотек, .h-файлы и т. п.
- Окружение для разработки
Всё, что нужно программисту для сборки программного продукта
- + редактор
- + удобные настройки редактора, shell и т. п.
- + инфопространство
Д/З
TODO правила оформления Д/З
- Организовать себе рабочее место и репозиторий (доделать Д/З прошлой лекции, в т. ч. по необходимости)
- Редактор
Компилятор Си (лучше gcc)
git
Конечно же, Hello, World!.