Различия между версиями 7 и 8
Версия 7 от 2022-09-20 19:28:36
Размер: 8150
Редактор: FrBrGeorge
Комментарий:
Версия 8 от 2023-06-27 18:28:12
Размер: 8145
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 15: Строка 15:
'''TODO''' возможно, получится перенести в предыдущую лекцию (в 20022 году потеряли более получаса) '''TODO''' возможно, получится перенести в предыдущую лекцию (в 2022 году потеряли более получаса)
Строка 79: Строка 79:
 * IDE: всё в одном   * IDE: всё в одном
Строка 99: Строка 99:
 * Си:   * Си:
Строка 106: Строка 106:
'''Linux''':  '''Linux''':
Строка 133: Строка 133:
  * Не забыть опубликовать решение в публичном репозитории!    * Не забыть опубликовать решение в публичном репозитории!

Сборочное окружение

Про что не будет в лекциях:

  • Как администрировать свою Linux-систему
    • Как ставить/удалять/обновлять пакеты
    • Как эти пакеты называются в разных дистрибутивах
    • Как настраивать какие-то службы

А что делать, если всё это не сильно близко? Получить в ТГ-личке аккаунт на сервере LinuxApplicationDevelopment2022 (понадобится открытый ssh-ключ)

Текстово-ориентированный интерфейс

Поскольку и сервер практикума, и демонстрируемый на лекциях инструментарий ориентированы на TUI, предлагается в течение семестр только TUI и пользоваться. В действительности это не слишком большое ограничение, потому что большая часть инструментов разработки — это преобразование исходных текстов (программ или файлов проекта), и их диагностика — это тоже текст.

Долг за прошлую лекцию: работа с GIT

TODO возможно, получится перенести в предыдущую лекцию (в 2022 году потеряли более получаса)

Базовый сайт: Pro GIT

VCS:

  • Хранение
  • Версионирвание
  • Совместная разработка

DVCS:

  • ∄ единого места хранения
    • с точки зрения протокола взаимодействия, так-то оно может и быть

Общие понятия (не все):

  • Репозиторий
    • Локальная копия
    • Репозиторий для публикации
  • Рабочая копия
  • Коммит как срез состояния репозитория на опередённый момент
    • Обязательное описание коммита (commit message)

Цикл работы

  1. клонирование (git clone)

  2. (повторно и далее) Синхронизация (git pull = git fetch + git merge)

  3. Изменение
  4. Отметка файлов для коммита (git add)

  5. Коммит (git commit)

  6. Переход к 2. или 3.
  7. Публикация (git push)

Свойства GIT:

  • Хранение всех версий исходников

  • Хранение полного репозитория в локальной копии

  • Отслеживание процесса разработки в виде орграфа (нам пока нужен только линейный)

    • ⇒ понятие «ветка», «слияние веток» и т. п.

Стадии разработки приложения

Приложение:

  • (./) Разработка

    • (./) Исходный код, документация, мультимедиа

    • (./) Сборка программного продукта

    • (./) Тестирование и отладка

  • Деплоймент
    • (./) Локальный тестовый деплоймент

    • Репозиторий и доставка
    • Установка и развёртывание
    • Сопровождение

Значком (./) отмечены области, которые мы так или иначе затронем

Цикл разработки

(«Для самых маленьких»):

  1. Редактирование
  2. Сборка и подготовка к запуску
  3. Тестирование и запуск

Редактирование

Текстовый редактор для программирования — это:

  • {*} синтаксис

  • {o} рецепты сборки

  • {o} многофайловые проекты и связи между файлами

  • {o} инфоподдержка

  • отладчик
  • рецепты деплоймента
  • чёрт в ступе…

Что делать:

  • IDE: всё в одном
    • Eclipse, NetBeans, VisualStudio, JetBrains, VSCode…

  • Mini-IDE: всё в одном, но по минимуму (зато простое)
    • Geany, CodeBlocks, …

  • Редактор + набор внешних инструментов ($$ \oo $$)

    • Консольные: mcedit, jed, micro

  • Vim или EMACS + набор внешних инструментов ☺
  • Vim:

Внешние инструменты: командная строка + текстовый профиль

Сборка

Исходники → пригодные к тестированию бинарники.

Окружение

Linux:

  • пакеты и репозитории; зависимости среди пакетов (не тема этого курса…)

Понятия:

Эксплуатационно окружение

Всё, что нужно для запуска программного продукта

  • эксплуатационные зависимости (например, библиотеки)
Сборочное окружение

Всё, что нужна для автоматической сборки программного продукта

  • Компилятор Си
  • + много другого, например, devel-версии библиотек, .h-файлы и т. п.

Окружение для разработки (инструментальное)

Всё, что нужно программисту для сборки программного продукта

  • + редактор
  • + удобные настройки редактора, shell и т. п.
  • + инфопространство
  • + … (всё тот же чёрт в ступе)

Д/З

TODO оформить полноценное Д/З с helloworld-ом

правила оформления Д/З

  1. Организовать себе рабочее место и репозиторий (доделать Д/З прошлой лекции, в т. ч. по необходимости)
    • Редактор
    • Компилятор Си (лучше gcc)

    • git

  2. Конечно же, Hello, World!.

    • Создать в репозитории Д/З подкаталог С именем 01_GitBuildReq, всё решение положить туда

    • «Всё решение» — это программа на Си, которая вводит строку и выводит текст «Hello, строка!» (где «строка» — это введённая строка)

    • Файл a.out и/или другие генраты в репозиотрий не класть!

    • Не забыть опубликовать решение в публичном репозитории!

LecturesCMC/LinuxApplicationDevelopment2022/01_GitBuildReq (последним исправлял пользователь FrBrGeorge 2023-06-27 18:28:12)