Blog

A collection of 108 posts
Разработка мессенджера Loopin
blog

Разработка мессенджера Loopin

1. Введение (Introduction) 1.1 Фон проекта Существующая старая структура мессенджер-сервисов испытывает трудности с адаптацией к изменяющейся веб-среде, и в отношении обслуживания существует множество неудовлетворительных моментов. Проект 'Loopin' был запущен с целью демонтажа этой системы Smalltalk и реконструкции (Refactoring) на современной платформе Vizend. Ключевая ценность мессенджер-
6 min read
Инструменты миграции схемы БД: как выбрать?
blog

Инструменты миграции схемы БД: как выбрать?

Сравнили Flyway, Liquibase, Bytebase и Atlas в среде MSA·DDD и разобрали, что выбрать в зависимости от ситуации. 1. Схема меняется без остановки В DDD, MSA и облачной нативной среде схема базы данных не является фиксированным активом. Она продолжает меняться на протяжении всего времени работы сервиса. Причина в домене. Сущности
11 min read
От планирования до тестирования: опыт цикла разработки
blog

От планирования до тестирования: опыт цикла разработки

1. Введение Процесс, через который проходит экран, прежде чем быть представленным пользователю, гораздо более длителен, чем кажется. Он начинается с планирования, затем идет запрос на публикацию, разработка, тестирование — и все это связано в единый поток. На этот раз я взял на себя большинство процессов, кроме публикации. Эта статья является записью,
6 min read
Проблема задержки ответов, решенная с помощью стратегии кэширования
blog

Проблема задержки ответов, решенная с помощью стратегии кэширования

1. Обзор Основная задача, с которой я столкнулся при управлении сервисом MyData, заключалась в задержке ответа главного экрана, возникшей на фоне быстрого роста числа пользователей. Структура, которая изначально не была проблемой, проявилась в виде ощутимой задержки по мере увеличения числа пользователей. В этой статье изложено, как была диагностирована и решена
8 min read
Опыт применения OpenHTMLtoPDF
blog

Опыт применения OpenHTMLtoPDF

1. Введение Во время выполнения проекта возникла необходимость в функции, позволяющей пользователям загружать данные смет и документов в формате PDF. Сначала я думал, что достаточно просто создать PDF-файл, но на самом деле в процессе проверки возникло множество факторов, которые нужно учитывать. * Поддержка вывода на корейском * Удобство редактирования макета * Проблемы
4 min read
MSA управление качеством через CI-ворота
blog

MSA управление качеством через CI-ворота

1. Причины, по которым система управления качеством была размещена в CI В настоящее время я участвую в консалтинге MSA в роли инженера DevOps. Когда речь заходит о консалтинге, обычно на ум приходят такие аспекты дизайна, как границы сервиса или разделение доменов, но моя область ответственности не эта, а система управления
11 min read
Стандарт промышленного IoT, MQTT
blog

Стандарт промышленного IoT, MQTT

1. Промышленный IoT и сбор данных В современных производственных предприятиях IoT-технологии используются для различных целей, таких как мониторинг состояния оборудования, анализ производственных данных и дистанционное управление. Оборудование, такое как PLC, датчики и роботы, постоянно генерирует данные, и эффективный сбор и использование этих данных является одним из важных факторов создания
6 min read
Унификация стиля кода с помощью ESLint и Prettier
blog

Унификация стиля кода с помощью ESLint и Prettier

1. Фон Если в предыдущей статье мы рассматривали физическую структуру на основе монорепозитория (Monorepo), то в этот раз мы поговорим о том, как унифицировать правила написания кода между разработчиками, которые пишут код на этом уровне. По мере увеличения масштаба проекта увеличилось количество случаев, когда несколько разработчиков редактируют один и тот
5 min read
Составление тестовых данных на основе фиксирующего элемента
blog

Составление тестовых данных на основе фиксирующего элемента

1. Введение Во время реализации проекта часто возникает ситуация, когда при понимании необходимости "написать тестовый код" мы откладываем это из-за нехватки времени. Я сам через это проходил. В начале разработки бэкенд-сервиса я проверял функции вручную через Insomnia или интерфейс без тестового кода. Однако с увеличением масштаба
7 min read
Куда делись все токены?
blog

Куда делись все токены?

Когда вы начинаете использовать LLM в работе, сначала кажется, что наиболее важным является то, насколько коротко и четко вы пишете запросы. Я также думал в начале, что чтобы сэкономить токены, мне нужно сократить вводимые мной предложения. Однако, используя такие инструменты-разработчики, как Codex, я изменил свое мнение. На самом деле,
7 min read
Требования, ИИ, составление блок-схемы
blog

Требования, ИИ, составление блок-схемы

1. Вводная часть: планировщик разрабатывает не 'экран', а 'процесс' В IT-индустрии роль планировщика сервиса часто ошибочно воспринимается как 'человек, который делает эскизы и рисует экраны'. Это связано с тем, что работа по расстановке кнопок и созданию вайрфрейма наиболее заметна. Однако визуальный экран является
6 min read
Примеры реализации службы управления опросами
blog

Примеры реализации службы управления опросами

1. Предпосылки проекта и выбор технологий Сервис анкетирования является ключевым сервисом медицинской платформы, обрабатывающим результаты, которые пациенты сообщают сами (PRO, Patient-Reported Outcome), и отвечает за весь жизненный цикл анкеты от определения формата анкеты до отправки, сбора ответов и завершения. Оценка, статистика и обработка отчетов выделены в отдельный метрический сервис,
7 min read
Повышение удобства обслуживания с помощью проектирования повторного использования Devlime
blog

Повышение удобства обслуживания с помощью проектирования повторного использования Devlime

1. Фон Разработка Devlime была организована таким образом, что несколько разработчиков одновременно работают над своими функциями и областями. Поскольку она разрабатывается на основе платформы Vizend, структура проекта и основные методы разработки были в какой-то степени унифицированы, а общая архитектура также была хорошо установлена. Однако по мере увеличения масштаба продукта
5 min read
Рассмотрение стратегий кэширования в React Query
blog

Рассмотрение стратегий кэширования в React Query

1. Введение: Состояние сервера (Server State) — когда оно устаревает При эксплуатации фронтенда пользователи часто сообщают о двух типах проблем. Одна из них: «Я только что зарегистрировался, но не вижу в списке», а другая — «Я просто сидел, и экран вдруг мигнул и перезагрузился». На первый взгляд эти два симптома кажутся не
8 min read
Улучшение управления состоянием page_hint в Keycloakify
blog

Улучшение управления состоянием page_hint в Keycloakify

Введение В текущем проекте я занимаюсь обслуживанием экранов входа и управления учетными записями на базе Keycloak. На этот раз я обнаружил проблему, когда экран первоначальной настройки учетной записи сотрудника переключается на экран восстановления пароля при обновлении, и проанализировал её причины. Сначала я думал об этом как о стандартном React SPA,
6 min read
Моё первое знакомство с мобильным UI
blog

Моё первое знакомство с мобильным UI

Введение После поступления на работу я продолжал разрабатывать дизайн с акцентом на веб-интерфейсы. Затем я был включен в проект Bizend, и на основе системы дизайна Bizend продолжил работу над дизайном веб-экранов, в течение более года постепенно накапливая веб-ориентированное восприятие. Я понял, сколько пространства нужно оставить для дыхания,
6 min read
Декларативная привязка формы
blog

Декларативная привязка формы

1. Введение Реализация форм для изменения данных через диалоговые окна или модальные экраны является одной из самых распространённых, но при этом сложных задач в разработке веб-приложений. Особенно это касается таких страниц, как администраторская или дашборд с 'экраном изменения детальной информации о контенте', где необходимо асинхронно искать детальные
5 min read
Анализ HeapDump с использованием MAT
blog

Анализ HeapDump с использованием MAT

Классика анализа производительности, Heap Dump Во время работы над проектом в среде K8s мы обнаружили случай, когда определённый под перезапускался многократно. Чтобы выяснить, почему под перезапускается, мы рассмотрели свойство Last State, и причиной, конечно, оказался OOM. Обычно случаи бесконечного перезапуска пода в основном вызваны OOM Killed. Чтобы найти причину OOM
7 min read
Управление кэшем с использованием паттерна одиночка
blog

Управление кэшем с использованием паттерна одиночка

1. Введение Управление правами доступа пользователей является одной из очень важных функций в корпоративных услугах. То, какие меню пользователь может просматривать, какие функции использовать и к каким данным получить доступ, зависит от информации о правах. Текущий сервис также имел структуру, при которой меню, отображаемое пользователю, изменялось в зависимости от прав
7 min read
putlfAbsent(): пределы и улучшение обнаружения изменений
blog

putlfAbsent(): пределы и улучшение обнаружения изменений

1. Введение В системах мониторинга в реальном времени часто требуется синхронизировать метаданные вычислительных формул между несколькими службами. В этом проекте также была необходима возможность отправки событий при создании или изменении формул, чтобы передавать изменения другим службам. В начальной реализации использовалась ConcurrentHashMap и его метод putIfAbsent() для предотвращения дублирования одной и
6 min read
Эра ИИ: «Следующее» для дизайнеров
blog

Эра ИИ: «Следующее» для дизайнеров

Недавнее быстрое развитие инструментов дизайна с использованием ИИ также привело к увеличению размышлений о роли дизайнера. Ранее основными задачами дизайнера было напрямую разрабатывать экраны и создавать компоненты, однако теперь пришло время, когда ИИ может создать значительный уровень UI за короткое время. Наблюдая за тем, как ИИ всё больше создаёт правдоподобные
6 min read
Использование паттерна фабрики ключей в React Query
blog

Использование паттерна фабрики ключей в React Query

1. Введение: почему важен ключ запроса При первом внедрении React Query (TanStack Query) большинство людей начинает с этого. useQuery({ queryKey: ['product-list'], queryFn: fetchProducts }); useQuery({ queryKey: ['product', productId], queryFn: () => fetchProduct(productId) }); useQuery({ queryKey: ['project-health', productId], queryFn: () => fetchHealth(productId) }); Когда компонентов немного,
5 min read
LLM агент по кодированию: методы управления задачами
blog

LLM агент по кодированию: методы управления задачами

- Применение Task/Plan Harness - 1. Введение В последнее время доля использования инструментов кодирования на основе LLM в разработке все больше растет. Я также начал использовать Codex, чтобы повысить продуктивность проектной работы. Сначала я использовал его в обычном режиме. Я описывал необходимые задачи в виде подсказок, а затем проверял результаты, написанные
11 min read
Мгновенная платформа неявных знаний в эпоху мегапо программного обеспечения
blog

Мгновенная платформа неявных знаний в эпоху мегапо программного обеспечения

Введение: Огромные изменения в программных парадигмах История технологического прогресса человечества следовала последовательному закону, основанному на эволюции орудий труда и расширении масштабов их результатов. В прошлом плотник строил дом, полагаясь на опыт умельца, используя только молоток и ручную пилу. Архитектура того времени была строго сосредоточена на личных способностях, и завершенные здания
11 min read
История создания Text2SQL
blog

История создания Text2SQL

С недавним развитием технологий ИИ также произошли значительные изменения в способах использования данных. Чтобы решить проблему, как быстрее и точнее обрабатывать многочисленные запросы на извлечение данных (Ad Hoc), поступающие из бизнеса, я хочу исследовать последние тенденции технологии 'Text2SQL' и поделиться материалами для рассмотрения внедрения проекта. 1. Проблема: задолженность,
5 min read
Site footer