912
Комментарий:
|
5264
|
Удаления помечены так. | Добавления помечены так. |
Строка 5: | Строка 5: |
== Про коммит == | В принципе, всё, что хотелось рассказать, есть [[https://github.com/FrBrGeorge/PythonDevelopment2019/commits/06_canvas|вот в этой ветке]], начиная с [[https://github.com/FrBrGeorge/PythonDevelopment2019/releases/tag/Lecture_06|этого места]] (Коммит c33c8a7, тег Lecture_06) |
Строка 7: | Строка 7: |
'''TODO''' По-хорошему, надо каждый коммит сопроводить комментарием. == Git == Итак |
|
Строка 8: | Строка 13: |
* Но коммит — это набор именно ''изменений'' * Несколько изменений (ханков) в одном файле тоже считаются изменениями |
* Коммит — это указание на некоторый набор файлов, которые в какой-то момент присутствовали в процессе разработки * Ветка — это последовательность коммитов с учётом того, какой файл предыдущего коммита в какой файл текущего превратился === Про теги === На commit-ID ссылаться неудобно, он не говорящий. Поэтому можно использовать[[https://git-scm.com/book/en/v2/Git-Basics-Tagging|теги]]. Теги бываю аннотированные и неаннотированные (то есть только метки или метки с каким-то пояснением). '''TODO''' === Про коммит === * При разработке программист рассматривает коммит не как список файлов, а как набор именно ''изменений'', которые с ними произошли (т. н. ханков) * Несколько изменений в одном файле считаются за несколько изменений :) * Сами ханки нигде не хранятся, они ''вычисляются'' всякий раз, когда программисту необходимо знать, чем один коммит отличается от другого. |
Строка 11: | Строка 26: |
* [[FrBrGeorge/Using_git_add_-p|Пример]] ---- * Если ханки получены не просто `append -p`, а, например, последующим редактированием, то они могут даже быть в одном и том же месте |
* [[FrBrGeorge/Using git add -p|Пример]] — большая статья, пересказывающая лекцию, стоит сходить по ссылке :) |
Строка 16: | Строка 29: |
'''TODO''' | * '''ВАЖНО''' начать группироваться с кем-нибудь в мини-группу для написания и сдачи семестрового проекта (2-3 человека в зависимости от размера задачи) * Подробности по мини-группе и требованиям к проекту пожзе * Прочитать про различные виждеты `tkinter` в любом имеющемся учебнике: ([[https://tkdocs.com/tutorial/index.html|документация]], [[http://grep.cs.msu.ru/infohost.nmt.edu|tcc|help|pubs|tkinter/web/index.html|Нью-Мехико тек]], [[https://ru.wikiversity.org/wiki/Курс_по_библиотеке_Tkinter_языка_Python|Викиверситет]] * В частности, прочитать про `Canvas` и его объекты * Взять за основу [[https://github.com/FrBrGeorge/PythonDevelopment2019/releases/tag/Homework-29.03.2019|вот эту заготовку]] и доделать в ней следующее: 1. скопировать `06_canvas.py` в `06_идентификатор.py`, как это было в прошлом задании 1. забрать все элементы управления в единый `Frame` и сделать так, чтобы они не ездили при изменении размера 1. Сделать так, чтобы индикатор цвета был нужного цвета :) * (необязательно) …и чтобы имя этого цвета было видно * (необязательно) переделать его в `Entry` и задать проверку правильность ввода 1. Завести второй элемент `Canvas` и научиться копировать все элементы из первого во второй и обратно 1. Сделать кнопки обнуления элементов в Canvas-ах 1. Сделать запись в файл и чтение из файла с помощью `tkinter.filedialog` 1. Сделать с помощью `Canvas.find_closest` «таскание» правой кнопкой (Button '''3''') уже имеющихся объектов в классе `Paint` 1. (необязательно) резвиться дальше: рисовать нее только отрезки, генерировать растровое изображение, перекладывать из одного канваса в другое и т. п.! * Сформировать pull-request |
Объектный подход, Canvas и структура коммита
Canvas
В принципе, всё, что хотелось рассказать, есть вот в этой ветке, начиная с этого места (Коммит c33c8a7, тег Lecture_06)
TODO По-хорошему, надо каждый коммит сопроводить комментарием.
Git
Итак
- Git хранит объекты (а не изменения в них)
- Коммит — это указание на некоторый набор файлов, которые в какой-то момент присутствовали в процессе разработки
- Ветка — это последовательность коммитов с учётом того, какой файл предыдущего коммита в какой файл текущего превратился
Про теги
На commit-ID ссылаться неудобно, он не говорящий. Поэтому можно использоватьтеги. Теги бываю аннотированные и неаннотированные (то есть только метки или метки с каким-то пояснением).
TODO
Про коммит
При разработке программист рассматривает коммит не как список файлов, а как набор именно изменений, которые с ними произошли (т. н. ханков)
Несколько изменений в одном файле считаются за несколько изменений
Сами ханки нигде не хранятся, они вычисляются всякий раз, когда программисту необходимо знать, чем один коммит отличается от другого.
- Можно, например, сделать много неатомарных изменений, а потом разделить их на отдельные коммиты:
Пример — большая статья, пересказывающая лекцию, стоит сходить по ссылке
Д/З
ВАЖНО начать группироваться с кем-нибудь в мини-группу для написания и сдачи семестрового проекта (2-3 человека в зависимости от размера задачи)
- Подробности по мини-группе и требованиям к проекту пожзе
Прочитать про различные виждеты tkinter в любом имеющемся учебнике: (документация, [[http://grep.cs.msu.ru/infohost.nmt.edu|tcc|help|pubs|tkinter/web/index.html|Нью-Мехико тек]], Викиверситет
В частности, прочитать про Canvas и его объекты
Взять за основу вот эту заготовку и доделать в ней следующее:
скопировать 06_canvas.py в 06_идентификатор.py, как это было в прошлом задании
забрать все элементы управления в единый Frame и сделать так, чтобы они не ездили при изменении размера
Сделать так, чтобы индикатор цвета был нужного цвета
- (необязательно) …и чтобы имя этого цвета было видно
(необязательно) переделать его в Entry и задать проверку правильность ввода
Завести второй элемент Canvas и научиться копировать все элементы из первого во второй и обратно
- Сделать кнопки обнуления элементов в Canvas-ах
Сделать запись в файл и чтение из файла с помощью tkinter.filedialog
Сделать с помощью Canvas.find_closest «таскание» правой кнопкой (Button 3) уже имеющихся объектов в классе Paint
- (необязательно) резвиться дальше: рисовать нее только отрезки, генерировать растровое изображение, перекладывать из одного канваса в другое и т. п.!
- Сформировать pull-request