Python Education
Closed channel
Обучаем Python как маленьких, так и взрослых Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: telega.in/c/python_educa РКН: clck.ru/3MnbNV
Show more8 736
Subscribers
No data24 hours
-347 days
-8130 days
Posts Archive
8 736
Принципы программирования. Часть 3
Продолжаем разбор принципов программирования
SRP
Single Responsibility Principle - принцип единого уровня ответственности. Похож на SLAP, но больше касается ООП. Каждый объект должен выполнять свою функцию. Нужен новый функционал? Значит надо создать новый объект. Очень просто об этом говорить в небольших проектах, но чем сложнее проект, тем труднее его разбить на отдельные и независимые блоки кода.
OCP
Open-Closed Principle - принцип открытости к расширению. Говорит о том, что код должен расширяться без переписывания и изменения старого. На первый взгляд кажется, что конфликтует с YAGNI, но это не так. YAGNI говорит, что нельзя писать код, который не используется сейчас. OCP затрагивает более глубокие архитектурные вещи.
8 736
Аннотации типов
Python — динамически типизированный язык. Вам не нужно указывать тип данных при определении переменных, функций, классов и т.д.
Это позволяет ускорить процесс разработки. Однако мало что раздражает так сильно, как ошибка времени выполнения, возникшая из-за простого несовпадения типа.
С версии Python 3.5 при определении функции можно добавлять аннотации типов
Можно даже определять псевдонимы типов
Хотя их использование опционально, с помощью аннотаций типов код можно сделать более понятным.
Также они позволяют использовать инструменты для проверки типов, чтобы отлавливать ошибки TypeError.
8 736
Принципы программирования. Часть 2
В прошлом посте мы начали разбирать принятые принципы программирования и их аббревиатуры.
YAGNI
You Aren’t Gonna Need It - тебе это не понадобится. Неправильно создавать места только для будущего расширения кода. Неизвестно точно, какой именно понадобится функционал и возможно код будет мешать новому (речь не идет о заглушках на заказанный функционал).
SLAP
Single Level of Abstraction Principle - принцип единого уровня абстракций. Код должен оставаться поддерживаемым, особенно функции. Если функция не помещается на экран, то ее следует разбить на несколько других функций.
«Функции должны выполнять только одно действие, но выполнять его хорошо» (Роберт Мартин). В частности напоминает принцип DRY, но сильно отличается, код не обязательно должен повторяться. Но должен быть разбит на логические блоки, для большего удобства
8 736
sh
Python — отличный скриптовый язык. Но иногда стандартные библиотеки os и subprocess вызывают только головную боль.
Библиотека sh может стать приятной альтернативой.
Она позволяет вызывать любую программу как обычную функцию, что полезно для автоматизации различных задач исключительно с помощью Python
Библиотека sh поддерживает только платформы Linux и macOS; для работы на Windows вам придётся поискать другой инструмент.
8 736
Принципы программирования. Часть 1
Хорошие программисты пишут и рабочий, и качественный код. Сейчас существуют главные правила написания хорошего кода, им даже придуманы аббревиатуры. Их сейчас и разберем.
KISS
Keep It Stupid Simple - придерживайся простоты. Хороший пример этому - побитовые операции и регулярки. Это не означает, что их нельзя использовать. Но не надо использовать их там, где это не нужно. Чем проще написан код, тем легче его поддерживать вам и вашим коллегам.
DRY
Don’t Repeat Yourself - не повторяйся. Не следует дублировать код. Вместо копирования нужно создать функцию. В будущем это упростит отладку и изменение кода. Особенно в больших программах.
8 736
__repr__
При определении класса или объекта полезно добавлять «официальный» способ представления объекта строкой. Это сильно упрощает отладку.
Метод __repr__() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод __str__() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
8 736
Редактор кода
Необходимый инструмент разработчика - редактор кода. Он должен быть удобен, функционален и главное — быстр.
Что выбрать новичкам?
Новичкам я советую использовать стандартную программу. Да, вы не ослышались. Так вы не будете видеть подсказок (и будете запоминать быстрее). Но если не хотите усложнить себе жизнь, то читайте дальше.
Что брать продвинутым?
Лучшие редакторы, что существуют — PyCharm и VS code. И первый лучше. Все нужные функции сразу есть, все удобно расставлено и никаких танцев с бубном для установки. Из минусов: относительно слабые компьютеры могут испытывать проблемы.
А вот VS code очень легок и пойдет на любом ПК. И главное, что устанавливая плагины, можно сделать еще более мощную машину, но нужна ли она вам? Лично я поплясал с бубном для удобного мне вывода и дебагинга.
Есть и другие редакторы кода, но эти лучшие и предоставляют весь функционал. От себя советую PyCharm. Но если ПК не позволяет, то VS code лучшая замена.
8 736
Queue
Python поддерживает многопоточность, в использовании которой помогает стандартный модуль Queue.
Он позволяет реализовывать такую структуру данных, как очередь. Очереди позволяют добавлять и извлекать элементы согласно определённому правилу.
Очереди «первым пришёл — первым ушёл» («first in, first out», FIFO) позволяют извлекать объекты в порядке их добавления. Из очередей «последним пришёл — первым ушёл» («last in, first out», LIFO) можно извлекать последние добавленные объекты.
Наконец, приоритетные очереди позволяют извлекать объекты согласно порядку их сортировки.
Здесь можно посмотреть на пример использования очередей в многопоточном программировании на Python.
Available now! Telegram Research 2025 — the year's key insights 
