Программирование с нуля
4 subscribers
66 photos
2 videos
5 files
93 links
Download Telegram
Я первой книгой прочел книгу Zed A. Show «Легкий способ выучить Питон». И получил там базовое представление о языке. Затем следовало бы прочитать книгу «Философия ООП» Вайсфельда (я прочел ее раньше), чтобы ориентироваться в обьектном проектировании.

После них книга Марка Лутца стала закономерным следствием первых двух. Изложение книги качественное и подробное … именно так и надо. Лутц также дает базовое представление о языке. Да, это еще не справочник, но это уже совсем другой уровень (я бы сказал второй) базового представления !! Из полного перечня инструментальных средств Лутц предлагает посмотреть примеры, представляющие собой каждое из их основной совокупности. Да, книга не случайно в разряде Бестселлера и Хита продаж !
Потому что функция должна делать что-то одно. Если функция выводящая что-то на экран, то у неё есть в имени слово print и внутри неё можно выводить на экран. А если функция просто что-то куда-то добавляет, то там в имени нет print и поэтому и выводить она ничего не должна.

То, что функция должна делать что-то одно, называется “функциональной прочностью модуля по Майерсу”. Функция должна отвечать точно на вопрос “что делает эта функция?”, ответ для твоей функции такой - “дополняет множество городов”. То есть там нет такого “дополняет множество городов И выводит города на экран И чистит кошку от шерсти И ходит в магазин”. Только одно она делает и всё.

То, что функция не должна ничего выводить, называется “чистотой функции”. Чистая функция - это функция, которая не цепляет ничего больше, кроме своих данных. То есть она не цепляет экран, чтобы вывести что-то на него, не цепляет файлы и не держит их открытыми, не обращается к другим функциям и не обращается к каким-то общим данным, которые доступны другим частям программы. Она работает только со своими данными и только у себя внутри.

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