RU

Как опубликовать внутренний API из DMZ, если соединения в LAN запрещены: пять подходов, которые мы проверили

Как опубликовать внутренний API из DMZ, если соединения в LAN запрещены: пять подходов, которые мы проверили Все пять схем мы собирали на  NEOM…

APIDMZАрхитектураБезопасностьHAProxyKafkaActiveMQ ArtemisWSO2NeoflexJava
Habr
RU

Платёж списывается дважды. Найдите причину в коде, который прошёл ревью

Платёжный сервис прошёл ревью, тесты зелёные, в базе один успешный платёж — а с карты списали деньги дважды. Причём в двух…

идемпотентностьдвойное списаниеплатёжный сервисраспределённые системыSpring BootJavaPostgreSQLретраиконкурентные запросымикросервисная архитектура
Habr
RU

Senior Java — это кто? Почему одинаковый title ещё не означает одинаковую работу

Две вакансии называются Senior Java. В одной ищут Spring/PostgreSQL/Kafka backend, в другой JMM, GC, lock‑free и low latency. А в&nbs…

JavaSenior JavaJava DeveloperbackendseniorityIT-рекрутментнайм в ITвакансиитехническое лидерство
Habr
RU

Робот доставщик дороже автомобиля, мокрая трава и открытый JDWP

Мы продали клиенту робота‑доставщика с интеграцией и пообещали запустить его в парке. Вскоре выяснилось: передать клиенту робота и передат…

робототехникаLinuxинформационная безопасностьреверс-инжинирингROSSLAMIoTкомпьютерные сетиJavaоблачные технологии
Habr
RU

Go сделали скучным — и после нейросетей это выстрелило

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

golangязыки программированиягенерация кодаLLMобратная совместимостьдженерикимногопоточностькомпиляторыJavaPython
Habr
RU

Бэкенд без лишних граблей: 13 статей о PostgreSQL, микросервисах и коде

Что общего у раздувшегося индекса, неудачно нарезанных микросервисов и лишнего std::move ? Все они выглядят безобидно, пока не доходят до продакшена…

бэкенд-разработкапроектирование системPostgreSQLбазы данныхмикросервисная архитектураC++Javaоптимизация производительности
Habr
RU

Producer-Consumer на Java, Go и Rust: одна задача и три уровня решения

Три уровня решения задачи производителя и потребителя: BlockingQueue в Java, каналы в Go и очередь без блокировок на Rust. Разбираемся, какой уровен…

JavaМногопоточностьGolangRustПаттерны проектированияПотоки и блокировкиСтатьи
Tproger
RU

Как я случайно напечатал инфляцию в Discord‑боте и переделал ставки в тотализатор

Всё, что ниже — из живого пет-проекта: бот начисляет участникам голосовых каналов баллы лояльности (LP), а на эти баллы люди устраивают пари в стиле…

JavaSpring BootJDADiscord-ботPostgreSQLконкурентностьидемпотентностьтотализаторигровая экономикатранзакции
Habr
RU

Разработчику нужно знать семь языков. Python, Go и Java в этот список не входят

Бывает так: код хороший, задачи закрыты, к технической части претензий нет. Но и повышения тоже нет. Или идею не взяли. А на интервью — отказ без вн…

GolangJavaPythonCEOCTOкарьера программистафакапы
Habr