Ru

4gophers

@gophernews · Технологии

Язык программирования Go https://4gophers.ru/

3 440подписчиков сейчас
70.0%ERR
1.0цитируемость
5постов/день
Русскийязык
Россиягео
Подписаться в Telegram
Данные обновлены 22.07.2020

Публикации всего: 62

Постов на странице: 10 30 50 Страница 1 из 7
C на Go #golang Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo для взаимодействия с C-библиотеками, без установленного C-тулчейна Предлагается описывать C-интерфейс на языке Go с помощью аннотаций //cgo:binding, а cmd/cgo будет генерировать прослойку на Go и ассемблере, обрабатывая C ABI самостоятельно. Это избавит конечных пользователей от необходимости ставить C-компилятор, упростит кросскомпиляцию, а пакетам нужно будет лишь один раз сгенерировать или написать binding-файл Но! Пока непонятно как обеспечить синхронизацию binding-файлов с C-кодом и как поступить с пакетом runtime/cgo, который пока содержит C-код https://kodikapusta.ru/news/1219-c-na-go Поддержать проект на boosty и читать в MAX
🔥 4 Перейти к публикации →
Rune #golang Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. Под капотом - GPU-ускорение, собственный терминал, REPL и расширяемое ядро, которое общается с расширениями по gRPC. Поддерживается, конечно, Go, а еще Rust и Zig. И еще у них появилась необычная программа вознаграждения контрибьюторов. Контрибьюторы сохраняют авторские права, а часть выручки компании пойдет в общий пул, распределяемый по прозрачному и публично проверяемому реестру вкладов. При этом участие в программе опционально. Возможно, я даже попробую слезть с VS Code и наконец-то начать пользоваться хоткеями А как она шикарно запускается! https://kodikapusta.ru/news/1216-rune Поддержать проект на boosty и читать в MAX
👍 2 Перейти к публикации →
Прокси для базы данных #golang Автор пишет простой такой прокси на Go в учебных целях вдохновившись статьей Figma о том, как их команда баз данных построила DBProxy для перехвата SQL-запросов и маршрутизации их по разным узлам Postgres. Он реализует проксирование TCP-соединений между клиентом и MySQL: перехватывает пакеты, находит команду COM_QUERY по структуре пакета MySQL и переписывает имя таблицы. В статье объясняется структура MySQL-пакета и демонстрируются базовые принципы, на которых строятся настоящие решения для шардинга, валидации запросов, безопасности и наблюдаемости https://kodikapusta.ru/news/1208-proksi-dlia-bazy-dannykh Поддержать проект на boosty и читать в MAX
🔥 4 Перейти к публикации →
У нас отмена! #golang Статья разбирает, как пакет singleflight в Go предотвращает лавину запросов к кэшу. Он прекрасно схлопывает одинаковые запросы в одну операцию, но есть нюансы Автор на примере IsleDB показывает "ловушку контекста первого вызывающего": если фетч использует контекст лидера, тот может отменить операцию для всех, а если контекст отсоединен, то хрен сделаешь грейсфул шатдаун. В итоге автор строит собственный протокол конкурентности с тремя гарантиями - каждый вызывающий может независимо прекратить ожидание, общая операция отменяется при уходе последнего ждущего, а гатдаун отклоняет новые вызовы, отменяет активную работу и ждет остановки всех воркеров https://kodikapusta.ru/news/1197-u-nas-otmena Поддержать проект на boosty и читать в MAX
🔥 3 Перейти к публикации →
Конкурентный сервер на Go #golang #learn Это восьмая часть серии о конкурентных сетевых серверах, в этот раз посвященная Go. В прошлый раз было про Rust Автор показывает, как язык решает описанные ранее задачи. Статья начинается с последовательного сервера с state machine, затем показывает конкурентную версию с одной горутиной на клиента. Для ограничения параллелизма предлагаются счетный семафор на канале и паттерн воркер пул, когда нужно сохранять состояние между задачами. Логично, что в Go почти никогда не нужно прибегать к async/event-driven программированию, потому что конкурентность встроена в язык и рантайм. Но интересно смотреть в сравнении с другими языками https://kodikapusta.ru/news/1203-konkurentnyi-server-na-go Поддержать проект на boosty и читать в MAX
Перейти к публикации →
Интересные баги #golang Команда sigma star(хз кто это) нашла и исправила давнюю ошибку в рантайме Go, проявлявшуюся только на 32-битных встраиваемых Linux-системах. Приложение периодически падало с ошибкой "runtime: netpoll: eventfd ready for something unexpected". Корень проблемы оказался в том, что Go хранит в 8-байтовом поле ev.Data два типа указателей - сырой указатель на event fd и тегированный указатель на pollDesc, а сравнение на 32-битных little-endian системах считывает лишь младшие 4 байта, из-за чего адрес event fd алиасился с fdseq. Как только долгоживущая программа накапливала миллионы пересозданных pollDesc, netpoll путал сокет с event fd и падал Ребята прям недра залезли. Представляю как они все это дебажили https://kodikapusta.ru/news/1198-interesnye-bagi Поддержать проект на boosty и читать в MAX
🔥 5 🤔 2 Перейти к публикации →
GopherCon UK 2026 #golang #video Видосы с GopherCon UK 2026 подоспели. Много всего интересного. Девид Чейни, Билл Кеннеди и другие широко известные в узких кругах докладчики. И даже про AI есть вполне адекватные доклады https://kodikapusta.ru/news/1196-gophercon-uk-2026 Поддержать проект на boosty и читать в MAX
❤ 1 🔥 1 Перейти к публикации →
Используем Datastar #golang В статье интеренсно про использование Datastar. Я вот первый раз про него услашал Автор рассказывает, как построить веб-версию утилиты htop используя Go-бэкенд и, собственно, гипермедиа-фреймворк Datastar. Вместо фронтенд-фреймворка вроде React здесь HTML-патчи отправляются напрямую с сервера через Server-Sent Events. Вся интерактивность задается декларативными data-* атрибутами, поэтому клиентский код остается минимальным. Системные метрики собираются библиотекой gopsutil, HTML шаблон вшивается в бинарник через go:embed, поэтому все приложение - это один бинарь Кончено, Datastar не заменит React или Vue, но отлично подойдет для случаев, когда состояние живет преимущественно на бэкенде. В целом, это довольно интересный подход https://kodikapusta.ru/news/1195-ispol-zuem-datastar Поддержать проект на boosty и читать в MAX
❤ 1 Перейти к публикации →
На Rust после Go #rust #golang Автор, пять лет писавший на Go, сначала скептически отнесся к появлению Rust в его команде. Но появился проект, в котором нужны были низкое потребление памяти и mpmc-обмен сообщениями. Пожтому несколько CLI и сервисов решили переписать на Rust и это заставил его освоить язык всерьез. Переход оказался непростым. Больше всего дались строгость компилятора, макросы и, главное, borrow checker(ну конечно) и async с лайфтаймами, которые он советует изучить в первую очередь. Теперь он ценит именно эту строгость. В итоге автор рекомендует если Go справляется, то использовать Go. А Rust брать при реальных ограничениях по памяти, стабильности и близости к железу. Ну или если вы ебнулись и решили все переписать на Rust с помощью AI https://kodikapusta.ru/news/1189-na-rust-posle-go Поддержать проект на boosty и читать в MAX
😁 13 👍 3 Перейти к публикации →
tnk9x #golang #gamedev #tools Современный ремейк классической аркадной игры Battle City, написанный на Go с использованием движка Ebiten и запускаемый как нативно, так и в браузере через WebAssembly. Проект сочетает любовь к оригиналу с изучением Go и разработки игр. Реализованы полный игровой цикл с защитой штаба, управление для двух игроков, разрушаемая местность, все пять типов поверхностей, четыре типа врагов и все шесть бонусов. Враги, кстати, на на Lua-скриптах реализованы https://kodikapusta.ru/tools/43-tnk9x Поддержать проект на boosty и читать в MAX
❤ 8 Перейти к публикации →
1 2 3 … 6 7

Другие каналы категории