Добавление тестов в шаблоны проектов: гайд для Go-разработчика
Недавно автор разбирался с шаблонами проектов Go и тем, как вы можете использовать некоторые из них для быстрого начала работы с Go-проектом (пример шаблона для простого CLI на Go). Данным шаблонам не хватало только тестов👇
🔗 Читать
Недавно автор разбирался с шаблонами проектов Go и тем, как вы можете использовать некоторые из них для быстрого начала работы с Go-проектом (пример шаблона для простого CLI на Go). Данным шаблонам не хватало только тестов👇
🔗 Читать
Thomas Stringer
Creating and Using Go Project Templates
I love writing software in Go. It is by far what I’ve been using for the better part of many years now. Most of us developers (Go or otherwise) fall under one of two categories, or somewhere in between:
🔥8👍2🥱1
❗️Мы запускаем серию исследований — и вы можете нам в этом помочь!
«Библиотека программиста» выпустит несколько статей, в которых мы проведем полноценные исследования.
Помогите нам выбрать интересные темы: может быть, вы давно хотели узнать, как изменилась зарплата у тех, кто релоцировался? Или гадаете, сколько лет нужно, чтобы стать миддлом?
Присылайте интересующие вас темы в комментарии — интересные мы возьмем в работу и поделимся с вами результатами 💙
«Библиотека программиста» выпустит несколько статей, в которых мы проведем полноценные исследования.
Помогите нам выбрать интересные темы: может быть, вы давно хотели узнать, как изменилась зарплата у тех, кто релоцировался? Или гадаете, сколько лет нужно, чтобы стать миддлом?
Присылайте интересующие вас темы в комментарии — интересные мы возьмем в работу и поделимся с вами результатами 💙
👍2🔥2❤1
🤔 Python — лёгкий. Go — простой. Простой != легкий
Статья, посвященная симбиозу, который Preslav Rachev и его команда нашли при использования Python и Go.
Не менее интересно читать обсуждение на Hacker News. Присоединяйтесь!
Статья, посвященная симбиозу, который Preslav Rachev и его команда нашли при использования Python и Go.
Не менее интересно читать обсуждение на Hacker News. Присоединяйтесь!
Preslav Rachev
Python is Easy. Go is Simple. Simple != Easy.
Python and Go have distinct qualities that can complement each other.
🔥9🥱4
Если вы новичок в Go, у вас могут возникать вопросы вроде этих: «Почему функции обычно изменяют мапы и срезы, но не другие типы данных?», «Почему мой срез не изменяется, когда я добавляю к нему элементы в функции?», «Почему присваивание нового значения параметру-указателю не оказывает никакого эффекта за пределами функции?».
Цель руководства — дать понятные ответы на эти и другие вопросы и на простых примерах объяснить не самые очевидные аспекты Go.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🥱2❤1🔥1
Друзья, мы хотим делать для вас самый лучший контент — и для этого нам нужно узнать вас получше.
Пожалуйста, ответьте на несколько вопросов — это поможет нам делать более полезные и интересные посты!
Первая часть опроса 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
Ваш возраст:
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