О технологиях программирования
План рассказа
- Несколько слов об истории: структурное программирование, мифический человекогод.
- Как устроен подход сверху-вниз.
- Как устроен подход снизу-вверх.
- Первое vs второе? прототипы!
- Тестирование
- Оформление кода
style guide – это
- Правила хорошего тона
- Типичные ошибки, угловатости языка
- Стратегически значимые мелочи
- style guide говорит:
- языки (названия переменных, файлов, комментарии; локальный словарь, общепринятые сокращения), кодировки (текста; переносов строк)
стиль именования (переменные и функции маленькими через подчёркивания, классы camel case, модули короче 8 букв; переменная – существительное, функция – глагол пов. накл, предикат is_, has_, класс – существительное; допустимые значения для однобуквенных переменных; допустимые однобуквенные переменные; название в зависимости от типа переменной (локальная, глобальная, специальная), данных)
- ширина экрана, переносы длинных строк, отступы (tab vs space; сколько; в каких случаях как)
- длина тела функции, соотношение кода, комментариев и тестов, пустые строки
- пробелы внутри строки
- о чём можно в комментариях: WHAT(+), WHY(+-), HOW(-)
порядок частей кода (сначала import, потом def, потом class, потом if __name__ == "__main__")
- типичные ситуации: типичные ошибки, угловатости языка, стратегически значимые мелочи
- Какие темы хотите на оставшиеся три занятия?
- Ничего?
- pickle
- os, glob, subprocess
- urllib
- bio*
- pymol
- конструкции языка: with, мелочи про функции
- list comprehensions
- функциональное программирование и декораторы
Контрольная работа
- Имя:
Напишите функцию most_repeated(items), которая получает на вход список чисел и строк и возвращает из них список тех, которые встречаются наибольшее число раз. Например:
Напишите функцию inverse(x), которая возвращает 1/x для случаев, когда это возможно, и выбрасывает исключение, если это невозможно (деление на ноль).
Упражнения
- Напишите и согласуйте ТЗ и ПР.