Backend

Статьи о backend-разработке. Уроки о программировании на PHP, проектировании баз данных. Да и вообще тут всё, что касается бэкенда: очереди, хайлоад, кеширование, оптимизация, профайлинг.


Ныряем в кроличью нору: йинещбоос кодяроп меуритнараг

Давайте честно, проектировать надежные событийно-ориентированные системы сложно. Во-первых, ни один брокер сообщений не гарантирует вам exactly-once доставку сообщения, и вам придется добиваться этого собственными силами. Во-вторых, без хорошего понимания работы вашего брокера – а RabbitMQ – сложный брокер – вы не сможете настроить надежную обработку сообщений. Кроме того, есть еще одно важное свойство, проявляемое в событийно-ориентированных системах, которое не надо игнорировать, – это порядок сообщений. События всегда происходят в определенном порядке и должны в том же порядке быть обработаны консьюмерами, иначе ваша система может начать вести себя неожиданно.

Читать далее


Ныряем в кроличью нору

RabbitMQ является чуть ли не самым популярным решением для реализации очередей на сегодняшний день. И в то же время одним из самых сложных с точки зрения разработки и эксплуатации. Если вы поищите статьи по теме, с большой доли вероятности найдете материалы, в которых не погружаются дальше декларации простой очереди и публикации и получения сообщений из нее. И как только вы столкнетесь с проблемами, связанными с гарантиями доставки, реализацией отложенных сообщений, переполнения очередей, получения сообщений батчами, вам придется погрузиться в документацию или книги в поисках ответов на эти вопросы. Данная статья целиком основана на моем опыте работы с кроликом и содержит ответы на большинство популярных задач, решаемых этим брокером очередей. Во всех примерах будет использоваться PHP, однако то же самое почти с теми же терминами и определениями можно сделать на любом другом языке программирования.

Читать далее

Статический анализ в PHP

Все мы привыкли к определению, что PHP – это язык со слабой динамической типизацией. В этом одновременно его преимущество и недостаток. Преимущества заключаются в том, что вы имеете больше возможностей по работе с динамическими данными: вызывать функции или объекты из строки, передавать и возвращать mixed типы и многое другое. В конце концов, только в PHP вы можете одновременно увидеть ужасные реализации паттерна ActiceRecord с динамическими свойствами (которые физически не определены в классе) и элегантные контейнеры внедрения зависимостей, которые дают значительно больше возможностей, чем аналогичные контейнеры в языках с сильной статической типизацией. Если говорить о недостатках, то это, разумеется, баги, связанные как раз с тем, что мы точно не знаем, что нам может вернуть, например, та же анонимная функция, каких типов параметры она принимает, какие ключи есть в массиве и так далее. По этой причине вам приходится обогащать свой код проверками в духе isset($data['key']) и тому подобное.

Читать далее


Пробуем KPHP: реально ли его использовать в своих проектах

ВК - крупнейшая социальная сеть в России. Её код изначально был написан на PHP - языке, позволяющим быстро реализовывать функционал веб-сайтов. Однако, PHP является интерпретируемым языком, что само собой не есть хорошо для высоких нагрузок.

Читать далее
25.08.2021 в 06:24
4731
+10

Как запускать долгоживущие скрипты на удаленном сервере

Зачастую приходится на удаленном сервере запускать скрипты вручную. К примеру, для миграции данных из одного хранилища в другое. Как обычно это происходит: заходим на сервак по ssh, запускаем скрипт, он там нам выводит какой-то прогресс (например, обработанные ID), после чего завершается. Однако, часто бывает так, что нужно запустить долгоживущий скрипт. Мне приходилось запускать скрипты, выполняющиеся несколько дней подряд. При этом, нельзя гарантировать что ssh-соединение не разорвётся из-за нестабильного интернета. И вот тут начинаются проблемы - мы можем не узнать, что скрипт корректно завершил свою работу. Не можем узнать, на каком ID он остановился, если произошла какая-то ошибка. О том, как эту проблему решить, мы и поговорим в этой статье.

Читать далее
24.06.2021 в 19:00
3186
+4


Как сделать уведомления в телеграм на PHP

Привет! Сегодня поговорим о том, как можно отправить себе сообщение в телеграмме с помощью PHP. Это удобно использовать, когда нужно получить уведомление о каком-то событии, произошедшем на бэкенде. Например, я таким образом получаю уведомления о новых комментариях к урокам.

Читать далее
23.06.2021 в 20:08
8425
+9

Установка и настройка XAMPP

В этом уроке мы рассмотрим настройку окружения, необходимого для разработки на PHP с помощью пакета XAMPP - это приложение, позволяющее быстро развернуть для локальной разработки связку из PHP, Apache, MariaDB (аналог MySQL). Эта программа, в отличие от OpenServer, настройка которого описана в этой статье, является кросс-платформенной, и может использоваться на компьютерах под управлением Windows, Linux и MacOS.
Прежде всего, скачайте и установите XAMPP с официального сайта.

Читать далее
13.06.2021 в 07:33
7039
+5


Красивый вывод var_dump. Инструкция для OpenServer

Очень многие новички и не только новички, часто спрашивают про красивый вывод var_dump.
И так что же это, как его настроить и подключить на Windows (OpenServer).

Читать далее

Обработка форм в PHP

В этом уроке мы рассмотрим примеры безопасной обработки запросов в PHP.

Читать далее


Отправка email в PHP: настройка OpenServer

В этом уроке мы научимся отправлять почту средствами PHP в рамках сервера OpenServer. О том, чем хорош этот сервер и о том, как его установить, я писал в статье "Установка и настройка OpenServer".

Читать далее
23.09.2018 в 11:27
39590
+146

Логические задачи с собеседований