Ваш возраст:
Anonymous Poll
3%
Менее 18 лет
24%
18-24 года
39%
25-34 года
24%
35-44 года
6%
45-54 года
1%
55-64 года
3%
65 лет и старше
😁9👍2
😁7👏3🤔3
В каком городе вы живете последние 3 месяца?
Anonymous Poll
25%
Москва
9%
Санкт-Петербург
3%
Краснодар
2%
Нижний Новгород
3%
Минск
2%
Екатеринбург
3%
Киев
1%
Львов
4%
Алматы
48%
Другое
😁8❤6👍1
💡Стек или куча?
🤔 Живет ли переменная на стеке вызовов, или она динамически выделена в куче?
В большинстве случаев вам не стоит беспокоиться об этом. Go собирает мусор и автоматически очищает неиспользуемые переменные.
Однако сборка мусора имеет свою цену, поэтому чем меньше выделений делает ваш код, тем быстрее он может работать.
📌 Как узнать, выделяется ли переменная в куче?
Некоторые операции по умолчанию вызывают выделение памяти в куче и поэтому легко обнаруживаются и исправляются. Вот несколько примеров:
🔸Строковые переменные неизменяемы. Конкатенация двух строк приводит к новой аллокации и сборке мусора. В качестве альтернативы можно использовать
🔸Срезы, которые растут за пределы своей емкости, реаллоцируются. Решение: предварительно выделить срез с помощью
🔸Когда функция создает локальную переменную и возвращает указатель на эту переменную, переменная должна быть выделена в куче.
📌 Однако есть ситуации, когда выделения в куче неочевидны. Подумайте об указателях, скрытых внутри других типов данных, таких как срезы или мапы. Или рассмотрите массивы. Если массив слишком большой, чтобы жить на стеке, он выделяется в куче.
📌 Как найти эти случаи выделения в куче?
Запустите или скомпилируйте свой код с флагом сборки мусора "
#tip
🤔 Живет ли переменная на стеке вызовов, или она динамически выделена в куче?
В большинстве случаев вам не стоит беспокоиться об этом. Go собирает мусор и автоматически очищает неиспользуемые переменные.
Однако сборка мусора имеет свою цену, поэтому чем меньше выделений делает ваш код, тем быстрее он может работать.
📌 Как узнать, выделяется ли переменная в куче?
Некоторые операции по умолчанию вызывают выделение памяти в куче и поэтому легко обнаруживаются и исправляются. Вот несколько примеров:
🔸Строковые переменные неизменяемы. Конкатенация двух строк приводит к новой аллокации и сборке мусора. В качестве альтернативы можно использовать
strings.Builde
r.🔸Срезы, которые растут за пределы своей емкости, реаллоцируются. Решение: предварительно выделить срез с помощью
make(
)
.🔸Когда функция создает локальную переменную и возвращает указатель на эту переменную, переменная должна быть выделена в куче.
📌 Однако есть ситуации, когда выделения в куче неочевидны. Подумайте об указателях, скрытых внутри других типов данных, таких как срезы или мапы. Или рассмотрите массивы. Если массив слишком большой, чтобы жить на стеке, он выделяется в куче.
📌 Как найти эти случаи выделения в куче?
Запустите или скомпилируйте свой код с флагом сборки мусора "
-
m", и команда Go выведет заметку каждый раз, когда переменная перемещается или уходит со стека в кучу:go run -gcflags "-m"
или
go tools compile -m
#tip
🔥61👍9⚡2🎉1💯1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏆 Самые популярные языки программирования 2023
Популярность ЯП зависит от нескольких факторов. Мы разобрались с ними, составили сводный рейтинг и обсудили особенности, преимущества, недостатки и причины популярности каждого языка. Заходите и читайте👇
🔗 Читать статью
🔗 Зеркало
Популярность ЯП зависит от нескольких факторов. Мы разобрались с ними, составили сводный рейтинг и обсудили особенности, преимущества, недостатки и причины популярности каждого языка. Заходите и читайте👇
🔗 Читать статью
🔗 Зеркало
🔥7👍2🤔2❤1
Библиотека Go-разработчика | Golang
Продолжаем наш опрос — вторая часть👇
👍3❤1🥱1
В какой стране вы живете последние 3 месяца?
Anonymous Poll
63%
Россия
6%
Украина
3%
Беларусь
5%
Казахстан
1%
Польша
1%
Кыргызстан
2%
Узбекистан
1%
США
2%
Грузия
16%
Другое
😁8🥱6🌚1
Ваш доход в месяц после налогов:
Anonymous Poll
13%
до $500
6%
от $501 до $800
6%
от $801 до $1100
15%
от $1101 до $2000
19%
от $2001 до $3000
15%
от $3001 до $4000
9%
от $4001 до $5001
5%
от $5001 до $6000
12%
от $6001
🥱15😁11❤5🌚2👍1
Какой у вас коммерческий опыт работы в IT?
Anonymous Poll
38%
от 6 лет
21%
от 3 до 6 лет включительно
19%
от 1 до 3 лет включительно
7%
до 1 года
15%
нет опыта
🥱9🔥3❤1👏1
🔧 Существует несколько инструментов, которые позволяют относительно легко получать, запускать и управлять такими моделями локально.
🤩 Например, Ollama (написана на Go) LocalAI (тоже в основном на Go). Eli Bendersky делится опытом использования Ollama для локального запуска модели, взаимодействия с ней с помощью API и интеграции ее в Go-проект с помощью LangChainGo.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤔2
Библиотека Go-разработчика | Golang
Продолжаем наш опрос — вторая часть👇
Продолжаем наш опрос — последняя, третья часть👇
👍6
На каком языке программирования вы пишете больше всего?
Anonymous Poll
11%
Python
59%
Go
4%
Java
3%
JavaScript
3%
TypeScript
3%
C/C++
3%
С#
1%
Swift/Kotlin
8%
PHP
5%
Другой
😁9❤2👍1🥱1
Какая ваша специализация в IT?
Anonymous Poll
69%
Backend
3%
Frontend
9%
Fullstack
1%
Mobile
1%
Desktop
7%
DevOps/Sysadmin
2%
QA
1%
Data Science
2%
Кибербезопасность
6%
Другое
😁2👍1🥱1🌚1
Какой грейд у вас на работе?
Anonymous Poll
7%
Стажер
12%
Джуниор
29%
Миддл
26%
Сеньор
10%
Тимлид
4%
Архитектор
3%
СТО
9%
я не в IT
😁6🥱1
Подборка лучших статей «Библиотеки программиста» за ноябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
🗺️ Дорожная карта Go-разработчика в 2023 году
👨💻 7 типов «сложных» разработчиков
🏆 Самые популярные языки программирования 2023
🏃 Самоучитель по Go для начинающих:
👉 Часть 1. Особенности и сфера применения Go, установка, настройка
👉 Часть 2. Ресурсы для изучения Go с нуля
🗺️ Дорожная карта Go-разработчика в 2023 году
👨💻 7 типов «сложных» разработчиков
🏆 Самые популярные языки программирования 2023
🏃 Самоучитель по Go для начинающих:
👉 Часть 1. Особенности и сфера применения Go, установка, настройка
👉 Часть 2. Ресурсы для изучения Go с нуля
🔥5❤1👍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
☑️ В версии 6.25.0 появилась опция шаблонов, позволяющая генерировать более сложные кастомные данные.
👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥9❤1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Разработка простого DNS-сервера на Go, согласно RFC
Лучший способ понять принцип работы какой-то системы/технологии — закодить её.
👉 Читать
Лучший способ понять принцип работы какой-то системы/технологии — закодить её.
👉 Читать
👍33🔥5
Павел Комаров из AvitoTech в подробностях рассмотрел процесс записи и чтения данных в мапы, важность передачи количества элементов при создании мапы, а также уделил внимание проблеме переполнения и эвакуации элементов, даже до уровня отдельных битов.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23