5576
Комментарий:
|
6666
|
Удаления помечены так. | Добавления помечены так. |
Строка 35: | Строка 35: |
* [[https://man.sr.ht/man.sr.ht/|Wiki/CMS]] прямо в репозитакии | * [[https://man.sr.ht/man.sr.ht/|Wiki/CMS]] прямо в репозитории |
Строка 39: | Строка 39: |
* Разделение на информационные списки и devel-списки для обмена патчсетами | |
Строка 43: | Строка 44: |
А ещё есть [[https://man.sr.ht/builds.sr.ht/|CI]], но… | А ещё есть [[https://man.sr.ht/builds.sr.ht/|CI]], но он требует ресурсов и либо свой, либо платный Пример sourcehut показывает, что * Все изменения можно выполнять, формировать и применять локально, а инфоканал служит только инструментов передачи * Всё взаимодействие также выполнять через почту, при наличии ''списка рассылки'' (статических, для подписавшихся, или динамических, для обсуждения ошибок) Отличие !GhiHub, !BitBucket, !GitLab и прочего: * Информационные каналы способ их использования привязан к движкам сайтов * Merge request vs. pull request vs. что-то ещё |
Строка 70: | Строка 79: |
* '''TODO''' простейший пример (если получится простой) | * Пример (если получится простой) '''TODO''': доделать это: https://git.sr.ht/~frbrgeorge/GradeProject2021 |
Взаимодействие посредством email; этапы разработки GUI-приложения
- Неверное утверждение
- «Git не подразумевает канала обмена информацией»
Потому что email.
Git и почта
Повторение: git-format-patch → передача патчей → git-am
Немного про почту
- обмен сообщениями: SMTP и STMP+SSL
- Oldschool-почта
- доступ к почтовым ящикам: IMAP (POP3, …)
- Современная почта:
понятие «почтовый клиент» (TODO запилить опрос в ТГ ☺)
- Списки рассылки
Что нужно для Git
CLI: отправка (нам достаточно настроить git-send-email)
- CLI: получение
(с помощью Imap-CLI реализовать не удалось)
- Т. е. реально проще скопипастить
Исключение: sourcehut формирует URL, пригодный для скачивания, после чего достаточно любой утилиты,
WEB-почта (git format patch → передача патчей → git am)
Взаимодействие и информационное пространство
На примере sourcehut, чтобы отличить то, что присуще Git от инициатив GutHub-а.
Что нужно помимо git?
- Статическое инфопространство:
- Общение/обмен информацией:
- Разделение на информационные списки и devel-списки для обмена патчсетами
- Обработка ошибок, планирование работ
А ещё есть CI, но он требует ресурсов и либо свой, либо платный
Пример sourcehut показывает, что
- Все изменения можно выполнять, формировать и применять локально, а инфоканал служит только инструментов передачи
Всё взаимодействие также выполнять через почту, при наличии списка рассылки (статических, для подписавшихся, или динамических, для обсуждения ошибок)
Отличие GhiHub, BitBucket, GitLab и прочего:
- Информационные каналы способ их использования привязан к движкам сайтов
- Merge request vs. pull request vs. что-то ещё
Tkinter и не только
Чего не было сказано про tkinter:
Меню, в том числе контекстные
- Всякие иные виджеты
ttk (см. также tkinter.ttk) — поддержка тем
Что вместо tkinter?
PyQt, PyGtk, WxPython, Kiwy, …
(Внезапно!) Brython, Питон, написанный на JS + доступ к DOM броузера
- Пример кода на brython
- Пример кода на brython
Этапы разработки (GUI?) приложения
- Интерфейсная модель
Как будут выглядеть составные части проекта, и что они должны делать с точки зрения пользователя
Пользователь — это тот, кто пользуется вашим проектом (т. е. если вы пишете библиотеку, то пользователь — это программист, и интерфейс — это API)
- В случае сложной модели рекомендуется делать скетчи типа «нажал туда-то показалось то-то, в результате изменилось вот это»
- Стараться не формулировать постановку задачи в терминах инструментов её решения (т. е. не говорить про события, обработчики, переменные, типы данных и т. п.)
- Хоть на бумажке (чаще всего самый быстрый способ)
- Заглушки — фиксируют место в коде, позволяют трассировать
- Реализация
- Имеет смысл разделять логику и интерфейс, в т. ч. для тестов
MVC и ему подобные
- Например, пользователь нажал кнопку «Execute»: обработчик кнопки не обязана знать, какое именно действие при этом нужно выполнить, а само действие — о том, что оно выполняется именно по кнопке «Execute»
- Пример (если получится простой)
TODO: доделать это: https://git.sr.ht/~frbrgeorge/GradeProject2021
Д/З
TODO