Диджитализируй!
27.6K subscribers
459 photos
54 videos
11 files
530 links
Авторский канал Алексея Голобурдина о разработке ИТ систем и прочем важном

ПРАВИЛА — https://xn--r1a.website/t0digital/200

ЛАЙВ-КАНАЛ — @smthisgoingon

Дать много деняк — sterx@rl6.ru

Роскомнадзор: https://vk.cc/cJmDDB
Download Telegram
Забрал в ДМК наконец. Хорошо, говорит, что вам досталась, а то уже разобрали все. Ухмыляюсь — похоже, не без моей помощи разобрали:) Обещают ещё допечатать.

#books #IT #python #backend
👍207🔥34😁7🎉4🤔1
Вдогонку — спрашивают, а что почитать по пайтону для начинающих или что почитать для подготовки к твоему курсу, если есть время и возможность.

2 книги.

* Простой Python, Билл Любанович, 2 издание
* Начинаем программировать на Python, Гэддис Тони, 5 издание

Скоро (ннннаверное!) будет видео с обзором книг по Python вообще, там подробнее расскажу. Но кто хочет подготовиться к курсу и не умеет пока уверенно в Python, будет полезно почитать эти книги. Если вы совсем новичок, то начните со второй. Если уже что-то умеете — возможно вам будет достаточно первой.

#books #python
106👍48🔥41
Telegram бот @donate позволяет подключать донаты в Telegram, а также создавать платные закрытые каналы по подписке. И всем-то он хорош, да только не умеет ограничивать доступ в чат, привязанный к платному каналу. Это-то мы и пофиксим собственным решением — задействуем Telegram Bot API, Telegram API и Python с библиотекой Telethon. Вжух!

https://youtu.be/yBw1b2hFI_4

Комментарии на YouTube, пожалуйста!

#python #IT #youtube
👍124🔥214
Большое интервью Гвидо ван Россума час назад вышло у Лекса Фридмана

https://www.youtube.com/watch?v=-DVyjdw4t9I

0:00 - Introduction
0:48 - CPython
6:01 - Code readability
10:22 - Indentation
26:58 - Bugs
38:26 - Programming fads
53:37 - Speed of Python 3.11
1:18:31 - Type hinting
1:23:49 - mypy
1:29:05 - TypeScript vs JavaScript
1:45:05 - Best IDE for Python
1:55:05 - Parallelism
2:12:58 - Global Interpreter Lock (GIL)
2:22:36 - Python 4.0
2:34:53 - Machine learning
2:44:35 - Benevolent Dictator for Life (BDFL)
2:56:11 - Advice for beginners
3:02:43 - GitHub Copilot
3:06:10 - Future of Python

#IT #Python
👍176🔥509🎉3🥰2
Внезапно узнал, переустанавливая вчера poetry, что он не устанавливается, установщик это Python скрипт и он падает с SSL: CERTIFICATE_VERIFY_FAILED на домен pypi.org.

Локализовав проблему, воспроизвёл её на минимальном коде:

import urllib.request

url = "https://pypi.org"
with urllib.request.urlopen(url) as f:
print(f.read(1))


… и падает SSL ошибка. То есть все HTTPS запросы не алё.

Погуглив, выяснилось, что Python на маке вообще, оказывается, с версии чуть ли не 3.6 не дружит с сертификатами и, чтобы всё было чётенько, после установки надо подшаманить. Я Python из исходников собираю по привычке, возможно, если ставить из pkg установщика, такой проблемы нет, не в курсе.

Итого, накатываем пакет certifi на ваш используемый интерпретатор:

python3.10 -m pip install certifi


И добавляем три переменные окружения, прописав их в .bashrc или в .zshrc в зависимости от вашей оболочки:

CERT_PATH=$(python3.10 -m certifi)
export SSL_CERT_FILE=${CERT_PATH}
export REQUESTS_CA_BUNDLE=${CERT_PATH}


и ура-ура!

Видос про Poetry у меня был, https://youtu.be/KOC0Gbo_0HY, кто не в курсе что это — оч рекомендую!
Сейчас еще один материал готовлю по нему:)

#IT #python
👍21862🔥14🥰3😁1
Поговорим об управлении зависимостями в Python-проектах и создании сервисов с Poetry!

https://youtu.be/SMYdy7dViiw

#IT #python #backend
👍109🔥7🎉54😁4
Иногда у нас-человеков больше информации о типе, чем у статического проверятора типов в Python или TS. Проверятор говорит — вот тут у тебя несоответствие типов, ай-яй-яй, а ты-то знаешь, что всё чётенько.

Для этого придумано приведение типов, в TS реализуется чаще всего с as, в Python с from typing import cast.

В TS реализовано бодрее, чем в Python — TS позволяет только понижать типы с более общего до более конкретного (например, с HTMLElement до HTMLDivElement):

const my_div = document.querySelector(".smth") as HTMLDivElement


Теперь TS будет знать, что в my_div именно div, а не просто какой-то общий html элемент.

А вот привести словарь к строке не позволит:

const structure = {name: "Иваныч"}
console.log((structure as string).toUpperCase())


Скажет, что ты что-то не то делаешь, малый.

А в Python происходит просто заглушение проверятора типов, без какой-то проверки возможности приведения типа:

from typing import cast

def upper(s: str):
return s.upper()

structure = {"name": "Иваныч"}

upper(cast(str, structure))


Проверятор типов это пропустит и оно весело грохнется уже в рантайме.

Впрочем, TS тоже можно обмануть — но это надо писать дополнительно:

const structure = {name: "Иваныч"}
console.log(((structure as unknown) as string).toUpperCase())


Это тоже весело грохнется уже в рантайме.

#it #python #typescript
👍117🔥8😁71🥰1
https://youtu.be/haqLhNN5ZdY

Поговорим о возможностях аспектно-ориентированного программирования в Python, о внедрении зависимостей DI и DI-контейнерах в Python на примере punq, а также в целом о Java подходах vs Python подходах к реализации архитектуры.
Из разборов Ботаним!, 11 глава книги Чистый код, Роберт Мартин.

#youtube #IT #python #codebetter #tools #ботаним
👍69🔥126
Зззнатокам Python хитрый вопрос!

Какой тип поставить у параметра field функции print_user_field, чтобы последняя строка при проверке типа показала ошибку? Перечислять второй раз поля User — нельзя, ибо делает возможным рассинхрон имён полей в классе и отдельном их перечислении.

Код скопировать можно здесь.

Вот так это делается на TS

А как на Python, м:)?

#IT #python #typescript #codebetter
👍38🔥5😁4
Почему перечислять второй раз поля — плохо? Потому что возможна ситуация на скриншоте ⬆️ — поле name в User переименовалось в username, а в типах параметра field осталось name. Система проверки типов не покажет ошибку при вызове print_user_name(user, "name"), а хотелось бы ошибку увидеть, так как поля name уже нет.

Почему вынести эту проверку на переданное значение field в блок try/except — плохо? Потому что это уведёт ошибку в runtime, а надо минимизировать ошибки в рантайме, ошибки в рантайме = грустящие пользователи.

Систематических способа минимизировать ошибки в рантайме я знаю два, ТТ — как Тульский Токарев, только Типизация и Тесты.

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

Можно ли обойтись без типизации? Конечно, драматически увеличив количество тестов и проверок в коде, засорив код этими проверками.

Типизация помогает сократить количество тестов, потому что большой пласт ошибок выявляется на этапе проверки типов.

#python #it #codebetter
👍43🔥302
Ох сколько вопросов на ютубе почему товарищ Лутц не попал в выборку. Ладненько, сниму разнос Лутца попозже:)

#books #it #python
👍82😁401🔥1
А вы знали, что mypy тупо игнорит код функции, если её параметры или аргументы не типизированы?

А pyright не игнорит.

Живите дальше с этим:)

PS. Mypy можно заставить проверять такие функции параметром --check-untyped-defs. А pyright делает всё красиво без дополнительных флагов.

#python #it #tools
😁66👍50🔥11🎉3🥰2
PythoNN: видео с апрельского митапа

4 апреля прошел очередной #python митап в Нижнем Новгороде.

Было очень душевно и интересно.
Случился аншлаг! Пришло много нижегородцев и приехало очень много людей: из Москвы, Питера, Кирова и других городов. Спасибо всем!

Было 4 крутых доклада:
- "Are you NATS?" – Гурбанов Михаил https://youtube.com/watch?v=atD3JVWurno
- "Почему исправление опечаток сложнее, чем кажется, и как мы с этим српавляемся" – https://youtube.com/watch?v=9HRBwwaMIfA
- "Современный web с современными темплейтами" – Алексей Гончарук https://youtube.com/watch?v=lN3Pz_hUCio
- "Демистификация PostgreSQL-индексов" – Алексей Голобурдин https://youtube.com/watch?v=6kVGSLdj28k

А потом мы сидели в баре до 5 утра.

Что улучшить?
- Первый раз записывал на StreamYard, сделал плохую композицию слайдов и видео докладчика, исправим в следующий раз. Прикрепил все слайды в описании докладов – чтобы была возможность все прочитать и скопировать код
- Поработаем над звуком, сейчас он немного прыгал

Хотите присоединиться?
- Если хотите сделать доклад, пишите мне в личку – лично учу новичков выступать и делать слайды, полная свобода в выборе темы
- Если хотите просто послушать – следите за анонсами в чате и подписывайтесь на мой канал с записями

У нас в Нижнем – просто офигенно, всех ждем в гости! 🌆

| Поддержать | YouTube | GitHub | Чат |
🔥81👍258😁6