Новости

Post Thumbnail

Soppo

Какая-то неожиданная волна новых языков, похожих на Go, только с блэкджеком и гулящими женщинами. Сегодня, пока я шароёблюсь где-то по Краснодарскому краю, вы можете посмотреть на ещё один такой язык — Soppo. Очень похож на Go, но есть енумы и паттерн-матчи...

Post Thumbnail

Только свои ошибки

В многослойном Go-сервисе легко случайно пропустить наверх ошибки хранения данных (например, sql.ErrNoRows) вплоть до самых обработчика HTTP или gRPC и это приводит к связыванию транспортного уровня с деталями реализации базы данных. Чтоб такого не случалос...

Post Thumbnail

Паттерн репозиторий

Да да, банально, но всегда интересно смотреть кто как реализует разные паттерны Автор объясняет, как паттерн "репозиторий" помогает отделить бизнес-логику от деталей реализации хранения данных, что делает код более тестируемым, масштабируемым и гибким. Суть...

Post Thumbnail

Байтоебство

Статья объясняет, как использовать битовые флаги и битовые маски в Go для эффективной конфигурации вместо множества булевых полей в структурах. Автор показывает идиоматический паттерн с iota для генерации степеней двойки (1, 2, 4, 8…), демонстрирует основные б...

Post Thumbnail

Разбудить по сети

В статье подробно объясняется, как работает технология Wake-on-LAN, которая позволяет удаленно включать компьютер по сети. Автор разбирает структуру "волшебного пакета" (Magic Packet), который состоит из синхронизационной последовательности шести байт FF и...

Post Thumbnail

Factor

Вечер пятницы, а это значит что? Правильно! Новый язык программирования. Язык программирования Factor - это конкатенативный, стековый язык программирования с высокоуровневыми возможностями, включающими динамическую типизацию, расширяемый синтаксис, макросы ...

Post Thumbnail

Черный ящик

Вдохновившись механизмом trace.FlightRecorder, появившимся в Go 1.25, автор решил применить ту же концепцию "черного ящика" к логам: хранить последние N записей в кольцевом буфере без аллокаций на горячем пути, снэпшот по требованию и асинхронный сброс при оши...

Post Thumbnail

Версионирование

В статье автор делится опытом разбора инцидента, где отсутствие информации о версиях приложения привело к многократной задержке устранения проблемы. Он утверждает, что в отличие от бытовой техники с детальной маркировкой версий, в разработке ПО стандарты в...

Post Thumbnail

Константные мапы

В Go существует стандартная карта, которая для миллиона записей потребляет около 56 байт на ключ. Однако если карта создаётся один раз, не изменяется и все ключи заведомо существуют, можно значительно сократить расход памяти. Библиотека constmap реализ...

Post Thumbnail

Вызываем Rust из Go

В принципе, нет никаких сложностей работать с Rust через cgo. Но автор решил заморочиться. В статье описывается создание Go-драйвера для базы данных Stoolap, работающего без cgo. Автор объясняет, почему отказался от стандартного cgo и WASM. Решение осно...

Post Thumbnail

Шаги

В статье Крис Лесив рассматривает подход к организации многошаговых последовательных процессов в Go, вдохновлённый лексическим анализом из доклада Роба Пайка. Автор предлагает заменить линейные bash-скрипты и громоздкие функции-оркестраторы на конечный авт...

Post Thumbnail

Условное выражение

Наверняка вы когда-то задавались вопросами "А есть ли в этом вашем Go тернарный оператор? Нет? А почему?" А может быть, мы и сами в состоянии изменить язык Go, чтобы поддержать в нём условное выражение? Давайте-ка попробуем погрузиться в недра его компилято...

Post Thumbnail

Lisette

Так, у нас тут пятница, а это значит время новых языков программирования. Сегодня у меня для вас Lisette - это минималистичный язык програмирования, вдохновленный Rust, который компилируется в Go и работает на Goшном рантайме. Получается куча всяких ништяко...

Post Thumbnail

Переписать с AI

Саксес стори как с помощью AI переписали популярный проект JSONata на Go Результат - gnata, чистая реализация JSONata 2.x на Go. Семь часов, $400 на токенах, ускорение типовых выражений в 1000 раз и начало цепочки оптимизаций, которая в итоге сэкономила раз...

Post Thumbnail

Собеседование Go

Готовитесь к собесу на Go разработчика? Вам пригодится подборка задач по гошке. Есть самые разные задачи для всех уровней. Самое то, чтобы потренироваться и поправктиковаться в лайвкодинге

Post Thumbnail

Снова про сборщик мусора

В предыдущей статье автор исследовал планировщик Go - как горутины мультиплексируются в потоки операционной системы, модель GMP и все приёмы, которые среда выполнения использует, чтобы держать ваши ядра занятыми. Но осталась одна фундаментальная проблема, ...

Post Thumbnail

Визуализация памяти

В этой серии статей автор объясняет концепции управления памятью простыми словами и подробно рассмотривает, как устроено управление памятью в некоторых современных языках программирования. Надеюсь, эта серия поможет вам заглянуть под капот этих языков с точки ...

Post Thumbnail

Asynq

Каждому Go-бэкенду рано или поздно требуются фоновые задачи. Вы начинаете с горутины, затем вам нужны повторные попытки, потом дедупликация, а затем вы понимаете, что перезапуск сервера только что убил 2000 полуобработанных задач. Сейчас уже есть куча разли...

Post Thumbnail

Solod

Свежий язык программирования на пятницу - Solod Этот язык - строгое подмножество Go, которое транслируется в читаемый код на C11. Он сочетает синтаксис, типобезопасность и инструментарий Go с производительностью и контролем памяти, характерными для C. Т...

Post Thumbnail

JIT в Go

Это почти техническое руководство по реализации JIT-компиляции в Go с акцентом на вызов Go-функций из динамически сгенерированного кода. Автор объясняет фундаментальную проблему, связанную с двумя ABI и строгими требованиями к стеку из-за сборщика мусора. ...

Post Thumbnail

Названия переменных

Как известно, две самые сложные проблемы в программировании - как инвалидировать кеш и как называть переменные. В этой статье автор пытается ответить на второй вопрос. И дает много много рекомендаций: использование camelCase для неэкспортируемых и PascalCas...