golang

Post Thumbnail

Чистая Архитектура

Шаблон Чистой Архитектуры для приложений на Golang Цель этого шаблона - показать принципы Чистой Архитектуры Роберта Мартина (дядюшки Боба): - как структурировать проект и не дать ему превратиться в спагетти-код - где хранить бизнес-логику, что бы она оставалась независимой, чистой и расширяемой - как не потерять контроль при росте проекта

Post Thumbnail

Кастомные memory pools

В этой статье рассмотрим, почему стандартный sync.Pool в Go не всегда спасает, когда речь идёт о высоконагруженных сервисах, и как кастомные memory pools позволяют взять под контроль работу с памятью.

Post Thumbnail

Swiss Tables

В оф блоге вышла статья "Faster Go maps with Swiss Tables" https://go.dev/blog/swisstable И в дополнение, еще одна статья про мапы в Go

Post Thumbnail

Limbo Go

Пример использования purego для работы с новым, модным молодежным драйвером для SQLite - limbo purego - дает возможность вызывать Rust сразу из Go. Я как-то писал про него

Post Thumbnail

AtomixDB

Atomix DB - это мини-реляционная база данных, полностью написанная на Go. Основное внимание было уделено внедрению и пониманию работы базы данных, управлению хранилищем и обработке транзакций. Отличный образовательный проект

Post Thumbnail

revive

Быстрый, настраиваемый, расширяемый, гибкий и красивый линтер для Go. Это простая замена glint. Revive предоставляет платформу для разработки пользовательских правил и позволяет вам определить строгие настройки для улучшения процессов разработки и проверки кода.

Post Thumbnail

synctest

Тестирование конкурентного кода с помощью synctest. Продолжаем разбираться с фишками Go 1.24

Post Thumbnail

Планировщик в Go

Николай Тузов: Самый подробный гайд по планировщику максимально простым языком. В первой половине видео мы будем шаг за шагом строить планировщик Go идя от простого к сложному, детально вникая в суть каждого нового механизма — какую проблему он решает и каким образом. В итоге мы получим Планировщик, который очень близок к настоящему (исключая совсем уж тонкие механизмы, часть из котрых я разберу в отдельных эксклюзивных для моих платных каналов роликах, ссылки см. ниже).

Post Thumbnail

go-taskflow

Универсальный фреймворк для параллельного выполнения задач на Go, вдохновленный taskflow-cpp, который использует встроенные возможности и простоту Go. Он отлично подходит для управления сложными зависимостями в параллельных задачах.

Post Thumbnail

sturdyc

sturdyc помогает избежать проблем с "набегами на кэш" и снижает нагрузку на базы данных в системах, которые обрабатывают кучу запросов. Он умеет объединять запросы и обновлять данные в фоновом режиме. Это как быстрый кэш в памяти, но с крутым контролем над тем, насколько свежие данные. Внутри sturdyc использует неблокирующие чтения и шардированные записи, чтобы избежать конфликтов. А для распределения ключей он задействует алгоритм xxhash.

Post Thumbnail

Headless-браузер на Go

Тестировать HTTP-серверы на Go — это проще простого, потому что сам сервер — это просто функция, которую легко вызвать в тестах. Так что тестировать HTTP-уровень — это как тестировать любой другой кусок кода на Go, и при необходимости можно легко замокать зависимости. Но вот с проверкой HTML-ответов всё немного сложнее. Тут приходится копаться в деталях реализации, а не просто смотреть на поведение. Поведение приложения зависит от кучи вещей: атрибутов в HTML, внутренних обработчиков маршрутов, заголовков ответов и даже кусков текста, которые должны вызывать определённые действия в браузере. Так что тут тесты могут стать чуть более хрупкими и завязанными на детали.

Post Thumbnail

Видео стриминг на Go

Перевод статьи “Video Streaming with Go” Неважно, смотришь ты что-то на YouTube или Netflix, где-то в мире всегда есть сервер, который отправляет тебе видео. Раньше я думал, что стриминг — это что-то сложное и непонятное. Мне казалось, что для этого нужны какие-то специальные протоколы, разбираться в которых мне было лень. Но, как оказалось, я ошибался — сделать свой стриминг-сервер не так уж и сложно. Конечно, это не значит, что у крупных платформ вроде Netflix нет своих сложностей — у них всё куда масштабнее.

Post Thumbnail

Neva

В эту пятницу самый свежий язык программирования Nevalang — это новый вид языка программирования, где вместо написания пошаговых инструкций вы создаете сети, в которых данные передаются между узлами в виде неизменяемых сообщений, и всё по умолчанию выполняется параллельно. После проверки типов ваша программа компилируется в машинный код и может распространяться как единый исполняемый файл без зависимостей. Neva отлично подходит для потоковой обработки данных и работы с параллелизмом, оставаясь при этом простым и удобным для общего программирования. В будущих обновлениях добавятся визуальное программирование и совместимость с Go, чтобы обеспечить постепенное внедрение.

Post Thumbnail

Онлайн игра для PS1

Автор создал онлайн-игру для PlayStation 1, припаявшись к порту последовательной связи на материнской плате. Затем использовал Raspberry Pi для подключения к PS4. Откуда у людей столько времени свободного? Если б у меня столько времени свободного было, у меня тоже была бы такая довольная рожа