Pull to refresh
19
0
Vladimir @mvs

Creator, founder, developer

Send message

Асинхронный бег или драматическое ускорение с RoadRunner

Level of difficultyMedium
Reading time7 min
Views2.7K

Очень много в последнее время слышно замечаний в адрес PHP – мол, медленный, тяжелый, неповоротливый, все давно микросервисы на Go/Java/(нужное подставить) пишут. В этой статье я постараюсь расписать плюсы, минусы и результаты нашей попытки ускорить проект на PHP с использованием RoadRunner.

Читать далее

Заговор разработчиков против корпораций

Level of difficultyMedium
Reading time15 min
Views52K

Речь пойдет о тайной, сугубо анонимной организации, следы которой начал замечать еще в 2018-ом, работая в Яндексе. О целях и мотивах организации можно только догадываться: некоторые считают это кибер-луддизмом, другие — техно-анархизмом. Ясно одно: организация существует, ее члены уничтожают кодовые базы десятилетиями, и говорить об этом не принято.

Читать далее на свой страх и риск

Как перейти от монолита к микросервисам без сложностей и рисков? Четыре проверенных паттерна

Level of difficultyMedium
Reading time3 min
Views10K

При переходе от монолитной к микросервисной архитектуре разработчики часто сталкиваются с несколькими проблемами.

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

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

Использование в практике таких паттернов как Strangler Fig Pattern, Parallel Run Pattern, Decorating Collaborator Pattern и Change Data Capture позволяет разработчикам значительно снизить риски и проблемы, возникающие при таком сложном переходе.

Давайте рассмотрим основные концепции этих паттернов.

Читать далее

Как сделать идеальную вентиляцию в городе, где часто бывает смог: приточка, вытяжка, увлажнитель и кондиционеры

Level of difficultyEasy
Reading time10 min
Views20K

Дышать качественным воздухом всегда приятно, особенно в Алматы, где часто бывает смог. Поэтому планировать свою умную квартиру Александр начал с вентиляции. Продумал он и другие инженерные системы, поэтому к интегратору пришел с полным пониманием того, что ему нужно.

Александр установил мощную систему вентиляции, которая обеспечивает каждую комнату свежим, увлажненным и подогретым/охлажденным воздухом. Конечно, в квартире есть и другие инженерные системы: свет, отопление, шторы, видеонаблюдение, датчики.

Нам удалось побывать в умной квартире Александра, в статье подробно о ней расскажем.

Читать далее

SOLID: Low Coupling против читабельности

Level of difficultyMedium
Reading time6 min
Views8.5K

Я могу назвать себя адептом чистого кода, чистой архитектуры, SOLID и всего, что с этим связано. И когда я начал работать - я приносил эти знания в команды. Но чем дольше я работал, тем чаще я стал замечать, что SOLID начинает мешать читабельности. И тогда я пришёл к осознанию того, о чем написал в этой статье.

В ней вы увидите пример небольшого куска программы, который полностью соответствует SOLID. Узнаете, какую цель преследует SOLID и в чем он хорош. А так же его связь с производительностью и читабельностью

Читать далее

Организуемся с помощью fork'ов

Level of difficultyMedium
Reading time8 min
Views2.5K

В одном из моих прошлых проектов нам пришлось решать две (вообще три, но третий случай сильно далеко уходит от центральной темы) очень похожие проблемы. У нас на проекте разрослось количество кронов, и ими стало тяжело управлять. И начало появляться большое количество консьюмеров, и ими то же надо было как то управлять. Мы эти проблемы решили с помощью старых добрых fork'ов. Все примеры будут приведены в php, но принцип работы можно использовать и для других стеков. Ниже будет описан принцип тактика использования fork'ов для наведения порядка в фоновых задачах.

Читать далее

Что нового в Apache Kafka 4.0?

Level of difficultyEasy
Reading time5 min
Views4.4K

Не за горами выход релиза 4.0 Apache Kafka. Согласно графику релиза, 15 января состоится code freeze, а через пару недель или позже, после стабилизации, версия 4.0 увидит свет. Самое время присмотреться, что же в неё вошло.

Читать далее

Надоело постоянно пользоваться телефоном, поэтому написал замену Google Authenticator в виде TUI

Level of difficultyEasy
Reading time7 min
Views34K

Мне надоело постоянно использовать Google Authenticator и переключаться между ПК и телефоном для подтверждения двухфакторной (мультифакторной) аутентификации. Красивых и функциональных TOTP (Time-based one-time password) хранилок в терминале я не нашел, поэтому сделал эту TUI, которая позволит хранить, управлять, просматривать, копировать 2FA ключ в пару нажатий с поддержкой VIM управления. Ну и просто мне было интересно, какого это создавать свои TUI приложения.

Читать далее

Будущее микросервисов: уйдем ли мы к монолитам 2.0?

Level of difficultyEasy
Reading time8 min
Views45K

Микросервисы или монолит? Споры об архитектуре программного обеспечения не утихают, но с 2018-2020 годов наметился интересный тренд: компании начинают переоценивать сложность микросервисного подхода. Возвращение к монолитам, но уже с учетом современных инструментов, вызывает жаркие обсуждения в техническом сообществе.

В этой статье я не буду защищать какую-либо из сторон. И не буду обещать волшебных решений, которые решат все архитектурные проблемы. Вместо этого разберем, что стоит за модной концепцией «монолиты 2.0», как эволюция технологий меняет восприятие архитектуры и почему возвращение к упрощению может быть выгодным. Добро пожаловать в мир архитектурных компромиссов — подробности под катом.
Читать дальше →

Ory Kratos — конструктор для сборки цифрового продукта любой сложности

Level of difficultyMedium
Reading time16 min
Views7.4K

Привет! Я Андрей Баронский, бэкенд-тимлид в KTS.

Одно из ключевых направлений деятельности нашей компании — это аутсорс-разработка цифровых продуктов. При создании очередной системы мы хотим уделять больше времени и сил необходимым фичам для клиентов, а не настройке рутинного взаимодействия с юзерами, и для ускорения проработки основных пользовательских сценариев мы используем технологию Ory Kratos. В статье я расскажу, почему я рекомендую обратить на нее внимание и как с ней работать.

Для тех, кто впервые сталкивается с этим названием, дам немного контекста. Ory Kratos — это система API-first Identity и User Management. Она управляет всеми аспектами работы с пользователями, включая регистрацию, вход, восстановление пароля, многофакторную аутентификацию, верификацию данных и управление профилем. 

Иными словами, Ory Kratos берёт на себя рутинные технические задачи, предлагая готовое, гибкое и удобное в интеграции решение.

Читать далее

Давайте договоримся о тех.долге

Level of difficultyEasy
Reading time4 min
Views4.2K

— Нам нужно выплачивать тех.долг!
— У нас нет на это ресурсов, нам нужно выпустить новую фичу!
Знакомый диалог? Давайте поговорим про технический долг и про то, как он влияет на бизнесовые цели. И на выпуск новых фичей

Читать далее

Безболезненная миграция с NATS на Kafka

Level of difficultyMedium
Reading time7 min
Views3.2K

Привет, Хабр! Меня зовут Максим, я Go-разработчик из Wildberries. Свою дебютную статью я хочу посвятить довольно популярной теме, когда на проекте приходится уходить с одной технологии на другую. Данная статья будет полезна разработчикам, кто активно использует асинхронный способ передачи данных в своих проектах.

Читать далее

Почему ваш мозг нуждается в «даунтайме»: история одного разработчика

Level of difficultyEasy
Reading time3 min
Views15K

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

Читать далее

Интервью с Егором Денисовым-Бланчем: кто такие «инженеры-призраки» и как с ними бороться

Level of difficultyEasy
Reading time13 min
Views2.8K

В конце ноября 2024 года на Хабре вышла новость о том, что 9,5% программистов в IT-компаниях ничего не делают. Они как мёртвые души или призраки — числятся в штате, ходят на созвоны, но не выполняют рабочие задачи. Поводом для новости стало исследование Егора Денисова-Бланча (Yegor Denisov-Blanch) из Стэнфордского университета.

Мы связались с автором исследования, чтобы больше узнать о методологии исследования и мотивации. А ещё попытались выяснить, можно ли уволить разом всех «инженеров-призраков» и сработает ли такая тактика.

Читать далее

ResultTransformer в Symfony проектах

Reading time7 min
Views3.1K

Symfony со стандартным набором «батареек» представляет из себя монструозное решение, способное реализовать если и не любые, то очень многие задачи бизнеса. Поделюсь подходом, о котором не каждый symfony‑разработчик слышал, а если и слышал, то разве что вскользь и навряд ли использовал этот метод в разработке. Думаю, пришла пора пролить свет на эту темную сторону.

Всем привет, меня зовут Горелов Кирилл, я бэкенд‑разработчик и я обожаю symfony‑фреймворк. Поговорим про возможность doctrine, которая позволяет возвращать нам готовую DTO, избавляя программиста от ручного труда и делая всю работу за него. Описанный подход под названием ResultTransformer — это термин, который описывает процесс преобразования данных в DTO.

Конечно же, вам не стоит бежать переписывать свой код, у этого подхода есть ряд ограничений, а местами он слишком избыточный и использовать его стоит лишь в некоторых кейсах. Итак, приступим.

Читать далее

Как статический анализ на основе PHPstan позволил снизить число ошибок на проекте и получить стабильный код

Level of difficultyMedium
Reading time8 min
Views2.9K

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

Читать далее

Грязный код

Level of difficultyMedium
Reading time10 min
Views30K
Эдсгер Дейкстра: «Грязно и быстро — мне это не понравится»

«Чтобы иметь право называть себя профессионалом, вы должны писать чистый код. Нет никаких разумных оправданий тому, чтобы не стремиться к лучшему». Clean Code

В этом эссе я хочу рассказать о том, как пишу код. Я буду называть свою методику «грязным кодом», потому что часто нарушаю рекомендации «чистого кода» — популярной концепции написания кода.

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

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

Я программирую уже довольно давно и видел разнообразные подходы к обеспечению работоспособности ПО. Кто-то любит объектно-ориентированное программирование (я тоже), другие умные люди его ненавидят. Кому-то нравится выразительность динамических языков, кого-то она бесит. Кто-то успешно выпускает программы, строго следуя концепции Test Driven Development, другие добавляют в конце проекта несколько сквозных тестов, а многие остаются где-то посередине этих крайних точек.

Я был свидетелем проектов, выпускавших и поддерживавших успешное ПО на основе всех этих разнообразных подходов.

Поэтому повторюсь, что моя цель не убедить вас, что мой способ кодинга единственно возможный, а показать вам (и в особенности начинающим разработчикам, которых легко запугать терминами наподобие «чистого кода»), что можно иметь успешную карьеру программиста, пользуясь множеством различных подходов, и что мой — один из них.
Читать дальше →

Дайджест новостей по PHP, Symfony и Laravel за ноябрь'2024

Level of difficultyMedium
Reading time31 min
Views4.5K

Привет Хабр!

Сергей Пантелеев, Кирилл Несмеянов и Данил Щуцкий собрали новости за ноябрь в PHP, Symfony и Laravel (соответственно). Всё самое интересное. Если вы хотите быть в теме происходящего, этот материал точно для вас. 🚀

Читать далее

Envoy — как писать чистый бизнес-код для микросервисной архитектуры

Level of difficultyHard
Reading time20 min
Views10K

Привет, Хабр, это моя первая статья. Меня зовут Константин, я системный инженер в компании ГНИВЦ. Здесь я хотел бы вам рассказать, что такое Envoy и как с его помощью можно упростить жизнь разработчикам и повысить надёжность взаимодействия микросервисов, минуя инфраструктуру для кого-то страшного и непонятного Kubernetes, а используя простой и старомодный Docker. Также эта статья поможет познакомиться с Envoy поближе и узнать, как он шагает в ногу с таким проектом как Istio.

Читать далее

Разбираемся в проектировании микросервисов. Основные паттерны (Часть 1)

Reading time6 min
Views30K

Привет, Хабр!

Меня зовут Сергей Громов, я работаю в IT уже 30 лет. Прошел путь от программиста на Assembler и преподавателя до ведущего системного аналитика.

В этой статье мы разберемся с некоторыми основами проектирования микросервисов. Моя цель — объяснить принципы проектирования начинающим и тем, кто работает с уже готовой микросервисной архитектурой. Порой новичкам архитектура сервиса кажется неочевидной. На самом деле, все не так страшно. Есть определенные принципы, которые помогают в этом разобраться.

Читать далее

Information

Rating
Does not participate
Date of birth
Registered
Activity