0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Скучный Python: повышаем качество кода</a></li>
1
<ul><li><a>Скучный Python: повышаем качество кода</a></li>
2
<li><a>Python на сервере и в браузере. Путь к Web Assembly</a></li>
2
<li><a>Python на сервере и в браузере. Путь к Web Assembly</a></li>
3
<li><a>Там сложно, ты не разберешься</a></li>
3
<li><a>Там сложно, ты не разберешься</a></li>
4
<li><a>Группы асинхронных задач в Python 3.11</a></li>
4
<li><a>Группы асинхронных задач в Python 3.11</a></li>
5
<li><a>Объект многоточие в Python</a></li>
5
<li><a>Объект многоточие в Python</a></li>
6
<li><a>Разбираемся с декораторами в Python</a></li>
6
<li><a>Разбираемся с декораторами в Python</a></li>
7
<li><a>Управление производительностью с Python 3.12</a></li>
7
<li><a>Управление производительностью с Python 3.12</a></li>
8
<li><a>Python на сервере и в браузере. Путь к Web Assembly</a></li>
8
<li><a>Python на сервере и в браузере. Путь к Web Assembly</a></li>
9
<li><a>SQLAlchemy с FastAPI для асинхронной работы</a></li>
9
<li><a>SQLAlchemy с FastAPI для асинхронной работы</a></li>
10
</ul><h2>Скучный Python: повышаем качество кода</h2>
10
</ul><h2>Скучный Python: повышаем качество кода</h2>
11
<p>Это статья о том, как максимально скучно разрабатывать и выпускать приложения на Python. Под определением "скучный" автор не имеет в виду "надежный", "без багов или "без инцидентов". Баги все равно будут встречаться. Вы будете продолжать сталкиваться с ситуациями, когда функция или, возможно, весь сервис не работает. "Скучное" же связано с источниками этих инцидентов. Поговорим об инструментах, которые помогают выявлять потенциальные ошибки и другие проблемы как можно раньше, в идеале еще до того, как они попадут в кодовую базу, не говоря уже о попадании в релиз.<a>Перейти к статье</a></p>
11
<p>Это статья о том, как максимально скучно разрабатывать и выпускать приложения на Python. Под определением "скучный" автор не имеет в виду "надежный", "без багов или "без инцидентов". Баги все равно будут встречаться. Вы будете продолжать сталкиваться с ситуациями, когда функция или, возможно, весь сервис не работает. "Скучное" же связано с источниками этих инцидентов. Поговорим об инструментах, которые помогают выявлять потенциальные ошибки и другие проблемы как можно раньше, в идеале еще до того, как они попадут в кодовую базу, не говоря уже о попадании в релиз.<a>Перейти к статье</a></p>
12
<h2>Python на сервере и в браузере. Путь к Web Assembly</h2>
12
<h2>Python на сервере и в браузере. Путь к Web Assembly</h2>
13
<p>Рассмотрим несколько подходов к запуску Python-приложений внутри браузера и сервера с использованием WebAssembly.<a>Читать</a></p>
13
<p>Рассмотрим несколько подходов к запуску Python-приложений внутри браузера и сервера с использованием WebAssembly.<a>Читать</a></p>
14
<h2>Там сложно, ты не разберешься</h2>
14
<h2>Там сложно, ты не разберешься</h2>
15
<p>В <a>своей первой статье</a> на Хабре автор описывал опыт реверсинга и модификации проекта, доставшегося по наследству. Конечно, в отношении проекта на Python "реверсинг" - это гипербола, однако с чем-то ранее неизвестным столкнуться все же получилось. Если вкратце - вместо классических исходников использовались модули, загружаемые из .pyc, а не классических .py файлов. Философия "защитников" базируется на принципе "Там сложно, никто не разберется".</p>
15
<p>В <a>своей первой статье</a> на Хабре автор описывал опыт реверсинга и модификации проекта, доставшегося по наследству. Конечно, в отношении проекта на Python "реверсинг" - это гипербола, однако с чем-то ранее неизвестным столкнуться все же получилось. Если вкратце - вместо классических исходников использовались модули, загружаемые из .pyc, а не классических .py файлов. Философия "защитников" базируется на принципе "Там сложно, никто не разберется".</p>
16
<p>Ход событий же показал, что во-первых, не так уж и сложно (передача параметров в хранимую процедуру PgSQL, и получение результата, возврат его пользователю - далеко не шедевр обфускации, скорее тут будет более применим принцип "Там несложно, любой разберется, но не захочет"), а во-вторых - кто-нибудь да поймет и найдет способ изменить поведение в нужном ключе. </p>
16
<p>Ход событий же показал, что во-первых, не так уж и сложно (передача параметров в хранимую процедуру PgSQL, и получение результата, возврат его пользователю - далеко не шедевр обфускации, скорее тут будет более применим принцип "Там несложно, любой разберется, но не захочет"), а во-вторых - кто-нибудь да поймет и найдет способ изменить поведение в нужном ключе. </p>
17
<p>Есть ли все-таки методы защиты исходников на python, и какие методы можно применять для решения этого вопроса?<a>Узнаем в статье</a></p>
17
<p>Есть ли все-таки методы защиты исходников на python, и какие методы можно применять для решения этого вопроса?<a>Узнаем в статье</a></p>
18
<h2>Группы асинхронных задач в Python 3.11</h2>
18
<h2>Группы асинхронных задач в Python 3.11</h2>
19
<p>Поговорим о группах исключений и асинхронных задач. Первые позволяют одновременно выбрасывать и обрабатывать несколько исключений, в то время как вторые позволяют объединять задачи в общий event loop и координированно управлять группами задач.<a>Читать продолжение</a></p>
19
<p>Поговорим о группах исключений и асинхронных задач. Первые позволяют одновременно выбрасывать и обрабатывать несколько исключений, в то время как вторые позволяют объединять задачи в общий event loop и координированно управлять группами задач.<a>Читать продолжение</a></p>
20
<h2>Объект многоточие в Python</h2>
20
<h2>Объект многоточие в Python</h2>
21
<p>Подробно рассмотрим объект многоточия, где можно использовать его в повседневной практике программиста, и какие известные пакеты Python используют его.<a>Читать</a></p>
21
<p>Подробно рассмотрим объект многоточия, где можно использовать его в повседневной практике программиста, и какие известные пакеты Python используют его.<a>Читать</a></p>
22
<h2>Разбираемся с декораторами в Python</h2>
22
<h2>Разбираемся с декораторами в Python</h2>
23
<p>Декораторы - это обертка вокруг функций (или классов) в Python, которая меняет способ работы этой функции. Декоратор абстрагирует свой собственный функционал. Нотация декоратора в целом наименее инвазивна. Разработчик может писать свой код так, как ему хочется, и использовать декораторы только для расширения функциональности. Все это звучит крайне абстрактно, поэтому давайте<a>обратимся к примерам.</a></p>
23
<p>Декораторы - это обертка вокруг функций (или классов) в Python, которая меняет способ работы этой функции. Декоратор абстрагирует свой собственный функционал. Нотация декоратора в целом наименее инвазивна. Разработчик может писать свой код так, как ему хочется, и использовать декораторы только для расширения функциональности. Все это звучит крайне абстрактно, поэтому давайте<a>обратимся к примерам.</a></p>
24
<h2>Управление производительностью с Python 3.12</h2>
24
<h2>Управление производительностью с Python 3.12</h2>
25
<p>В<a>Python 3</a>.12 появилась поддержка perf profiling. В этой статье увидим, как это помогает сократить время выполнения Python-скрипта с 36 секунд до 0,8. Мы рассмотрим Linux-инструмент perf, графики Flame Graph, посмотрим на дизассемблированный код и займемся поиском ошибок.<a>Читать</a></p>
25
<p>В<a>Python 3</a>.12 появилась поддержка perf profiling. В этой статье увидим, как это помогает сократить время выполнения Python-скрипта с 36 секунд до 0,8. Мы рассмотрим Linux-инструмент perf, графики Flame Graph, посмотрим на дизассемблированный код и займемся поиском ошибок.<a>Читать</a></p>
26
<h2>Python на сервере и в браузере. Путь к Web Assembly</h2>
26
<h2>Python на сервере и в браузере. Путь к Web Assembly</h2>
27
<p>Python как технология разработки приложений преимущественно используется для создания сценариев автоматизации, создания бэкэнда и веб-приложений, а также для анализа данных и использования методов статистики и машинного обучения. Также есть некоторые подходы к созданию мобильных приложений на Python. Но остается незаполненной ниша использования Python-приложений в веб-браузере, что могло бы позволить перенести часть обработки данных непосредственно на клиентское устройство и создавать полноценные fullstack-приложения на одной технологии.</p>
27
<p>Python как технология разработки приложений преимущественно используется для создания сценариев автоматизации, создания бэкэнда и веб-приложений, а также для анализа данных и использования методов статистики и машинного обучения. Также есть некоторые подходы к созданию мобильных приложений на Python. Но остается незаполненной ниша использования Python-приложений в веб-браузере, что могло бы позволить перенести часть обработки данных непосредственно на клиентское устройство и создавать полноценные fullstack-приложения на одной технологии.</p>
28
<p>Решением этой задачи может стать кросскомпиляция Python в код WebAssembly, который может выполняться как в браузере, так и на сервере с использованием nodejs или движка V8, либо SSVM. В статье мы рассмотрим несколько подходов к запуску Python-приложений внутри браузера и сервера с использованием WebAssembly.<a>Продолжение</a></p>
28
<p>Решением этой задачи может стать кросскомпиляция Python в код WebAssembly, который может выполняться как в браузере, так и на сервере с использованием nodejs или движка V8, либо SSVM. В статье мы рассмотрим несколько подходов к запуску Python-приложений внутри браузера и сервера с использованием WebAssembly.<a>Продолжение</a></p>
29
<h2>SQLAlchemy с FastAPI для асинхронной работы</h2>
29
<h2>SQLAlchemy с FastAPI для асинхронной работы</h2>
30
<p>В этой заметке будем использовать новые асинхронные возможности ORM-слоя вместе с новыми запросами в стиле 2.0. и создадим простое FastAPI-приложение с двумя маршрутами. Один - для добавления городов и их жителей, а другой - для вывода списка наиболее населенных объектов.<a>Читать</a></p>
30
<p>В этой заметке будем использовать новые асинхронные возможности ORM-слоя вместе с новыми запросами в стиле 2.0. и создадим простое FastAPI-приложение с двумя маршрутами. Один - для добавления городов и их жителей, а другой - для вывода списка наиболее населенных объектов.<a>Читать</a></p>
31
31