Forwarded from AI for Devs
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
😁4👍3🤩1
🫡 Еженедельный дайджест №2
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
Статьи:
– Zen of Python: философия языка
– Как победить циклические импорты в Python простым способом
– Неудачные эксперименты с Vibe Coding на Python
– Как мы освободили 20 ГБ в PostgreSQL без удаления данных
– Какой Python-фреймворк выбрать: Django, Flask или FastAPI?
Посты-коротыши:
– Пасхалка в Python: антигравитация
– PEP 750: t-строки — новый уровень форматирования в Python!
– PythonHero 👑 Великодушный пожизненный диктатор
– Нововведение, которое изменило Python
Опросы:
– Какой Python-фреймворк вы предпочитаете для веб-разработки?
Самый популярный комментарий этой недели – комментарий к статье "Как мы освободили 20 ГБ в PostgreSQL без удаления данных" от пользователя
@python_for_devs
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
Статьи:
– Zen of Python: философия языка
– Как победить циклические импорты в Python простым способом
– Неудачные эксперименты с Vibe Coding на Python
– Как мы освободили 20 ГБ в PostgreSQL без удаления данных
– Какой Python-фреймворк выбрать: Django, Flask или FastAPI?
Посты-коротыши:
– Пасхалка в Python: антигравитация
– PEP 750: t-строки — новый уровень форматирования в Python!
– PythonHero 👑 Великодушный пожизненный диктатор
– Нововведение, которое изменило Python
Опросы:
– Какой Python-фреймворк вы предпочитаете для веб-разработки?
Самый популярный комментарий этой недели – комментарий к статье "Как мы освободили 20 ГБ в PostgreSQL без удаления данных" от пользователя
@Azrak:"...как можно освободить десятки гигабайт места в PostgreSQL без удаления данных и индексов ... удаляем неиспользуемые индексы" 🙂
@python_for_devs
👍4🔥3❤2
Команда Python for Devs подготовила перевод статьи о том, как автор выбирает способ написания представлений в Django.
Он считает, что обобщённые классовые представления (CBV) скрывают слишком много магии, усложняют чтение кода и отладку. Вместо них он использует базовый View, чтобы сохранять контроль, но при этом избегать громоздких if в функциях.
А вы как пишете свои представления — на функциях, CBV или тоже предпочитаете «чистый» View?
📚 Подробности на Хабр: https://habr.com/ru/articles/946734/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥1
🔧 Целостность данных JSON-колонок в PostgreSQL
JSON всё чаще используют в реляционных базах данных — он позволяет хранить гибкие структуры и избавляет от избыточных связей между таблицами. Но вместе с удобством появляется риск: данные могут потерять предсказуемость.
Если не контролировать содержимое JSON-колонок, туда легко попадут неожиданные значения: числа вместо строк, объекты вместо массивов. В итоге приложение может «сломаться» на ровном месте.
В MySQL проверка JSON поддерживается из коробки. В PostgreSQL для этого есть расширение, которое позволяет валидировать данные по JSON-схеме прямо на уровне БД.
Пример: у нас есть таблица
Мы ожидаем, что поле
Чтобы сохранить гибкость JSON и одновременно обеспечить строгую структуру данных, можно использовать валидацию JSON-схемы на уровне базы данных. Для этого нужно добавить
Пример для PostgreSQL:
Теперь, попытка вставить данные с невалидным значение для
JSON всё чаще используют в реляционных базах данных — он позволяет хранить гибкие структуры и избавляет от избыточных связей между таблицами. Но вместе с удобством появляется риск: данные могут потерять предсказуемость.
Если не контролировать содержимое JSON-колонок, туда легко попадут неожиданные значения: числа вместо строк, объекты вместо массивов. В итоге приложение может «сломаться» на ровном месте.
В MySQL проверка JSON поддерживается из коробки. В PostgreSQL для этого есть расширение, которое позволяет валидировать данные по JSON-схеме прямо на уровне БД.
Пример: у нас есть таблица
products с колонкой attributes, где хранятся характеристики товара.
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
attributes JSON NOT NULL DEFAULT '{}'
);
Мы ожидаем, что поле
tags внутри этого JSON будет массивом строк. Однако без строгой проверки на уровне базы данных нет гарантии, что кто-то не запишет туда числа, объекты или вообще что-то неподходящее.Чтобы сохранить гибкость JSON и одновременно обеспечить строгую структуру данных, можно использовать валидацию JSON-схемы на уровне базы данных. Для этого нужно добавить
constraint, который автоматически проверит соответствие содержимого JSON определенной схеме при каждой операции вставки или обновления.Пример для PostgreSQL:
ALTER TABLE products ADD CONSTRAINT data_is_valid CHECK(
validate_json_schema(
'{
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": { "type": "string" }
}
},
"additionalProperties": false
}',
attributes
)
);
Теперь, попытка вставить данные с невалидным значение для
tags приведёт к ошибке:
INSERT INTO products (..., attributes) VALUES
(..., '{}'), -- Пустой объект, допускается
(..., '{"tags": []}'), -- Пустой массив строк
(..., '{"tags": ["test"]}'); -- Массив со строкой
-- Результат: Операция успешна
INSERT INTO products (..., attributes) VALUES
(..., '{"tags": [2]}'); -- Массив с числом вместо строки
-- Ошибка: Нарушен constraint
👍6🔥5❤2
Matplotlib, seaborn, Plotly, Altair, Pygal и Bokeh — у каждой свои сильные и слабые стороны: от академических статичных графиков до интерактивных дашбордов для бизнеса.
Выбираем самую подходящую для различных кейсов.
📚 Подробности на Хабр: https://habr.com/ru/articles/946750/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3❤2
Python уверенно №1 в TIOBE Index с огромным отрывом: 25.98% (+5.81% за год). Это почти втрое больше, чем у ближайшего конкурента C++ (8.8%).
Интересно, что ещё в 2010 Python был на 7-м месте, а в 2000 — аж на 23-м. Сегодня это де-факто язык №1 для науки о данных, автоматизации, AI и обучения программированию.
За счёт простого синтаксиса и тонны библиотек Python остаётся идеальным входом в программирование — от скриптов до ML-моделей.
Источник.
#news@python_for_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩4👍3🔥2❤1
🫡 Django Templates: всё, что вам нужно знать
Команда Python for Devs подготовила перевод большого туторила по Django Templates.
В статье подробно разбирается, как устроен язык шаблонов Django, чем он отличается от Jinja, как правильно наследовать шаблоны и организовать структуру проекта.
Если вы хотите сделать свои Django-приложения более чистыми, поддерживаемыми и быстрыми — этот материал для вас.
📚 Подробности на Хабр: https://habr.com/ru/articles/946762/
Команда Python for Devs подготовила перевод большого туторила по Django Templates.
В статье подробно разбирается, как устроен язык шаблонов Django, чем он отличается от Jinja, как правильно наследовать шаблоны и организовать структуру проекта.
Если вы хотите сделать свои Django-приложения более чистыми, поддерживаемыми и быстрыми — этот материал для вас.
📚 Подробности на Хабр: https://habr.com/ru/articles/946762/
❤3👍3🔥2
🫡 Еженедельный дайджест №3
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Меньше магии, больше кода: мой способ писать Django views
– Целостность данных JSON-колонок в PostgreSQL
– Топ-6 Python-библиотек для визуализации
– Python разрывает конкурентов — 26% рейтинга!
– Django Templates: всё, что вам нужно знать
Самый популярный комментарий этой недели – комментарий к статье "Меньше магии, больше кода: мой способ писать Django views" от пользователя
@python_for_devs
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Меньше магии, больше кода: мой способ писать Django views
– Целостность данных JSON-колонок в PostgreSQL
– Топ-6 Python-библиотек для визуализации
– Python разрывает конкурентов — 26% рейтинга!
– Django Templates: всё, что вам нужно знать
Самый популярный комментарий этой недели – комментарий к статье "Меньше магии, больше кода: мой способ писать Django views" от пользователя
@danilovmy:Забавная статья. Автор не хочет запоминать другие «магические» методы и по-прежнему использует магию, такую как get_object_or_404, redirect или что-то еще...
@python_for_devs
❤4👍3🔥3
В новой статье узнайте про одно из нововведений Python 3.14, которое упрощает работу с Python за пределами IDE.
Теперь автодополнение и подсветка синтаксиса работают прямо в терминале, а цветовую тему можно настроить под себя.
📚 Подробности на Хабр: https://habr.com/ru/articles/948852/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍2❤1🤩1
🧩 PEP 804: как связать внешние зависимости с вашим пакетным миром
Если вы собираете Python-пакет с нативными расширениями или завязками на системные библиотеки (zlib, OpenBLAS, компиляторы, ImageMagick и т. п.), вы точно сталкивались с болью: «pip ругнулся, а что именно надо установить — непонятно».
PEP 804 закрывает эту дыру: теперь инструменты понимают внешние зависимости из вашего
Сценарий: вы ставите пакет, он не собирается из-за отсутствия
Когда внешние зависимости не формализованы, ломается все подряд:
🟣 Сборка падает: у разных дистрибутивов разные имена одних и тех же пакетов (
🟣 Документация зарастает мхом: сложно поддерживать в актуальном состоянии команды для 5–10 экосистем одновременно.
🟣 CI/релизы с задержками: «оно у меня работало» превращается в рулетку — особенно с чужим Docker-образом, или отличной от вашей OS.
🟣 Анализ зависимостей страдает: внешние требования не видны инструментам, отчего ломаются деревья зависимостей и предсказуемость обновлений.
PEP 804 нацелен искоренить эти проблемы. Вместо «надеемся, что пользователь догадается» — центральный реестр имен + прозрачные сопоставления для конкретных экосистем, поддерживаемые самими экосистемами.
Ниже — минимальный, но рабочий «скелет», который можно взять и внедрить сегодня.
Шаг 1. Опишите внешние зависимости в pyproject.toml
Раздел [external] — это ваш чек-лист для системных/не-PyPI зависимостей. Идентификаторы — это DepURL из PEP 725:
Что это дает: любой инструмент, понимающий PEP 804/725, может на входе получить DepURL и на выходе — список пакетов для вашей ОС/менеджера пакетов.
Шаг 2. Валидируйте DepURL-ы локально
Подтяните тул, который умеет читать
Если вы промахнулись (написали
Шаг 3. Получайте команды установки для вашей платформы
То, ради чего все затевалось. Покажите маппинг под «авто-определенную» экосистему (например,
Подробнее: PEP 804 — An external dependency registry and name mapping mechanism: peps.python.org/pep-0804/.
Если вы собираете Python-пакет с нативными расширениями или завязками на системные библиотеки (zlib, OpenBLAS, компиляторы, ImageMagick и т. п.), вы точно сталкивались с болью: «pip ругнулся, а что именно надо установить — непонятно».
PEP 804 закрывает эту дыру: теперь инструменты понимают внешние зависимости из вашего
pyproject.toml (в формате DepURL из PEP 725) и умеют карточно их с пакетами целевой экосистемы (Ubuntu, Fedora, Homebrew, conda-forge, Nix, Spack и т. д.). В идеале — даже показывать готовую команду установки.Сценарий: вы ставите пакет, он не собирается из-за отсутствия
g++ и zlib. Вместо «гугли сам» вы видите аккуратный список для вашей системы: sudo apt install g++ zlib1g zlib1g-dev. А если вы предпочитаете conda — получите mamba install cxx-compiler zlib.Когда внешние зависимости не формализованы, ломается все подряд:
zlib1g-dev, zlib-devel, libz), а инструкции в README устаревают быстрее, чем хотелось бы.PEP 804 нацелен искоренить эти проблемы. Вместо «надеемся, что пользователь догадается» — центральный реестр имен + прозрачные сопоставления для конкретных экосистем, поддерживаемые самими экосистемами.
Ниже — минимальный, но рабочий «скелет», который можно взять и внедрить сегодня.
Шаг 1. Опишите внешние зависимости в pyproject.toml
Раздел [external] — это ваш чек-лист для системных/не-PyPI зависимостей. Идентификаторы — это DepURL из PEP 725:
dep:generic/... для конкретных библиотек и dep:virtual/... для «ролей» (например, компилятор C++).
[build-system]
build-backend = "mesonpy"
requires = ["meson-python>=0.13.1", "pybind11>=2.10.4"]
[external]
# Что нужно для сборки (toolchain, заголовки)
build-requires = [
"dep:virtual/compiler/cxx",
]
# Что нужно для линковки/исполнения
host-requires = [
"dep:generic/zlib",
]
Что это дает: любой инструмент, понимающий PEP 804/725, может на входе получить DepURL и на выходе — список пакетов для вашей ОС/менеджера пакетов.
Шаг 2. Валидируйте DepURL-ы локально
Подтяните тул, который умеет читать
[external], валидировать записи и предлагать каноничные идентификаторы. Пример с условным pyproject-external:python -m pyproject_external show --validate .Если вы промахнулись (написали
dep:virtual/compiler/cpp вместо cxx), получите подсказку вида:Did you mean 'dep:virtual/compiler/cxx'?Шаг 3. Получайте команды установки для вашей платформы
То, ради чего все затевалось. Покажите маппинг под «авто-определенную» экосистему (например,
Ubuntu + apt) или явно выберите нужную (conda-forge + mamba/pixi):
# Показать внешние зависимости как DepURL
python -m pyproject_external show .
# Показать уже сопоставленные имена пакетов
python -m pyproject_external show --output=mapped .
# Сгенерировать команду установки
python -m pyproject_external show --output=command .
# Пример вывода:
# sudo apt install --yes g++ zlib1g zlib1g-dev python3
Подробнее: PEP 804 — An external dependency registry and name mapping mechanism: peps.python.org/pep-0804/.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3❤2
⚡️ Самый быстрый способ загрузить 32 000 строк в PostgreSQL с помощью Python
Команда Python for Devs подготовила перевод статьи о том, как найти самый быстрый способ загрузки данных в PostgreSQL с помощью Python.
Автор пошагово сравнил разные методы — от построчных вставок до
📚 Подробности на Хабр: https://habr.com/ru/articles/948854/
Команда Python for Devs подготовила перевод статьи о том, как найти самый быстрый способ загрузки данных в PostgreSQL с помощью Python.
Автор пошагово сравнил разные методы — от построчных вставок до
COPY с потоковой генерацией CSV — и показал, как ускорить процесс более чем в 250 раз при нулевом потреблении памяти. 📚 Подробности на Хабр: https://habr.com/ru/articles/948854/
👍6❤3🔥3
🙏 Git bisect: быстрый способ найти баг
Вы когда-нибудь ловили баг в проекте, который «ещё вчера работал»?
Коммитов — целая гора, глазами не найти. Тут и выручает
Это штука, которая делает бинарный поиск по истории. Вы указываете, где баг точно есть (
Дальше Git сам переключает вас на середину между "плохим" и "хорошим" кодом и говорит: «проверь».
Вы смотрите: баг есть →
И так несколько раз, пока Git не ткнёт пальцем в конкретный коммит: вот тут всё сломалось.
Фишка в том, что даже если между good и bad 100 коммитов, руками проверять придётся не сто, а всего 6–7. Логарифмы в действии 🙂
А если повезло, и баг можно проверить скриптом (например, тест падает с кодом 1) — вообще красота:
Git сам пройдётся по истории и принесёт виновника на блюдечке.
Так что если в следующий раз придётся охотиться за багом — не спешите листать
Вы когда-нибудь ловили баг в проекте, который «ещё вчера работал»?
Коммитов — целая гора, глазами не найти. Тут и выручает
git bisect.Это штука, которая делает бинарный поиск по истории. Вы указываете, где баг точно есть (
git bisect bad HEAD), и где его точно не было (git bisect good abc123). Дальше Git сам переключает вас на середину между "плохим" и "хорошим" кодом и говорит: «проверь».
Вы смотрите: баг есть →
git bisect bad, бага нет → git bisect good.И так несколько раз, пока Git не ткнёт пальцем в конкретный коммит: вот тут всё сломалось.
Фишка в том, что даже если между good и bad 100 коммитов, руками проверять придётся не сто, а всего 6–7. Логарифмы в действии 🙂
А если повезло, и баг можно проверить скриптом (например, тест падает с кодом 1) — вообще красота:
git bisect run ./test_bug.sh
Git сам пройдётся по истории и принесёт виновника на блюдечке.
Так что если в следующий раз придётся охотиться за багом — не спешите листать
git log. Пусть git bisect сделает грязную работу 😉👍8❤3🔥3
На PyCon 2024 многие доклады были посвящены одной цели — сделать Python быстрее.
В статье собраны самые интересные идеи: использование статической типизации и Cython для ускорения вычислений, создание подмножеств языка вроде SPy, переписывание тяжёлых функций на C, статическая линковка расширений, immutable-объекты для обхода GIL и параллельные вычисления через субинтерпретаторы.
📚 Подробности на Хабр: https://habr.com/ru/articles/948858/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2👍2
На днях вышла новая версия PostgreSQL — и она серьёзно прокачала производительность и удобство работы с БД.
➖ Новая асинхронная I/O подсистема ускоряет до 3х раз чтение данных.
➖ Апгрейды между мажорными версиями теперь станут менее болезнеными — статистика запросов сохраняется, и база не «тупит» после обновления.
➖ Про разработчиков тоже не забыли: виртуальные вычисляемые колонки, умные индексы со skip scan, новый
uuidv7() с лучшей производительностью.➖ Поддержка OAuth 2.0 для аутентификации, более быстрая логическая репликация и улучшенная работа с текстом.
PostgreSQL продолжает эволюционировать. И это радует)
Release Notes на английском
Release Notes на русском
Видео-обзор на русском от Павла Лузанова
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤3👍3
🫡 Трюк, который раньше ускорял Python, теперь лишь захламляет код
Почему любимая оптимизация Python — присваивать глобальные функции локальным переменным — больше не даёт выигрыша?
CPython 3.11 стал умнее, и старый хак уже почти бессмыслен.
📚 Подробности на Хабр: https://habr.com/ru/articles/951230/
Почему любимая оптимизация Python — присваивать глобальные функции локальным переменным — больше не даёт выигрыша?
CPython 3.11 стал умнее, и старый хак уже почти бессмыслен.
📚 Подробности на Хабр: https://habr.com/ru/articles/951230/
👍5❤4🔥2
Forwarded from AI for Devs
This media is not supported in your browser
VIEW IN TELEGRAM
⚡ JetBrains встроили Claude Agent прямо в свои IDE
Claude Agent теперь живёт прямо в AI-чате IDE, а под капотом — свежевыпущенный Claude 4.5 Sonnet.
Примечательно, что это первый сторонний агент, официально встроенный в экосистему JetBrains, и он идёт в составе подписки JetBrains AI — доплат не просят. Сделан на Anthropic Agent SDK, поэтому умеет в контекст, тулы, файловые операции и даже исполнение кода. Работает через MCP: агент видит IDE как сервер инструментов, вы — просто переписываетесь в чате.
Кратко об основных возможностях:
🟣 Работа с несколькими файлами: агент показывает предложенные правки в виде диффов прямо в редакторе — удобно сравнить «до/после» и решить, принять или выкинуть.
🟣 Контроль на вашей стороне: без вашего разрешения Claude ничего не тронет — ни файл, ни консоль. Но если достаточно смелые, то можно включить Brave mode и агент пойдет заниматься своими делами без ваших апрувов
🟣 Plan mode: агент сначала опишет шаги и только потом займется реализацией.
🟣 Управление контекстом: можно подкинуть файлы, папки или даже картинки — агент станет отвечать точнее и умнее.
Источник
@ai_for_devs
Claude Agent теперь живёт прямо в AI-чате IDE, а под капотом — свежевыпущенный Claude 4.5 Sonnet.
Примечательно, что это первый сторонний агент, официально встроенный в экосистему JetBrains, и он идёт в составе подписки JetBrains AI — доплат не просят. Сделан на Anthropic Agent SDK, поэтому умеет в контекст, тулы, файловые операции и даже исполнение кода. Работает через MCP: агент видит IDE как сервер инструментов, вы — просто переписываетесь в чате.
Кратко об основных возможностях:
Источник
@ai_for_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4❤1👏1
💸 Устаревшие версии Python обходятся компаниям в миллионы долларов
Команда Python for Devs подготовила перевод статьи о скрытых издержках использования старых версий Python.
TL;DR: 83% разработчиков застряли на Python 3.10–3.11, и это обходится компаниям в миллионы долларов ежегодно из-за лишних "облачных" затрат.
А ведь казалось бы, обновиться — проще простого.
📚 Подробности на Хабр: https://habr.com/ru/articles/951234/
Команда Python for Devs подготовила перевод статьи о скрытых издержках использования старых версий Python.
TL;DR: 83% разработчиков застряли на Python 3.10–3.11, и это обходится компаниям в миллионы долларов ежегодно из-за лишних "облачных" затрат.
А ведь казалось бы, обновиться — проще простого.
📚 Подробности на Хабр: https://habr.com/ru/articles/951234/
👍5😱4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Manim: питон, математика, магия
Если вам когда-то хотелось сделать презентацию, которая выглядит как видео с ютуба «3Blue1Brown», то вот ответ — Manim. Это целый движок, который превращает код в красивые ролики с графиками, фигурами и текстом.
Что умеет:
– Строить абстрактные сцены из линий, кругов и формул.
– Анимировать всё это плавно и «научно красиво».
– Легко комбинировать текст и геометрию.
– Поддерживать и простые проекты «на коленке», и масштабные лекции/курсы.
Интересно, что библиотека выросла из личного проекта блогера (Grant Sanderson aka 3Blue1Brown), а теперь её используют университеты, энтузиасты и даже стартапы для объясняющих видосов. Комьюнити активно пилит фичи, а документация и примеры выглядят уже вполне серьёзно.
Выглядит как инструмент будущего для тех, кто хочет объяснять сложное просто — и при этом не тратить полжизни в Premiere, Davinci и т.д.
Так что да, пора пробовать!
Исходный проект Manim
Manim Community (версия, поддерживаемая сообществом)
Getting Started от создателя
Если вам когда-то хотелось сделать презентацию, которая выглядит как видео с ютуба «3Blue1Brown», то вот ответ — Manim. Это целый движок, который превращает код в красивые ролики с графиками, фигурами и текстом.
Что умеет:
– Строить абстрактные сцены из линий, кругов и формул.
– Анимировать всё это плавно и «научно красиво».
– Легко комбинировать текст и геометрию.
– Поддерживать и простые проекты «на коленке», и масштабные лекции/курсы.
Интересно, что библиотека выросла из личного проекта блогера (Grant Sanderson aka 3Blue1Brown), а теперь её используют университеты, энтузиасты и даже стартапы для объясняющих видосов. Комьюнити активно пилит фичи, а документация и примеры выглядят уже вполне серьёзно.
Выглядит как инструмент будущего для тех, кто хочет объяснять сложное просто — и при этом не тратить полжизни в Premiere, Davinci и т.д.
Так что да, пора пробовать!
Исходный проект Manim
Manim Community (версия, поддерживаемая сообществом)
Getting Started от создателя
🔥6❤3🤩2😱1
😢 Ржавеет экосистема Python
Два Ивана посмотрели, что же у нас произошло за последние пару лет: массовый рост количества замен pip install: PDM, Poetry и главное — UV.
Тоже самое мы видим и в линтерах и форматтерах: был blake + flake8, стал Ruff. Что объединяет все эти штуки? Конечно, скорость работы и разработка этих инструментов на Rust.
😉 СМОТРЕТЬ НА YOUTUBE
Два Ивана посмотрели, что же у нас произошло за последние пару лет: массовый рост количества замен pip install: PDM, Poetry и главное — UV.
Тоже самое мы видим и в линтерах и форматтерах: был blake + flake8, стал Ruff. Что объединяет все эти штуки? Конечно, скорость работы и разработка этих инструментов на Rust.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3👏2😱1