Сегодня поговорим про реализации решения конфликтов в local / offline-first – это когда ваше приложение позволяет пользователям работать полностью или частично оффлайн, а когда они выходят в сеть, синхронизировать все их изменения.Примеры таких приложений: Notion-like редакторы, Figma-like вайтборды или Linear-like таск менеджеры.Основная идея – коллаборация, а коллаборация несет за собой конфликты, разберем очень наглядный пример:Что делать, если 2 человека одновременно поменяли название докум…
Команда Go for Devs подготовила перевод статьи о релизе Genkit Go 1.0 — open source AI-фреймворка от Google для экосистемы Go. Теперь можно быстро и безопасно создавать продакшен-ready AI-приложения с типобезопасными флоу, поддержкой RAG, вызова инструментов и богатым локальным тулчейном.Мы рады представить Genkit Go 1.0 — первый стабильный, готовый к продакшену релиз открытого AI-фреймворка от Google для экосистемы Go. Вместе с релизом мы запускаем команду genkit init:ai-tools, которая ускорит…
Курсами по тестированию или разработке на Go сейчас мало кого удивишь. Но что если это курсы от вендора IT-инфраструктуры, где преподаватели — реальные инженеры с многолетним опытом, а программа позволяет выполнить реальный проект для портфолио и погрузиться в тонкости тестирования специфического оборудования — систем хранения данных, базовых станций, операционной системы? Если вы студент — второкурсник бакалавриата и старше, не упустите возможность пройти бесплатные курсы от YADRO. Для начала …
Команда Go for Devs подготовила перевод статьи о том, как отлаживать приложения на Go. Автор показывает, что баги бывают разными: воспроизводимые, случайные, гейзенбаги и конкурентные. А в арсенале Go-разработчика должны быть — TDD, стратегическое логирование, Delve, git bisect и даже онлайн-отладчик GoTutor.Не все баги одинаковы. Одни легко обнаружить и устранить с помощью отладчика. Другие могут проявляться редко или быть крайне неочевидными — искать их всё равно что искать иголку в стоге сен…
Наверное, многим знакомо - пишешь ты на языке (вот скажем, Go) уже не первый год - а на собеседовании всё равно найдут чем удивить :) Вот поделюсь уловом последних дней - не смейтесь над моей наивностью - вдруг кому пригодится!Суета вокруг defer-аДефером мы часто пользуемся (ну хотя бы чтобы мьютексы разлочить) но немного запутать им всё-таки можно. Что напечатает такой код?package main func pipa(x int) { println("pipa", x) } func main() { a := 3 defer pipa(a) defer fu…
Команда Go for Devs подготовила перевод статьи о новом экспериментальном API для работы с JSON в Go. Спустя почти 15 лет после появления encoding/json в стандартной библиотеке разработчики столкнулись с его ограничениями. В версии Go 1.25 появился экспериментальный encoding/json/v2 — он решает старые проблемы, добавляет потоковую обработку и повышает производительность.ВведениеJavaScript Object Notation (JSON) — это простой формат обмена данными. Почти 15 лет назад мы написали о поддержке JSON …
Авторы статьи: Артем Зубков, Junior администратор отдела DevOps.В современных распределённых системах надёжность и безопасность инфраструктуры напрямую зависят от корректного функционирования криптографических компонентов, в частности — SSL/TLS-сертификатов. Одним из критически важных аспектов эксплуатации таких систем является своевременный мониторинг срока действия сертификатов, поскольку их просрочка может привести к нарушению работы сервисов, недоступности API, сбоям в аутентификации и даже…
Команда Go for Devs подготовила перевод статьи о скрытых возможностях Gin-фреймворка. Даже если вы давно пишете API на Go, в арсенале Gin есть несколько приёмов, которые сделают ваш код быстрее, надёжнее и проще в сопровождении. От кастомных валидаторов до graceful shutdown — фишки, о которых знают не все. При создании веб-API на Go, фреймворк Gin часто становится первым выбором благодаря своей скорости и простоте. Большинство разработчиков знакомы с его базовыми возможностями, но у Gin есть и …