Lexover's blog

О web-разработке и анализе данных простыми словами

Профилирование приложений Python

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

Читать далее...
Тестируем Django с pytest.

В текущем посте мы рассмотрим как производится тестирование приложения Django с помощью фреймворка pytest, рассмотрим механизмы тестирования, дополнительные модули и плагины, которые значительно упрощают данный процесс, позволяют выполнить параллельный запуск тестов, проанализировать покрытие кода тестами. Данная статья основана на великолепной статье Дмитрия Чувардинского Testing Your Django App ...

Читать далее...
Технология RPC и ее реализацию с помощью Rabbit MQ и Pika.

В данном посте мы построим используя RabbitMQ распределенную RPC систему: клиент и массштабируемый RPC сервер. В качестве нагрузки используем медленный RPC сервис выполняющий рассчет числа Фибоначи. Технология RPC и ее применение. Цитируя Википедию >Удалённый вызов процедур (от англ. Remote Procedure Call, RPC) — класс технологий, позволяющих компьютерным программам вызывать функции или процедур ...

Читать далее...
Докеризация Django c PostrgeSQL, Gunicorn и Nginx.

Перевод статьи Michael Herman: Dockerizing Django with Postgres, Gunicorn, and Nginx. Это пошаговое руководство, в котором подробно описано, как настроить Django в связке с PostgreSQL для работы в контейнере Docker. Для производственных сред мы добавим Nginx и Gunicorn. Мы также рассмотрим, как обслуживать статические и мультимедийные файлы Django через Nginx. >Серия статей о Django на Docker: > ...

Читать далее...
Разгоняем Python с помощью конкурентности параллелизма и asyncio.

Перевод статьи Jace Medlin: Speeding up python with concurrency parallelism and asyncio. Есть много причин, по которым ваши приложения могут работать медленно. Иногда это происходит из-за плохой алгоритмической конструкции или неправильного выбора структуры данных. Однако иногда это происходит из-за неподконтрольных нам сил, таких как аппаратные ограничения или особенности работы в сети. Вот где ...

Читать далее...
Как запускать периодические задачи в Celery

Перевод статьи Antonio Di Mariano: How to run periodic tasks in Celery. Недавно я столкнулся с необходимостью реализовать серию задач (tasks), которые будут запускаться периодически для выполнения некоторых заданий. Такой сценарий хорошо подходит для crontab, но я решил попробовать Celery и использовать Celery Beat. Назначение и преимущества Celery Прежде всего, давайте кратко рассмотрим, что т ...

Читать далее...
Построение графиков в Vue.js с использованием D3.js.

D3.js - библиотека для построения динамической интерактивной визуализации данных, используя SVG, HTML5 и CSS. D3 - сокращение Data-Driven Documents, что в переводе на русский - "документ управляемый данными". Нам предстоит создать компонент Vue.js, который будет динамически отображать данные в виде графика "японских свечей", при этом следует учесть, что как D3.js так и Vue.js выполняют манипуляции ...

Читать далее...
Интерактивная карта в Vue.js.

Есть задача разместить в приложении Vue.js интерактивную карту OpenStreet. Чем мы и займемся. Для работы нам потребуется установленный Vue.js. Библиотека для отображения карт, в качестве которой мы используем JS библиотеку Leaflet. И сервис с которого мы будем получать карты для отображения, в качестве которого мы используем Mapbox. А теперь обо всем по порядку: Создадим проект vue с помощью vue ...

Читать далее...
Для чего нужен REST API?

Что же такое REST API? Разберем для начала понятия REST и API по отдельности. REST (Representional State Transfer / Передача состояния представления) - архитектурный стиль взаимодействия компонентов распределенного приложения в сети. То есть REST это по сути, набор ограничений которые должны быть выполнены при проектировании распределенной системы. И если веб-службы данной системы не нарушают огр ...

Читать далее...