

- Главная
- Каталог
- Интернет технологии
- Backend Portal | Программирование
Backend Portal | Программирование
Присоединяйтесь к нашему каналу и погрузитесь в мир Backend-разработки Связь:
Статистика канала
Полная статистикаchevron_right
order.approve(paymentConfirmation);{}
А не вот так:
order.validate();
order.setStatus(3);{}
Единый язык можно проверять так:
Код выражает смысл?
Или он выражает только реализацию?
Почему его так сложно внедрять
Честно, точно сказать сложно. Из того, что я видел, — это сильно бьёт по многим разработчикам.
Особенно потому, что нас заставляют менять язык, который мы годами видели, слышали, читали и использовали. А такой сдвиг даётся нелегко.
И ещё важный момент
Единый язык — это не религия.
Его не обязательно применять в каждом проекте и в каждой команде.
Есть домены настолько хаотичные, широкие или постоянно меняющиеся, что построение общего языка обходится дороже, чем приносит пользы.
И это нормально.
DDD — это не догма, это инструмент.
Используй его, когда он помогает прояснить модель, снизить неоднозначность и принимать более точные решения.
Не используй, когда поддержка этого языка стоит дороже, чем выгода.
Важно не «делать DDD», а моделировать софт так, чтобы команда могла лучше думать и лучше строить.
Если Единый язык тебя к этому приближает, значит, он занял своё место не зря.
“0” перед словом “github” в URL любого Pull Request, и у тебя откроется полноценный PR-вьювер, который подсвечивает каждую строку diff’а цветом в зависимости от того, сколько внимания от человека она, скорее всего, требует.
Он ищет не только баги. Он подсвечивает всё, что заслуживает второго взгляда: захардкоженные секреты, странные крипторежимы, подозрительную логику или грязный код.
Очень полезный способ быстрее проводить code review и находить то, что обычно легко пропустить.
Как бы ты спроектировал распределенную систему cron-планирования, которая гарантирует, что задачи будут запускаться ровно один раз, вовремя, на нескольких нодах, без коллизий и дубликатов?Как к этому подойти: Начни с базовых требований: • централизованно определять и хранить расписания • несколько scheduler-нод, но в конкретный момент только одна должна триггерить задачу • задачи должны выполняться ровно один раз, даже если ноды рестартуют или падают • поддержка ретраев, backoff и идемпотентных обработчиков • видимость last-run и next-run Архитектура системы: • Control Plane: UI/API для создания cron-задач • кластер scheduler-ов • распределенный локинг (Redis, Zookeeper, Etcd, DynamoDB) • пул воркеров, который выполняет задачи • хранилище результатов и метаданных Гарантия, что задачу триггерит только одна нода: • на каждую задачу используется отдельный распределенный лок • нода, которая захватывает лок, и запускает выполнение • у лока есть TTL, чтобы не виснуть навечно • если нода умерла, другая подберет задачу на следующем тике Как работает планирование: • все scheduler-ноды подгружают cron-описания • каждую секунду каждая нода проверяет, что надо запускать • если задача должна стартовать, нода пробует взять лок • победитель отправляет задачу в пул воркеров Ретраи и ошибки: • у каждой задачи свои правила ретраев (число попыток и backoff) • при ошибке создается событие retry • ретраи тоже проходят через тот же механизм локов • воркер должен быть идемпотентным, чтобы переживать редкие дубликаты Масштабирование воркеров: • воркеры должны быть stateless и масштабироваться горизонтально • задачи — это сообщения с job ID и payload • используется очередь/брокер (Kafka, SQS, RabbitMQ) • планирование отделено от выполнения Консистентность и надежность: • cron-определения хранятся в консистентной базе • scheduler-ноды держат копии в памяти и периодически обновляют • сохраняется история запусков (start, end, статус, ошибка) • можно включить catch-up для пропущенных запусков Обсервабилити: • метрики next_run_at, last_run_at, длительность, успех/ошибка • Prometheus-метрики и трассировка медленных задач • алерты на зависшие задачи и повторные фейлы • UI с инфой, какая нода выполняла какой запуск Как ответить на собесе:
Я бы построил распределенный cron с централизованным управлением расписаниями, несколькими scheduler-нодами и распределенным локом, чтобы задача триггерилась ровно один раз. Выполнение вынесено в пул воркеров, каждый запуск логируется, ретраи координируются через очередь, и система остаётся консистентной даже при падении нод.
Отзывы канала
всего 2 отзыва
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Backend Portal | Программирование — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 17.3K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 14.7, количество отзывов – 2, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 4195.8 ₽, а за 10 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий