Функциональные опции в Go
https://habr.com/ru/articles/842594/
🤓 Я как-то писал в своём основном канале про паттерн Functional Options — этот подход мне нравится, и я часто его вижу. А если он вам даже и не нравится, то познакомится всё равно стоит, т.к. встречать вы его наверняка тоже будете часто.
Если же хочется погрузиться глубже, то вот вам свежая подробная статья на Хабре на эту тему (не моя!). Написано очень хорошо, мне понравилось — читается легко и приятно.
————
Предвосхищая ваши комментарии, про Configurable Object я тоже писал🤓
#article
https://habr.com/ru/articles/842594/
Если же хочется погрузиться глубже, то вот вам свежая подробная статья на Хабре на эту тему (не моя!). Написано очень хорошо, мне понравилось — читается легко и приятно.
————
Предвосхищая ваши комментарии, про Configurable Object я тоже писал
#article
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Функциональные опции в Go
Функциональные опции в Go. Комикс required? Optional! Салют! Меня зовут Дима, я руковожу командой разработки ядра цифровой медицины в Республике Узбекистан. Сегодня я хочу поделиться своими знаниями о...
👍13🔥7
Golang Дайджест
Функциональные опции в Go https://habr.com/ru/articles/842594/ 🤓 Я как-то писал в своём основном канале про паттерн Functional Options — этот подход мне нравится, и я часто его вижу. А если он вам даже и не нравится, то познакомится всё равно стоит, т.к.…
Паттерны многопоточности в Go
https://habr.com/ru/articles/852556/
Ещё одна хорошая статья от того же автора. Хорошая тема — одно дело понимать, как работают горутины, другое — уметь ими правильно пользоваться в разных ситуациях. Благо, за нас уже придумали хорошие решения различных типовых задач и оформили это в виде паттернов. И эта статья — очень неплохой способ с ними познакомиться.
————
UPD: автор статьи здесь также присутствует, можете обращаться к нему в комментариях к этому посту:
#article
https://habr.com/ru/articles/852556/
Ещё одна хорошая статья от того же автора. Хорошая тема — одно дело понимать, как работают горутины, другое — уметь ими правильно пользоваться в разных ситуациях. Благо, за нас уже придумали хорошие решения различных типовых задач и оформили это в виде паттернов. И эта статья — очень неплохой способ с ними познакомиться.
————
UPD: автор статьи здесь также присутствует, можете обращаться к нему в комментариях к этому посту:
Если есть еще какие-то паттерны о которых я забыл, напишите. Дополню статью
#article
Хабр
Паттерны многопоточности в Go
Привет! Ты читаешь эту статью, а значит интересуешься Go и хочешь прокачать свои навыки в многопоточности. Наверняка ты уже знаком и активно пользуешь примитивы многопоточного программирования...
👍31🔥16 5
Готовим слайсы в Go: подробно о динамических массивах, строчках и ускорении
https://habr.com/ru/companies/yadro/articles/874480/
Ещё одна неплохая и очень подробная статья про слайсы с глубоким погружением.
Что разобрано:
- Внутреннее устройство слайсов и как растёт их capacity. Также затронут интересный момент про округление вместимости из-за особенностей хранения объектов в хипе, про который редко пишут
- Разные способы создания слайсов и когда какой вариант лучше (пустой слайс,
- Передача слайсов в функции: по значению vs по указателю
- Работа со строками, конкатенация и оптимизации компилятора
- Подробный разбор
- Тонкости копирования при
- Использование
- Сравнение разных способов конкатенации строк на больших и маленьких объёмах данных
И много ещё интересного.
Особенно порадовали бенчмарки в конце с неожиданными результатами — strings.Join() может работать эффективнее чем bytes.Buffer.
В общем, рекомендую к прочтению👾
#performance #slices #strings #article
https://habr.com/ru/companies/yadro/articles/874480/
Ещё одна неплохая и очень подробная статья про слайсы с глубоким погружением.
Что разобрано:
- Внутреннее устройство слайсов и как растёт их capacity. Также затронут интересный момент про округление вместимости из-за особенностей хранения объектов в хипе, про который редко пишут
- Разные способы создания слайсов и когда какой вариант лучше (пустой слайс,
make(len)
, make(0, cap)
и т.д.).- Передача слайсов в функции: по значению vs по указателю
- Работа со строками, конкатенация и оптимизации компилятора
- Подробный разбор
bytes.Buffer
vs strings.Builder
и их особенностей- Тонкости копирования при
[]byte → string
и обратно- Использование
sync.Pool
для переиспользования памяти — как не забыть "вернуть" объект в пул и почему со strings.Builder
это не работает- Сравнение разных способов конкатенации строк на больших и маленьких объёмах данных
И много ещё интересного.
Особенно порадовали бенчмарки в конце с неожиданными результатами — strings.Join() может работать эффективнее чем bytes.Buffer.
В общем, рекомендую к прочтению
#performance #slices #strings #article
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Готовим слайсы в Go: подробно о динамических массивах, строчках и ускорении
Привет, Хабр! Меня зовут Владислав Белогрудов, я работаю в команде разработки интерфейсов и сервисов управления в YADRO. Мой текущий проект — информационная система на Go. В рамках проекта я...
🔥21👍11❤9
Golang Дайджест
Swiss Tables новая реализация map — Go 1.24 https://go.dev/blog/swisstable Перевод Как вы наверняка уже знаете, в Go 1.24 встроенная реализация map была полностью переработана и теперь основана на Swiss Table. В этой статье Michael Pratt (один из авторов…
https://habr.com/ru/companies/simbirsoft/articles/899180/
Ещё один неплохой подробный разбор новой мапы в Go. Более простым языком и с цветными картинками
#article
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Go 1.24: принципы работы и преимущества обновленной map
В феврале 2025 года разработчики Go выпустили версию 1.24, в которой значительно улучшили производительность языка. Одно из ключевых изменений коснулось структуры map — встроенного типа данных,...
❤16🔥6👍1
Уровни оптимизации кода на Go: начинай с главного
https://habr.com/ru/companies/vk/articles/902820/
Автор разделяет оптимизацию на три уровня:
1. Макровзаимодействия — HTTP / gRPC / SQL, старт процессов (десятки‑сотни миллисекунд).
2. Микровзаимодействия — syscalls, WebSocket внутри открытого соединения (микросекунды).
3. Инструкции CPU — циклы, копирование памяти, сортировки (наносекунды).
Главный тезис: оптимизацию нужно начинать с первых уровней. То есть, сначала устраняем крупные проблемы, а потом уже думаем об аллокациях.
Цитата:
Статья короткая, но неплохо расставляет приоритеты. Рекомендую, особенно джунам, которые любят начинать оптимизацию с
Ну и, к слову про оптимизацию, не забывайте классику
#article
https://habr.com/ru/companies/vk/articles/902820/
Автор разделяет оптимизацию на три уровня:
1. Макровзаимодействия — HTTP / gRPC / SQL, старт процессов (десятки‑сотни миллисекунд).
2. Микровзаимодействия — syscalls, WebSocket внутри открытого соединения (микросекунды).
3. Инструкции CPU — циклы, копирование памяти, сортировки (наносекунды).
Главный тезис: оптимизацию нужно начинать с первых уровней. То есть, сначала устраняем крупные проблемы, а потом уже думаем об аллокациях.
Цитата:
Оптимизируя код, действуйте в следующей последовательности: сначала оптимизируйте крупные операции, затем переходите к более мелким. Начните с удаления каких-то операций, потом уменьшайте сложность, и только в конце — распараллеливайте. Так вы потратите меньше времени на увеличение скорости работы вашего приложения. Не придется запускать профилировщик на каждый чих, потому что можно просто посмотреть и сразу понять, что надо делать.
Статья короткая, но неплохо расставляет приоритеты. Рекомендую, особенно джунам, которые любят начинать оптимизацию с
make(slice, 0, cap)
Ну и, к слову про оптимизацию, не забывайте классику
#article
Хабр
Как оптимизировать код на Go? Раскладываем по полочкам
Привет, Хабр! Меня зовут Дмитрий Гурьянов, я руковожу командой Manuls в VK HR Tek (система ведения кадрового электронного документооборота). Сегодня расскажу о нюансах оптимизации на разных уровнях...
🔥36👍12❤4
Retry в Go: От граблей к дзену отказоустойчивости
https://habr.com/ru/articles/903576/
Автор затронул хорошую тему — ретраи крайне важная штука, но многие недооценивают их сложность.
Скажем, если вы не знакомы с понятиями Exponential Backoff и Jitter, то точно стоит прочитать. Также разобраны и более глубокие моменты.
#article
https://habr.com/ru/articles/903576/
Автор затронул хорошую тему — ретраи крайне важная штука, но многие недооценивают их сложность.
Скажем, если вы не знакомы с понятиями Exponential Backoff и Jitter, то точно стоит прочитать. Также разобраны и более глубокие моменты.
#article
Хабр
Retry в Go: От граблей к дзену отказоустойчивости
В мире распределенных систем и микросервисов сетевые сбои, временная недоступность сервисов или всплески нагрузки — не исключение, а скорее правило. Отказ одного компонента не должен каскадом обрушить...
👍24🔥13
Оптимизация конкурентных приложений в Go
https://habr.com/ru/companies/vktech/articles/904046/
Хорошая статья про конкурентность в Go. Написана довольно хорошо и покрывает множество важных вопросов: когда нужна конкурентность, как проектировать микроархитектуру, на какие паттерны опираться, как тестировать свои решения.
Цитата:
#article
https://habr.com/ru/companies/vktech/articles/904046/
Хорошая статья про конкурентность в Go. Написана довольно хорошо и покрывает множество важных вопросов: когда нужна конкурентность, как проектировать микроархитектуру, на какие паттерны опираться, как тестировать свои решения.
Цитата:
Мы пройдем путь от атомарных блоков до продакшен-архитектур, дополнительно отталкиваясь от идей Роба Пайка и практических кейсов, — чтобы результат был не просто рабочим, а надежным и удобным в поддержке.
#article
Хабр
Оптимизация конкурентных приложений в Go
Эпиграф в стиле А.П. Чехова по следам оригинального выступления Иван Семёныч Троицкий, программист сорока лет, застенчивый и робкий, от природы больше склонный к одиночеству, чем к публичным...
👍19🔥12❤1
Писать или не писать простой код?
Предлагаю вашему вниманиюдве три статьи:
1. Пиши простой код
2. Не пиши простой код
3. Просто пиши код
Интересная и горячая дискуссия, которая нас с вами тоже касается, не пропустите.
От комментариев я пока воздержусь, но, возможно, чуть позже поделюсь и своим мнением по итогам🌚
#article #discussion
Предлагаю вашему вниманию
1. Пиши простой код
2. Не пиши простой код
3. Просто пиши код
Интересная и горячая дискуссия, которая нас с вами тоже касается, не пропустите.
От комментариев я пока воздержусь, но, возможно, чуть позже поделюсь и своим мнением по итогам
#article #discussion
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍8🤔4🤯1
- Перевод
- Оригинал
Фундаментальная статья, которая погружает в самые недра форматов изображений. Автор не просто описывает JPEG, PNG и GIF, а детально разбирает их внутреннее устройство, принципы сжатия. В общем, всё как мы любим.
Что именно разбирается:
- Основы: Краткий ликбез по пикселям, цветовым моделям RGB и RGBA.
- GIF: Подробно о палитре, анимации и о том, как стандартная библиотека Go (image/gif) кодирует эти изображения. Есть даже пример создания простого анимированного GIF на Go.
- PNG: Разбор структуры чанков (IHDR, IDAT, IEND), использование DEFLATE для сжатия, и очень интересный раздел о техниках фильтрации (Sub, Up, Average, Paeth), которые помогают улучшить степень сжатия. Автор также ссылается на реализацию этих фильтров в Go.
- JPEG: Глубокое погружение в механизмы этого формата
Статья довольно объемная, но читается интересно и неплохо расширяет кругозор.
Бонусом идут примеры кода на Go
#article #deep_dive
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍8❤4
Перешел с Kotlin на Go и написал AI-Chat
https://habr.com/ru/articles/910122/
Опытный Kotlin-разработчик пишет о том, как он знакомился с Go. Интересный взгляд на наш язык со стороны и возможность сравнить его с другой технологией.
#article
https://habr.com/ru/articles/910122/
Опытный Kotlin-разработчик пишет о том, как он знакомился с Go. Интересный взгляд на наш язык со стороны и возможность сравнить его с другой технологией.
#article
Хабр
Как я ушёл с Kotlin (Spring Boot) на Go (Gin) и сделал AI-чат с WebSocket и GPT-4
Меня зовут Артём, я занимаюсь коммерческой разработкой с 2019 года. Последние несколько лет я активно использовал Spring Boot для создания backend-сервисов на Java и Kotlin. Но в какой-то момент...
👍21
Самый.. детальный гайд по планировщику
https://nghiant3223.github.io/2025/04/15/go-scheduler.html
Случайно наткнулся на ещё одну статью про планировщик Go. Я бы не стал делиться подобным в очередной раз (тем более, уже есть шедевр на все времена👍 ), но этот автор смог меня удивить — такой детальной проработки на эту тему я пока не встречал.
К тому же, статья довольно свежая: Apr 15, 2025
В общем, рекомендую как следующий этап после этого ролика / статьи — они больше подходят для первого ознакомления с темой, а здесь более глубокое погружение с огромным количеством деталей.
#article #english
https://nghiant3223.github.io/2025/04/15/go-scheduler.html
Случайно наткнулся на ещё одну статью про планировщик Go. Я бы не стал делиться подобным в очередной раз (тем более, уже есть шедевр на все времена
К тому же, статья довольно свежая: Apr 15, 2025
В общем, рекомендую как следующий этап после этого ролика / статьи — они больше подходят для первого ознакомления с темой, а здесь более глубокое погружение с огромным количеством деталей.
#article #english
Please open Telegram to view this post
VIEW IN TELEGRAM
Melatoni
Go Scheduler
↑ ↓
🔥56👍12❤4🤔1
Регламент для работы с ошибками в Go
https://habr.com/ru/companies/oleg-bunin/articles/913096/
Ну что, готовы в очередной раз обсудить работу с ошибками?😩
#article
https://habr.com/ru/companies/oleg-bunin/articles/913096/
Ну что, готовы в очередной раз обсудить работу с ошибками?
#article
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Регламент для работы с ошибками в Go
Ошибки в приложениях неизбежны, но мы можем их смягчить и упростить отладку. Но как выбрать правильный способ обработки? В этой статье предлагаю разобраться, как организовать работу с ошибками в Go...
🤔15❤2👍1
Как устроены новые мапы в Go 1.24
https://habr.com/ru/companies/ru_mts/articles/915880/
Ещё одна неплохая статья про внутреннее устройство Swiss Map
#article #swissmap
https://habr.com/ru/companies/ru_mts/articles/915880/
Ещё одна неплохая статья про внутреннее устройство Swiss Map
#article #swissmap
Хабр
Как устроены новые мапы в Go 1.24
Привет, Хабр! Меня зовут Владимир Марунин, я ведущий разработчик в команде Clatch. Сегодня расскажу о новых мапах в Go 1.24: разберем изменения, посмотрим, что было и что стало. О мапах часто...
👍13🔥6❤2
- Оригинал
- Перевод
Хорошая статья о том, почему DI-фреймворки в Go часто создают больше проблем, чем решают.
Вкратце суть статьи:
- DI — это просто передача зависимостей в конструкторы
- Фреймворки типа dig и wire часто пытаются исправить проблемы, которых нет, добавляя лишнюю сложность.
- Самый понятный и надёжный подход для большинства проектов — внедрять зависимости вручную.
————
Я полностью согласен с автором. Чем проще — тем лучше.
Сколько лет работаю с проектами на Go, и DI-фреймворки встречал ровно ноль раз (ну разве что QA себе иногда прикручивали, но им можно).
Что интересно, ни разу не ощущал, что мне без этого плохо. Всё прекрасно работает, всё прозрачно, без магии. Я всегда понимаю, откуда что берётся. Я чётко понимаю откуда что берётся.
Чего ради такие сложности? Чтобы
main()
был короче? Да он и так не супер большой, и заглядывать туда каждый день не приходится.Кстати, сравните лучше эту тему объяснил Claude Opus 4. Его вариант выглядит намного проще и понятней, при всём уважении к автору статьи.
В любом случае, статьи от кожаных всё же имеют бОльшую ценность, т.к. передают реальный опыт, а не синтетический.
#article #di
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33❤12🔥5🤯3
Golang тихо умирает? 🙅♂️
- Перевод
- Оригинал (недоступен: This account is under investigation or was found in violation of the Medium Rules)
Автор статьи заявляет, что крупные компании начали "тихий отказ" от Go в пользу Rust, Kotlin и TypeScript.
Причины:
- Простота языка👍
- Непредсказуемые паузы из-за GC💪
- Бедность абстракций и неудобная обработка ошибок😩
В качестве примеров приводятся Cloudflare, Dropbox и Amazon, которые частично заменили Go на Rust.
————
Звучит страшновато, конечно. Но есть нюанс: примеры автора выглядят скорее как исключения и диверсификация, а не отказ. Cloudflare и Dropbox переписали лишь части проектов, а вся остальная инфраструктура и дальше спокойно живёт на Go. Сами же Google, AWS и куча других активно инвестируют в язык, а сообщество стабильно растёт.
Да, Go отдал Rust-у узкую нишу «real-time без GC». И это логично — нельзя идеально закрывать сразу все сценарии. Но говорить про смерть Go рановато (и даже смешно): тот же Docker, K8s, Terraform, Grafana, Prometheus и весь облачный стек чувствуют себя отлично и никуда не собираются.
Ну и вот эта цитата особенно забавляет: ... Но эпоха, когда Go был будущим программирования? Она угасает.
А что, кто-то считал Go "будущим программирования"?🙃
Итого: языки не умирают так просто. Сколько лет уже хоронят Java и PHP?
#article
- Перевод
- Оригинал (недоступен: This account is under investigation or was found in violation of the Medium Rules)
Автор статьи заявляет, что крупные компании начали "тихий отказ" от Go в пользу Rust, Kotlin и TypeScript.
Причины:
- Простота языка
- Непредсказуемые паузы из-за GC
- Бедность абстракций и неудобная обработка ошибок
В качестве примеров приводятся Cloudflare, Dropbox и Amazon, которые частично заменили Go на Rust.
————
Звучит страшновато, конечно. Но есть нюанс: примеры автора выглядят скорее как исключения и диверсификация, а не отказ. Cloudflare и Dropbox переписали лишь части проектов, а вся остальная инфраструктура и дальше спокойно живёт на Go. Сами же Google, AWS и куча других активно инвестируют в язык, а сообщество стабильно растёт.
Да, Go отдал Rust-у узкую нишу «real-time без GC». И это логично — нельзя идеально закрывать сразу все сценарии. Но говорить про смерть Go рановато (и даже смешно): тот же Docker, K8s, Terraform, Grafana, Prometheus и весь облачный стек чувствуют себя отлично и никуда не собираются.
Ну и вот эта цитата особенно забавляет: ... Но эпоха, когда Go был будущим программирования? Она угасает.
А что, кто-то считал Go "будущим программирования"?
Итого: языки не умирают так просто. Сколько лет уже хоронят Java и PHP?
#article
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔36👍25❤9🤯1
Как разогнать TLS на Go до 100 Gbps — опыт Kinescope
https://habr.com/ru/companies/oleg-bunin/articles/913272/
Ребята из Kinescope показывают, как они добились скорости раздачи видео в 100 Gbps на обычных 1U-серверах, используя Go и kTLS.
Что интересного:
- Перенесли TLS-шифрование из user space в ядро Linux с помощью kTLS — получили zero-copy и минимальную нагрузку на CPU (1.4% при 40 Gbps)
- Обнаружили, что Let's Encrypt по умолчанию выдаёт RSA-сертификаты. Переход на ECDSA ускорил handshake в 40 раз (с 1.6 сек до 40 мс)
- Написали минимальный патч к стандартной библиотеке Go для поддержки kTLS — всё работает через обычные интерфейсы
- Решили проблему session resumption на множестве серверов простым способом — синхронизацией ключей между машинами
Интересный момент: когда из-за ошибки в конфиге весь трафик (40 Gbps) ушёл на одну машину — и она выдержала, хотя и "молотила" 600% CPU.
————
Хорошая статья с реальными продакшн-кейсами. Авторы не стесняются рассказывать про свои косяки (история с ChaCha и бабушкафонами) и показывают конкретные метрики.
Кстати, как заметил автор, в Go уже принято решение добавить поддержку kTLS в стандартную библиотеку — issue #44506 наконец-то сдвинулся с мёртвой точки.
#article #performance #tls
https://habr.com/ru/companies/oleg-bunin/articles/913272/
Ребята из Kinescope показывают, как они добились скорости раздачи видео в 100 Gbps на обычных 1U-серверах, используя Go и kTLS.
Что интересного:
- Перенесли TLS-шифрование из user space в ядро Linux с помощью kTLS — получили zero-copy и минимальную нагрузку на CPU (1.4% при 40 Gbps)
- Обнаружили, что Let's Encrypt по умолчанию выдаёт RSA-сертификаты. Переход на ECDSA ускорил handshake в 40 раз (с 1.6 сек до 40 мс)
- Написали минимальный патч к стандартной библиотеке Go для поддержки kTLS — всё работает через обычные интерфейсы
- Решили проблему session resumption на множестве серверов простым способом — синхронизацией ключей между машинами
Интересный момент: когда из-за ошибки в конфиге весь трафик (40 Gbps) ушёл на одну машину — и она выдержала, хотя и "молотила" 600% CPU.
————
Хорошая статья с реальными продакшн-кейсами. Авторы не стесняются рассказывать про свои косяки (история с ChaCha и бабушкафонами) и показывают конкретные метрики.
Кстати, как заметил автор, в Go уже принято решение добавить поддержку kTLS в стандартную библиотеку — issue #44506 наконец-то сдвинулся с мёртвой точки.
#article #performance #tls
🔥49👍6
Полноценное RAG-приложение на Go — безумие?
https://habr.com/ru/articles/930090/
Хорошая статья от начинающего разработчика, который решил пойти против течения и построить RAG-систему на Go, вместо привычного Python.
Спойлер: вышло интересно, хоть и с нюансами.
Получилась довольно нетривиальная система:
- 5 микросервисов с разделением ответственности
- Kafka в роли брокера сообщений
- Ollama для локального inference на собственной GPU
- gRPC-стриминг + SSE для передачи токенов в реальном времени (без вебсокетов)
👴 Учитываем, что это пет-проект, и архитектура немного перегружена ради учебных целей.
Узкие места и проблемы:
Главный bottleneck оказался в Ollama — весь трафик генерации и эмбеддингов упирается в неё, локальная GPU тянет всего один запрос за раз.
Мои мысли по оптимизации:
- Для продакшена точно нужен vLLM кластер или платные API (OpenAI/Anthropic)
- Kafka здесь оверкилл — NATS или Redis Streams справятся не хуже и проще в деплое
- Можно добавить кеширование эмбеддингов и результатов поиска
- Рассмотреть pgvector вместо отдельного векторного хранилища
В целом, статья полезная, и выбор Go вместо Python для RAG выглядит вполне логично — действительно, RAG это по большей части инфраструктура, а не ML-магия.
Особенно ценно, что автор честно описывает проблемы и не идеализирует решение.
#article #rag #llm
https://habr.com/ru/articles/930090/
Хорошая статья от начинающего разработчика, который решил пойти против течения и построить RAG-систему на Go, вместо привычного Python.
Спойлер: вышло интересно, хоть и с нюансами.
Получилась довольно нетривиальная система:
- 5 микросервисов с разделением ответственности
- Kafka в роли брокера сообщений
- Ollama для локального inference на собственной GPU
- gRPC-стриминг + SSE для передачи токенов в реальном времени (без вебсокетов)
Узкие места и проблемы:
Главный bottleneck оказался в Ollama — весь трафик генерации и эмбеддингов упирается в неё, локальная GPU тянет всего один запрос за раз.
Мои мысли по оптимизации:
- Для продакшена точно нужен vLLM кластер или платные API (OpenAI/Anthropic)
- Kafka здесь оверкилл — NATS или Redis Streams справятся не хуже и проще в деплое
- Можно добавить кеширование эмбеддингов и результатов поиска
- Рассмотреть pgvector вместо отдельного векторного хранилища
В целом, статья полезная, и выбор Go вместо Python для RAG выглядит вполне логично — действительно, RAG это по большей части инфраструктура, а не ML-магия.
Особенно ценно, что автор честно описывает проблемы и не идеализирует решение.
#article #rag #llm
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Полноценное RAG-приложение на Go — безумие?
Предисловие Прежде всего хочу сказать, что я не являюсь никаким специалистом, даже джуновского лвла, просто безработный студент, пишущий на коленке свои пет-проекты. И код, и тем более архитектура...
👍37❤19🤔2
Ещё одна статья про Swiss Tables в Go
https://habr.com/ru/companies/oleg-bunin/articles/934906/
Если вам было мало статей на эту тему, то держите ещё один неплохой подробный разбор:
#article #swiss_map
https://habr.com/ru/companies/oleg-bunin/articles/934906/
Если вам было мало статей на эту тему, то держите ещё один неплохой подробный разбор:
Попробуем найти ответы на вопросы о том, почему мапы изменились, что лежит в основе новой реализации и как к ней пришли.
#article #swiss_map
Хабр
Швейцария в картах Go: путешествие по Swiss Tables
Golang продолжает развиваться. Изначальные проектные решения ставятся под сомнения, а новые вызовы заставляют язык меняться: дженерики, итераторы, новая имплементация мап. Однако, даже нововведения...
👍11❤3🔥3