Библиотека Go-разработчика | Golang
23.3K subscribers
2.08K photos
42 videos
87 files
4.45K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
Ваш пол:
Anonymous Poll
94%
Мужской
6%
Женский
😁7👏3🤔3
💡Стек или куча?

🤔 Живет ли переменная на стеке вызовов, или она динамически выделена в куче?

В большинстве случаев вам не стоит беспокоиться об этом. Go собирает мусор и автоматически очищает неиспользуемые переменные.

Однако сборка мусора имеет свою цену, поэтому чем меньше выделений делает ваш код, тем быстрее он может работать.

📌 Как узнать, выделяется ли переменная в куче?

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

🔸Строковые переменные неизменяемы. Конкатенация двух строк приводит к новой аллокации и сборке мусора. В качестве альтернативы можно использовать strings.Builder.
🔸Срезы, которые растут за пределы своей емкости, реаллоцируются. Решение: предварительно выделить срез с помощью make().
🔸Когда функция создает локальную переменную и возвращает указатель на эту переменную, переменная должна быть выделена в куче.

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

📌 Как найти эти случаи выделения в куче?

Запустите или скомпилируйте свой код с флагом сборки мусора "-m", и команда Go выведет заметку каждый раз, когда переменная перемещается или уходит со стека в кучу:

go run -gcflags "-m" 
или
go tools compile -m


#tip
🔥61👍92🎉1💯1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏆 Самые популярные языки программирования 2023

Популярность ЯП зависит от нескольких факторов. Мы разобрались с ними, составили сводный рейтинг и обсудили особенности, преимущества, недостатки и причины популярности каждого языка. Заходите и читайте👇

🔗 Читать статью
🔗 Зеркало
🔥7👍2🤔21
🤖Одна из самых интересных областей развития LLM в 2023 году — это доступность мощных моделей (в том числе опенсорсных), которые мы можем запускать локально.

🔧 Существует несколько инструментов, которые позволяют относительно легко получать, запускать и управлять такими моделями локально.

🤩 Например, Ollama (написана на Go) LocalAI (тоже в основном на Go). Eli Bendersky делится опытом использования Ollama для локального запуска модели, взаимодействия с ней с помощью API и интеграции ее в Go-проект с помощью LangChainGo.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤔2
На каком языке программирования вы пишете больше всего?
Anonymous Poll
11%
Python
59%
Go
4%
Java
3%
JavaScript
3%
TypeScript
3%
C/C++
3%
С#
1%
Swift/Kotlin
8%
PHP
5%
Другой
😁92👍1🥱1
Подборка лучших статей «Библиотеки программиста» за ноябрь: сохраняй в заметки, чтобы не пропустить #самыйсок

🗺️ Дорожная карта Go-разработчика в 2023 году
👨‍💻 7 типов «сложных» разработчиков
🏆 Самые популярные языки программирования 2023
🏃 Самоучитель по Go для начинающих:
👉 Часть 1. Особенности и сфера применения Go, установка, настройка
👉 Часть 2. Ресурсы для изучения Go с нуля
🔥51👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Нас уже больше 15 000 🥳🎊🎂! Спасибо за интерес к «Библиотеке Go-разработчика».
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉41🔥11🤩1
🧰 Вышла новая версия генератора случайных фейковых данных GoFakeIt 6.25.0, написанного на Go

👀 Под капотом 260 функций для генерации таких имен, электронных писем, местоположений, цветов, user-агентов, продуктов для завтрака и многого другого.

☑️ В версии 6.25.0 появилась опция шаблонов, позволяющая генерировать более сложные кастомные данные.

👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥91😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Разработка простого DNS-сервера на Go, согласно RFC

Лучший способ понять принцип работы какой-то системы/технологии — закодить её.

👉 Читать
👍33🔥5
🧰 Как устроены мапы под капотом: гайд для Go-разработчика

Павел Комаров из AvitoTech в подробностях рассмотрел процесс записи и чтения данных в мапы, важность передачи количества элементов при создании мапы, а также уделил внимание проблеме переполнения и эвакуации элементов, даже до уровня отдельных битов.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
23