Данная статья содержит размышления о сильных и слабых сторонах обоих языков. Кода нет, смысла не так чтобы много — чистое словоблудие и мнение рядового разработчика. Если интересно, велком под кат.В данной статье много воды, отражены мысли и опыт воспалённого мозга, потому заранее предупреждаю: вы можете просто зря потерять своё время. Данную и любую статью нужно читать с включённым критическим мышлением и вообще понимать, что автор — «профессор лука».Идея статьи родилась в связи с повсеместной…
Я открыл свою панель помощи и прочитал в ней про эскалации:Внутри лесенки каждая ступень уходит по своей задержке (0 = сразу); последующие ступени расширяют круг получателей.Вторая половина фразы - неправда. Ступени не расширяют круг получателей. У каждой ступени свой набор каналов, никак не связанный с предыдущей. Ступень, на которой не отмечен ни один канал, не уведомит никого - даже если каналы отмечены на первой.Разница не косметическая. Человек читает подсказку, отмечает Telegram на первой…
Привет, Хабр!Меня зовут Дмитрий, я инженер в Группе Rubytech — компания производит программно‑аппаратные комплексы Скала^р и разрабатывает технологии для высоконагруженных ИТ‑инфраструктур.Вообще, наше подразделение занимается базами данных, но сегодня я расскажу про задачу, которая напрямую не была связана с рабочими обязанностями, зато ее решение сделало куда проще жизнь наших инженеров. Ниже лирическое отступление про офис, скоро вы все поймете.Помимо основного здания рядом (действительно ря…
Вышел PVS-Studio 8.0! Мы добавили поддержку анализа Go проектов и многое другое. В этой статье мы разберем интересные диагностические правила для Go, которые мы подготовили с выходом новой версии нашего анализатора.ВведениеВ PVS-Studio 8.0 официально появилась поддержка анализа Go проектов, а также возможность работы из IDE GoLand и Visual Studio Code (если вы используете Go).А ещё плагин для Visual Studio Code был значительно переработан и получил поддержку не только анализа Go проектов, но и …
Когда начинаешь делать AI-фичу в backend-приложении, первая архитектурная идея обычно выглядит очень здраво: спрятать конкретного провайдера за интерфейсом.Что-то вроде:type LLMProvider interface { Generate(ctx context.Context, req Request) (Response, error) }Сегодня за ним OpenAI-compatible API, завтра другой провайдер, послезавтра локальная модель. Код бизнес-логики от конкретного SDK не зависит, значит архитектурная задача вроде бы решена.Я тоже начинал примерно с этого. Но по мере того …
SVG4 — каталог векторных иконокБольше года назад я запустил SVG4 — каталог векторных иконок. Сейчас в нём больше 500 000 SVG‑файлов. Первая версия была написана на Laravel, и на тот момент выбор был вполне логичным: Laravel я хорошо знал, на нём можно было быстро собрать рабочий проект и проверить, нужен ли он вообще кому‑нибудь. Проект оказался нужен, начал расти, а вместе с ним росли база, количество страниц, поисковый трафик и нагрузка. Старая версия в итоге работала на сервере с 4 ядрами и …
У меня был доступ к последним Qwen, GLM и Sol. Рядом лежали аккаунты ко всяким Claude c Astra. Не то, чтобы все это реально требовалось для разработки эмулятора ZX-Spectrum, но остановиться было тяжело. В итоге эмулятор получился просто на загляденье и вы можете прочитать про боли и решения в реальном проекте. TL;DR: Да, за год БЯМки сильно подросли в своих умениях. Сегодня я смело могу утверждать, что по своему уровню они достигли джунов. Если убрать скорость и стоимость за скобки, то это по…
ЗадачаОдин бизнес-сценарий часто изменяет данные через несколько репозиториев. Все операции должны завершиться вместе, но передавать транзакцию аргументом каждого метода неудобно, а открывать её внутри одного репозитория недостаточно.СутьВ статье транзакция хранится в context.Context, её открывает use case, а перед каждым вложенным Transaction менеджер сначала выполняет ExtractDB.В примерах используется GORM, но идея не привязана к ORM. Аналогичный менеджер можно написать поверх database/sql, p…
В свободное время пишу на чистом Go порты CRDT-движков: Yjs с JavaScript и Loro с Rust. CRDT это структуры, на которых держится совместное редактирование, когда несколько человек правят одно и то же одновременно. Пока портировал, пришлось разобрать алгоритмы до байта, и оказалось, что главный фокус там объясняется на пальцах, без формул. Эта статья про него: как два человека правят текст в разных местах, офлайн, а потом копии сходятся в одну и ту же строку. Символ в символ, без сервера, который…