Практика программирования на Python 3, лекция №13

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

Никогда бы в здравом уме не прогуливал бы эти лекции. Очень радует, что автор их выкладывает для общего обозрения.

jefferman
Автор

После этой останется обработать ещё одну лекцию, и на этом семестровый учебный курс "Практики программирования с использованием Python" будет закончен.

tkhirianov
Автор

Тайм-коды: Контрактное Проектирование
1:00 поиск ошибок в коде. Как уменьшить количество ошибок в программе. Способы Декомпозиции (сверху вниз от проблемы к её реализации). модули - классы - функции - методы. Проблемы рассогласованности интерфейса (Ошибки во взаимодействии этих частей). Например, у функции решение: документ-строка.
7:00 Композиция (интеграция). Обратно декомпозиции (структурное, модульное, ООП). 2 способа решения:
1) исп. компилируемые языки (со строгой проверкой типов)
2) требования к функции, её обязательства
13:00 предусловие (проверки на тип, допустимые значения)
20:13 постусловие (return)
20:45 2) Контракт
24:35 3 вида контрактов:
- Предусловие
- Постусловие
27:28 - Инварианты (для объектов)
28:30 проектировщик должен определить формальные, точные и верифицируемые спецификации интерфейсов для компонентов системы.
30:07 язык Eiffel (Эйфель)
31:04 основы проектирования по контракту. Для поставщика и получателя (клиента). Обязательства (предусловие) и выгоды (постусловие)
35:45 проверка контрактов самостоятельно (не пользователя, а программиста)
assert condition # Утверждение. на корректность работы программы.
39:15 AssertionError
41:33 if__debug__: # проверка этих условий проходит только в процессе отладки программы
42:14 assert condition, message
49:48 отключение утверждений
50:36 адекватное использование утверждений
51:58 внутренний инвариант (internal invariant), инвариант цикла, инвариант потока выполнения (control-flow invariant), инвариант класса (class invariant)
53:33 from contracts import contract # Способ реализации контрактов. Библиотека PyContracts.
54:15 проверка предусловия # @contract(n = 'int, >= 0')
1:01:37 проверка постусловия # @contract(returns = 'int, >=0')
1:04:42 3 варианта описания контракта функции:
1) через декоратор с аргументами (@ contract)
1:06:22 2) через документ-строки (using docstrings)
1:07:35 reST (format ReStructuredText Python Docstrings PEP 287)
1:08:11 3) через аннотации (Python 3) # @contract def f(x: int) -> int:
1:10:56 Contracts language

iritaka
Автор

Кому не интересно смотреть эти лекции? Лучший лектор...

high-level-content-maker
Автор

Спасибо за самый лучший курс по Python на просторах интернета.

kirill
Автор

*ТАДАМ!!!*
Давно закончил универ, сейчас смотрю ваши лекции просто чтобы обновить знания )))

qa
Автор

Сразу ставлю лайк, хоть пока и не посмотрел. Тимофей, Вы лучший лектор.

LastWeg
Автор

Нет, не нудятина!
Больше спасибо за труд!!
Но хотелось бы больше внимания уделить функциям и классам. В общем, ООП.

galogramma
Автор

Вы очень хорошо припадаете, просто молодежь в настоящее время большинство ленивые и хотят поспать) Удачи вам, и вашему каналу!

runcode.ru.
Автор

" One or more issues caused the setup to fail ... " и т.д. Данная ошибка происходит сразу же при открытии файла установки. Каким способом её решить можно?

Владимир-змч
Автор

хотелось бы объяснения для тех кто в танке, в чем практический смысл этих контрактов. для облегчения поиска ошибок?

ВикторМорс-зъ
Автор

Классный учитель. Жаль, что по машинному обучению у Тимофея нету видео :(

Автор

просмотр этого курса, самая продуктивная трата времени.
Спасибо!

MrCursedsin
Автор

вам нужно сделать спонсирование канала

russoturisto
Автор

Подскажите как подтянуть математику, какие книжки взять и какие каналы смотреть

ImmortalBest
Автор

По последним картинкам таки понял, что питон интерпретируется согласно законам британского прицендентного права.

bdenvy
Автор

Какая нибудь фирма послала ракету с боеголовкой. Будем искать нарушителя.

bdenvy
Автор

Тимофей, я кажется знаю, почему низкое посещение. По моему мнению, первокурсникам стоило преподавать базовые основы и простые задачки программирования, а не этот курс с крутым разгоном в ооп, графическую разработку, тестирование, кодинг стайл и внутреннюю кухню IT разработки. Информация, безусловно ценная, и вы доносите ее интересно. Просто для первокурсников с непрофильным программированием ЭТОТ курс сложный, и я уверен для многих не было понятно зачем он вообще.

ДимаИвашенцев-юш
Автор

А вы занимаетесь фрилансом ?)
Есть программа на C#, ее нужно доработать, возможно вам будет интересно)
Телеграм @DarkEssenceTV, или напишите, как с вами связаться)

RubyLive
Автор

Программу на ZX Spectrum Basic не надо было отлаживать. Если программист не держит в голове весь алгоритм, то ему надо заниматься другим делом. Теперь простой калькулятор занимает мегабайты. Раньше вселенную (Elite) могли засунуть в 48 кб. И это Физтех. Отбираем пионов для Пентагона?
Мимо простой инженер-электроник (на самом деле ведущий).

bdenvy