Pull to refresh
4K+
20
Dykyi Roman@dykyi_roman

Tech/Team Lead, Senior PHP developer

1,2
Rating
21
Subscribers
Send message

Вашему ИИ‑агенту нужна карта: LLM Wiki или README достаточно

Level of difficultyMedium
Reading time11 min
Reach and readers6.3K

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

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

Читать далее

OfficeAI — виртуальный офис для ваших AI-агентов

Level of difficultyEasy
Reading time3 min
Reach and readers11K

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

Читать далее

Интерактивные визуализаторы: внутри программных механизмов

Level of difficultyEasy
Reading time6 min
Reach and readers6.2K

В software engineering есть системный разрыв между «знать название технологии» и «понимать, как она работает внутри». Разработчики запоминают термины, воспроизводят определения на собеседованиях, но механику представляют приблизительно. Что именно происходит при Index Scan? Как HTTP-запрос проходит через слои Clean Architecture? Почему Observer и Mediator — это разные паттерны, если UML-диаграммы похожи?

Статичные диаграммы из книг показывают конечное состояние, но не процесс. B-Tree на картинке — это аккуратные прямоугольники со стрелками. Но как дерево строится, как перестраивается при вставке, какие страницы читаются при поиске — этого статика не передаёт.

Интерактивная визуализация закрывает этот разрыв. Не слайды и не статьи с картинками, а инструменты, где можно нажать Play и наблюдать, как система работает шаг за шагом. Ниже — обзор шести таких инструментов, покрывающих базы данных, брокеры сообщений, архитектуры, паттерны проектирования, Git-стратегии и алгоритмы.

Читать далее

Код больше не ваш. Разработка в эпоху AI

Level of difficultyEasy
Reading time16 min
Reach and readers12K

Я писал код всю свою жизнь. И сейчас осознаю — если бы я родился на 15 лет позже, я бы не написал ни одной строчки. Но я бы всё равно создавал отличные продукты.

Это не антиутопическая фантазия. Это траектория, по которой мы движемся. AI-агенты уже могут генерировать код, писать тесты, создавать миграции и отправлять pull request'ы. Вопрос, который не даёт мне покоя: когда AI пишет код, важна ли ещё архитектура программного обеспечения?

В моей предыдущей статье я исследовал инструменты и агентов, которые меняют IT-разработку — «что» революции AI. Эта статья идёт глубже. Она о «как» — как AI меняет наше мышление о коде, архитектуре и всей индустрии. Она объединяет мои личные размышления, разговоры с десятками разработчиков, исследования новых методологий и наблюдения за экосистемой в состоянии стремительной трансформации.

Читать далее

Awesome Claude Code: AI-помощник для PHP-архитектора

Reading time10 min
Reach and readers11K

Компоненты Claude Code для PHP: аудит (архитектура, DDD, безопасность, производительность, PSR, шаблоны проектирования, Docker, CI/CD, тесты, документация), 3-уровневая проверка кода, автоматическое исправление ошибок, генераторы, объяснение кода, рефакторинг. Более 300 компонентов. Более 50 агентов. Более 200 навыков.

Читать далее

Эра ИИ. Как ИИ-агенты меняют IT разработку

Level of difficultyEasy
Reading time16 min
Reach and readers10K

Последние несколько лет в IT происходило то, что десятилетиями считалось фантастикой. АI перестал быть игрушкой исследовательских лабораторий и превратился в реальный рабочий инструмент, который меняет подход к написанию кода, проектированию архитектур и само мышление о разработке.

Мы стоим на пороге когнитивной автоматизации — эпохи, где рутинные и шаблонные задачи делегируются машинам, освобождая нас для решения по-настоящему сложных и креативных проблем. Это не про замену, а про суперпозицию: ИИ в роли младшего разработчика, ревьюера, QA-инженера и даже архитектора, работающего 24/7.

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

Читать далее

DDD, CQRS, EDA, ES, Clean, Layer, Hexagonal in one application

Level of difficultyHard
Reading time23 min
Reach and readers7.9K

На одной из конференций по разработке ПО я разговорился с коллегой о современных подходах и архитектурных паттернах. В ходе беседы он задал мне, казалось бы, простой вопрос:

 «Какой архитектурный паттерн используется в твоём текущем проекте?»

Этот вопрос заставил меня задумать и взглянуть на проблему выбора архитектуры под другим углом. Возможно, повлияла атмосфера конференции (всё-таки они должны приносить пользу), но я задумался: почему при разработке приложений мы чаще всего закладываем один архитектурный паттерн, а не комбинацию нескольких? Однако, как показал личный опыт и обсуждения в профессиональном сообществе, этот вопрос часто подразумевает поиск единственного правильного ответа. В реальности же, на практике, мы нередко видим, как команды стремятся придерживаться одного доминирующего подхода — будь то акцент на CQRS, строгое следование Hexagonal Architecture или применение DDD в объеме текущего понимания и опыта команды. Но мало кто пытаеться применить сразу несколько подходов, где каждый паттерн решает свою задачу.

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

Читать далее

Масштабирование под нагрузкой: горизонтальные и вертикальные подходы

Level of difficultyMedium
Reading time20 min
Reach and readers8.6K

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

Читать далее

Грехи программиста: MVC

Level of difficultyEasy
Reading time28 min
Reach and readers16K

Использование MVC — это удобная отправная точка для небольших и средних проектов. Он прост, широко понятен и поддерживается большинством фреймворков. Однако по мере роста продукта MVC становится архитектурным тормозом: он нарушает принципы модульности, затрудняет тестирование и ведёт к плотной связанности компонентов.

Читать далее

Мосты цифрового мира: клиент-сервер, сервер-сервер

Level of difficultyEasy
Reading time26 min
Reach and readers4K

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

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

Читать далее

Обработка ошибок и их стратегии

Level of difficultyMedium
Reading time31 min
Reach and readers6.2K

В мире разработки бизнес-приложений, особенно построенных по принципам Domain-Driven Design (DDD), важным элементом архитектуры является обработка ошибок. Неправильно реализованная стратегия может привести к логическому хаосу и плохому пользовательскому опыту. Представьте, если ошибка базы данных попадёт напрямую в UI — это не только некрасиво, но и опасно.

Слоистая архитектура предполагает чёткое разделение ответственности:

Читать далее

Разбор уровней валидации

Level of difficultyMedium
Reading time22 min
Reach and readers10K

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

Почему это важно?
Выбор стратегии напрямую влияет на:

Читать далее

Связывая Контексты: Руководство по Эффективному Взаимодействию

Level of difficultyHard
Reading time26 min
Reach and readers4.7K

В предыдущей статье “Упакуйте свой код правильно” мы рассмотрели различные подходы к организации кода, включая монолитную и многослойную архитектуры, принципы чистой архитектуры, а также концепцию Bounded Context (ограниченного контекста) в Domain-Driven Design (DDD). Мы узнали, что Bounded Context помогает структурировать сложные системы, разделяя их на логические части, каждая из которых имеет собственную модель предметной области с четкими и непротиворечивыми правилами.

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

Читать далее

Упакуйте свой код правильно

Level of difficultyHard
Reading time13 min
Reach and readers14K

В предыдущей статье «Как организовать структуру приложения» обсуждались различные подходы к организации кода, включая монолитную архитектуру, многослойную архитектуру и принципы чистой архитектуры. В ней я  акцентировал внимание на важности понятной структуры кода, которая облегчает понимание, внедрение новых функций и снижает вероятность ошибок. Особое внимание уделялось критериям понятности, таким как чёткое назначение файлов и папок, разделение логики по модулям или функциональным зонам, использование самодокументируемых названий и соблюдение стандартов кодирования. Также были рассмотрены проблемы, возникающие при неструктурированной организации кода, такие как сложность навигации, отсутствие модульности и нарушение принципов SOLID и GRASP.

Читать далее

Как организовать структуру приложения

Level of difficultyMedium
Reading time11 min
Reach and readers21K

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

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

Читать далее

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

Level of difficultyMedium
Reading time9 min
Reach and readers31K

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

Читать далее

Из легаси в конфетку: история трансформации

Level of difficultyMedium
Reading time22 min
Reach and readers2.7K

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

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

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

Читать далее

Советы Team/Tech Lead: навыки, инструменты и вызовы

Level of difficultyMedium
Reading time9 min
Reach and readers7.5K

Team Lead и Tech Lead – это НЕ должности, а ключевые функциональные роли в команде, которые могут взять на себя опытные специалисты. Team Lead отвечает за организацию работы команды, поддержание продуктивной среды и помощь коллегам в достижении общих целей. Tech Lead фокусируется на техническом направлении, принимая архитектурные решения и обеспечивая качество проекта. Эти роли требуют не только профессиональных навыков, но и способности направлять, вдохновлять и поддерживать команду. В этой статье я поделюсь основными навыками, инструментами и вызовами, с которыми сталкиваются Team и Tech Leads, а также расскажу, как справляться с трудностями и добиваться успеха в этих ролях.

Читать далее

Путь к мастерству: Как стать успешным разработчиком

Level of difficultyEasy
Reading time13 min
Reach and readers15K

👩‍💻 Программирование — это путь, полный вызовов и возможностей для роста. Я начал этот путь в 2010 году как Junior-разработчик и на данный момент достиг позиции Tech Lead, продолжая развиваться в профессии. Накопленный опыт позволяет мне с уверенностью говорить о тех шагах и подходах, которые я опишу в этой статье.

За все время разработки мне довелоcь работать с различными языками программирования, такими как Delphi, JavaScript, PHP и Go. И с разными доменами Cassine, CMS, Billing, Gamblink, Marketplace

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

Читать далее

Information

Rating
1,879-th
Location
Valencia, València, Испания
Date of birth
Registered
Activity

Specialization

Backend Developer
Lead
PHP