5537
Комментарий:
|
6856
|
Удаления помечены так. | Добавления помечены так. |
Строка 35: | Строка 35: |
== Коротко о разработке == | == О разработке == |
Строка 42: | Строка 42: |
* что меняется | * раздельные yнаборы модулей * только манипуляция `$PATH`, никакой изоляции/виртуализации * стандартные именования (python вместо python3 и т. п.) * `. bin/activate` * `deactivate` |
Строка 45: | Строка 49: |
== Коротко о VCS/DVCS == [[RW:Система_управления_версиями|VCS]]: * [[RW:Revision_Control_System|rcs]] * [[RW:CVS]] * [[RW:Subversion]] * [[https://fossil-scm.org|Fossil]], [[WP:Comparison_of_version-control_software|чёрт в ступе]] === Цикл работы с VCS === 1. Синхронизация 1. Редактировние 1. Оформление коммита 1. Публикация |
== Об IDE == Недостаток «больших» IDE в плане обучения: * Ориентация на тех, кто ''уже'' понимает процесс разработки * Готовая преднастройка того, в чём планируется разобраться * Эффективно при большом объёме работ |
Строка 57: | Строка 55: |
Проблема: совместная работа над одним корпусом текстов * Интерференция изменений * Изменения опубликованных исходников задним числом === DVCS === * [[http://darcs.net|Darcs]] * [[RW:Mercurial]], [[RW:Bazaar]] * bitkeeper, [[RW:Git]] === Цикл работы с DVCS === 1. Синхронизация 1. Разработка (в цикле) 1. Редактировние 1. Оформление коммита 1. Публикация Минимальные правила: * Одно изменение — один коммит * (по возможности не вносящий регрессий) * Описательные commit message * Ответственная публикация Остальные правила (ветки, теги и т. п. — определяются дисциплиной разработки) Структура: * Публичный репозиторий * Локальная рабочая копия и ''полный'' локальный репозиторий Пример: 1.#0 `init`/`clone` (развёртывание) * («проблема зарождения жизни»: создание репозитория для ''публикации'') 1. `pull` (синхронизация) 1. Разработка 1. Редактирование 1. `add` (регистрация изменений) 1. `commit` (фиксация изменений) 1. `push` (публикация) Редактор для commit message |
Тем не менее: * !PyCharm, !WingIDE, !VSCode * [[https://www.spyder-ide.org|Spyder]], [[https://github.com/pyscripter/pyscripter|PyScripter]] * [[http://geany.org|Geany]] и просто UI-специфичные редакторы с поддержкой языка, например [[https://kate-editor.org|Kate]] * [[https://docs.python.org/3/library/idle.html|IDLE]] — часть дистрибутива Python * командная строка, iPython, bPython и т. д. ## Не успели ## == Коротко о VCS/DVCS == ## [[RW:Система_управления_версиями|VCS]]: ## * [[RW:Revision_Control_System|rcs]] ## * [[RW:CVS]] ## * [[RW:Subversion]] ## * [[https://fossil-scm.org|Fossil]], [[WP:Comparison_of_version-control_software|чёрт в ступе]] ## === Цикл работы с VCS === ## 1. Синхронизация ## 1. Редактировние ## 1. Оформление коммита ## 1. Публикация ## ## Проблема: совместная работа над одним корпусом текстов ## * Интерференция изменений ## * Изменения опубликованных исходников задним числом ## ## === DVCS === ## * [[http://darcs.net|Darcs]] ## * [[RW:Mercurial]], [[RW:Bazaar]] ## * bitkeeper, [[RW:Git]] ## ## === Цикл работы с DVCS === ## 1. Синхронизация ## 1. Разработка (в цикле) ## 1. Редактировние ## 1. Оформление коммита ## 1. Публикация ## ## Минимальные правила: ## * Одно изменение — один коммит ## * (по возможности не вносящий регрессий) ## * Описательные commit message ## * Ответственная публикация ## ## Остальные правила (ветки, теги и т. п. — определяются дисциплиной разработки) ## ## Структура: ## * Публичный репозиторий ## * Локальная рабочая копия и ''полный'' локальный репозиторий ## ## Пример: ## 1.#0 `init`/`clone` (развёртывание) ## * («проблема зарождения жизни»: создание репозитория для ''публикации'') ## 1. `pull` (синхронизация) ## 1. Разработка ## 1. Редактирование ## 1. `add` (регистрация изменений) ## 1. `commit` (фиксация изменений) ## 1. `push` (публикация) ## ## Редактор для commit message ## |
Python и открытая разработка
- (повторение) Свободное лицензирование и Python
- ⇒ Возможность открытой разработки
- Открытая разработка:
- Низкий порог входа-выхода
- Произвольная мотивация
- Динамическая профессиональная иерархия
- Свободное распространение как условие развития
- Распределённая совместная разработка
- Информационное пространство (документация/взаимодействие)
Сообщество Python и разработка
- Сам Python:
2021-02-10: 288,767 projects, 2,378,715 releases, 3,869,692 files, 484,667 users
Несколько сотен несвободных проектов, остальные — свободные
https://readthedocs.org — документация
- (никто не мешает использовать GH или вообще что угодно)
История с pip search (баг, картинка)
pypisearch (наверное)
- См. выше про packaging
- Разработка стандартов (egg, wheel)
- Поддержка утилит (pip, setuptools, venv, pipenv)
- …
О разработке
- Структура каталогов с Python и системными модулями
Linux: пользовательские модули в ~/.local/lib/python3
- Куда приезжают .py и запускаемые файлы
Установка модуля pyfiglet
- раздельные yнаборы модулей
только манипуляция $PATH, никакой изоляции/виртуализации
- стандартные именования (python вместо python3 и т. п.)
. bin/activate
deactivate
Pipenv (если успеем)
Об IDE
Недостаток «больших» IDE в плане обучения:
Ориентация на тех, кто уже понимает процесс разработки
- Готовая преднастройка того, в чём планируется разобраться
- Эффективно при большом объёме работ
Тем не менее:
PyCharm, !WingIDE, !VSCode
Geany и просто UI-специфичные редакторы с поддержкой языка, например Kate
IDLE — часть дистрибутива Python
- командная строка, iPython, bPython и т. д.
Д/З
Зарегистрировать публичный репозиторий (SourceHut, GitHub, GitLab, где угодно)
- Установить и научиться пользоваться командной строкой git в объёме
Для windows рекомендуется официальый клиент, в состав которого входит unix-подобная командная строка — для совместимости с лекциями