Разработка ПО. Индивидуальное использование GIT
Структура курса
- Примеры прикладных инструментариев + примеры инструментариев разработки
- Отчётный семестровый проект
- Интерактивность
Что такое разработка?
- Разработка ≠ программирование
Разработка > проектирование + кодирование (процесс + результат) + оформление кода
Использование GIT для «изолированной» разработки
Общие принципы работы VCS
Задачи:
- Хранение
- Версионирование
- Информационная поддержка процесса разработки
- Типичные операции с исходным кодом и их документирование
- Параллельная разработка
- Совместная разработка
- …
Общие свойства VCS на примере GIT:
- Хранилище + рабочая копия
- Цикл разработки:
- Изменение рабочей копии
- Оформление изменений
- Синхронизация с хранилищем
- Предки, ветки, метки и прочее
Работа с DVCS на примере GIT/GitHub
- Настройка и создание ключей
Создание хранилища (git init)
Подробности:
- Клонирование
- Редактирование/синхронизация
- Публикация
- …получение
- …редактирование/синхронизация
- …публикация
- …
Особенности DVCS и GIT
- Локальное + опубликованное хранилища
- ⇒ Разделение синхронизации с локальным хранилищем (commit) и публикацией (push)
- Частый clone и ещё более частый merge с другими хранилищами
- Цельность истории
проблемы push -f, rebase и прочего
- Много хитрых операций над кодом
и вообще список команд
Необходимость внешнего информационного пространства (уведомление о чужой публикации, запрос на слияние/приём патча и т. п.)
Правила ведения DVCS-хранилища
- Одно изменение — одна синхронизация
- Комментирование изменений
- Публикация «работающих» версий
Приложение: волшебный .gitignore для Python от GitHub:
# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] # C extensions *.so # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ lib/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .cache nosetests.xml coverage.xml # Translations *.mo *.pot # Django stuff: *.log # Sphinx documentation docs/_build/ # PyBuilder target/
Д/З
Прочитать про git в Git HOWTO
(более подробно — Pro Git book)
Завести аккаунт на GitHub (он понадобится вам и в будущем )
Склонировать репозиторий PythonWinter2015-initial, отредактировать файл README.md и опубликовать результат (использование GitHub не обязательно)
Зарегистрироваться в гугл-группе uneex-python
Оповестить всех о созданном репозитории ( как это проще сделать, чтобы не засорять пространство? в отдельном топике?)