Различия между версиями 7 и 8
Версия 7 от 2019-06-04 11:10:40
Размер: 5264
Редактор: FrBrGeorge
Комментарий:
Версия 8 от 2019-06-04 11:12:20
Размер: 5262
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 2: Строка 2:
Строка 4: Строка 3:
Строка 7: Строка 5:
 '''TODO'''
По-хорошему, надо каждый коммит сопроводить комментарием.
 . '''TODO''' По-хорошему, надо каждый коммит сопроводить комментарием.
Строка 12: Строка 9:
Строка 15: Строка 13:
Строка 16: Строка 15:

Объектный подход, 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 и его объекты

  • Взять за основу вот эту заготовку и доделать в ней следующее:

    1. скопировать 06_canvas.py в 06_идентификатор.py, как это было в прошлом задании

    2. забрать все элементы управления в единый Frame и сделать так, чтобы они не ездили при изменении размера

    3. Сделать так, чтобы индикатор цвета был нужного цвета :)

      • (необязательно) …и чтобы имя этого цвета было видно
      • (необязательно) переделать его в Entry и задать проверку правильность ввода

    4. Завести второй элемент Canvas и научиться копировать все элементы из первого во второй и обратно

    5. Сделать кнопки обнуления элементов в Canvas-ах
    6. Сделать запись в файл и чтение из файла с помощью tkinter.filedialog

    7. Сделать с помощью Canvas.find_closest «таскание» правой кнопкой (Button 3) уже имеющихся объектов в классе Paint

    8. (необязательно) резвиться дальше: рисовать нее только отрезки, генерировать растровое изображение, перекладывать из одного канваса в другое и т. п.!
  • Сформировать pull-request

LecturesCMC/PythonDevelopment2019/06_CanvasAndObjects (последним исправлял пользователь FrBrGeorge 2019-06-04 11:14:34)