Антон Шелыганов


PHP Разработчик - JS Разработчик - Администратор Linux

VPN, который не заблокируют

Всем привет! Сегодня хотел бы поделиться простым способом настройки собственного VPN сервера.

Существует много различных сценариев использования VPN. Но, вероятно, наиболее распространенный из них - обход блокировок. Это особенно актуально для тех, кто живет в странах с тоталитарным режимом(Россия, Белоруссия и т.д.). Также это может быть актуально для тех, кто хочет пользоваться сервисами, доступ к которым недоступен из-за границы.

Курсы по реактивной архитектуре

Всем привет! Сегодня хотел бы рассказать о курсе по реактивной архитектуре от Lightbend Academy, который я прошел некоторое время назад.

Курс бесплатный, на английском, состоит из 6 частей. Время прохождения около 40 часов.

Анализ покрытия тестами с помощью Codecov

Всем привет! Сегодня хотел бы рассказать об использовании сервиса Codecov. А также интеграции с Github Actions. Сервис предназначен для отслеживания покрытия кода тестами.

Производительность покрытия тестами PHP проекта

Всем привет! Сегодня хотел бы рассказать о своем опыте оптимизации анализа покрытия теставми для PHP проекта.

Проект основан на Symfony компонентах и частично покрыт unit и интеграционными тестами. В какой-то момент захотелось узнать точное покрытие, и в дальнейшем мониторить состояние.

Полезные Github Actions для подготовки релизов

Всем привет! Сегодня хотел бы поделиться подборкой Github Actions для управления репозиторием и автоматизации релизов.

У меня была задача автоматизировать существующий ручной процесс подготовки релиза(создание ветки, обновление файла и т.д.). А также последующих действий - создание тега/релиза, слияние веток, удаление релиз бранча и т.д.)

Фикстуры в Symfony + Codeception DataFactory

Всем привет. Сегодня хотел бы поделиться способом организации фикстур в Symfony приложении с помощью Codeception Doctrine2 модуля.

Фикстуры используются для генерации тестовых данных. Чаще всего, для тестовые данные бывают нужны для интеграционных тестов. В Symfony фикстуры реализованы в рамках DoctrineFixturesBundle.

Сервис feature-флагов

Всем привет! Сегодня хотел бы рассказать о создании простого сервиса для управления feature-флагами. Feature-флаги позволяют мгновенно включать и выключать определенный функционал в приложении. Для этого не требуется заново выкладывать или откатывать его. Достаточно включить или выключить определенный флаг. В то же время, в ключевых местах в коде добавляются проверки флагов.

К примеру, нужно добавить на сайт форму обратной связи. И в то же время нужно иметь возможность быстро откатить изменения. Для этого можно создать feature-флаг contact-form и проверять его при выводе формы и обработчика.

Удаленная работа через ИП по USD контракту

Всем привет! Сегодня хотел бы рассказать о работе с иностранной компанией через ИП, а также получением оплаты в иностранной валюте. Основная идея - работа на иностранную компанию, без посредников, с соблюдением всех требований. Получение оплаты в долларах.

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

Оптимизация Docker на macOS с помощью Mutagen

Всем привет! Сегодня хотел бы поделиться опытом оптимизации производительности Docker под macOS c помощью Mutagen.

Docker на macOS

Docker под macOS изначально имеет проблемы с производительностью. Они связаны со способом монтирования разделов и файловой системой osxfs. Это оказывает серьезное влияние на работу приложений с большим количеством I/O операций. В результате web-приложение на Symfony может обрабатывать запрос по несколько секунд.

PHPRussia 2021

Всем привет! Сегодня хотел бы рассказать о поездке на PHP Russia 2021. Конференция прошла 28 июня в Москве в павильоне Рэдиссон Славянская.

Это вторая по счету конференция по PHP в России. Изначально была запланирована на 2020 год, несколько раз переносилась из-за Covid-19 и связанных с ним ограничений. В итоге, немного неожиданно была перенесена на 28 июня. До последнего были вопросы, состоится ли конференция. К счастью все удалось!