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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
📹 Все о массивах и слайсах в Go: видеогайд от Владимира Балуна

⏱️ Таймкоды:

00:00 Введение
00:47 Устройство массивов в Go
01:40 Работа с массивами в Go
10:00 Перемещение массива в стеке
11:29 Итерация по массивам в Go
15:11 Где аллоцируются массивы в Go
17:22 Педедача массива в функцию
18:16 Слайсы в Go
21:34 Реаллокация слайса в Go
24:45 Резервирование памяти под слайс
25:44 Создание слайса без инициализации
27:38 Модификация строк в Go
28:35 Приведение слайсов в строки и обратно без копирования
30:13 Передача слайса в функцию
31:12 Итерация по слайсам в Go
33:55 Оптимизация итерации по слайсам в Go
35:42 Получение слайсов в Go
42:40 Получение слайса из массива в Go
43:15 Конвертация слайса в массив в Go
44:15 Конвертация слайса в указатель на массив в Go
45:02 Указатель на нулевой массив в Go
46:18 Удаление из конца слайса в Go
46:51 Удаление из начала слайса в Go
49:02 Реализация стека и очереди в Go
50:00 Как увеличить размер слайса в Go
50:48 Как уменьшить емкость слайса в Go
54:05 Где аллоцируются слайсы в Go
59:12 Как очистить слайс в Go
01:01:51 В чем разница пустых и нулевых слайсов в Go
01:05:17 Как сравнивать слайсы в Go
01:07:53 Как скопировать данные слайса в Go
01:09:47 Почему функция appeng возвращает слайсв в Go
01:12:39 Потенциальные проблемы с функцией append в Go
01:14:10 Реализация функции append в Go
01:15:32 Утечки памяти при работе со слайсами в Go

📺 YouTube | VK Видео | Дзен | Rutube
Please open Telegram to view this post
VIEW IN TELEGRAM
GoForge — CLI-инструмент для оптимизации инициализации Go-проекта

Вместо ручного создания файлов и директорий для настройки структуры проекта, GoForge предоставляет альтернативу в одну строку:

go install github.com/tz3/goforge@latest
goforge create
или
goforge create --title my-project --framework standard-library
🛠️ Транзакции с базами данных в Go с многоуровневой архитектурой

Транзакции — это мьютексы в мире баз данных. Хотя ваше приложение может выполнять запись в базу данных строго последовательным образом, помните, что другие процессы могут одновременно выполнять запись в ту же таблицу. Транзакции блокируют записи для обновления.

Как и в случае с мьютексами, транзакции могут выполнять блокировку, поэтому тщательно выбирайте стратегию транзакций. И да, присоединяйтесь к Miłosz Smółka в разработке Transaction Route 101.
Привет, друзья! 👋

Мы готовим статью о будущем AI и его влиянии на разработку. Нам важно ваше мнение!

1️⃣ Как вы думаете, AI действительно изменит мир разработки? 🤖
2️⃣ Какие плюсы и минусы использования AI в разработке вы видите? 💡
3️⃣ Есть ли у вас примеры успешного применения AI в ваших проектах? 🛠️

Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Задача для конкурса в честь дня программиста

Условие:

Даны две строки s и f (начальная и конечная) и словарь D (набор слов).

Нужно определить, можно ли преобразовать s в f, используя только слова из словаря D. При этом каждое преобразование должно менять только один символ, а длина слова должна оставаться неизменной. Если преобразование возможно, нужно найти кратчайшую последовательность таких преобразований и вернуть ее длину. Если преобразование невозможно, вернуть "Преобразование невозможно".

Пример ввода 1:
    D = ["cat", "cot", "dot", "dog", "bat", "dag"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': 3

Пример ввода 2:
    D = ["cat", "cot", "bat"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': Преобразование невозможно
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Статическая и динамическая компоновка бинарных файлов Go

Краткий обзор механизмов компоновки Go, сравнивающих различия в подходе между статическими и динамическими зависимостями и внутренними/внешними компоновщиками.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Три способа оптимизировать работу с памятью на Go с помощью memory pools

Александр Иванов, Go-разработчик в YADRO, делится опытом уменьшения влияния GC на выполнение программы и показывает бенчмарки для разных memory pools.

Вы узнаете, какая из реализаций подойдет вашему проекту, а когда лучше не использовать memory pools и полагаться на встроенные механизмы рантайм-окружения Go.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, друзья! 👋

Готовим статью «Лучший ноутбук для программирования в 2024 году» и хотим узнать ваше мнение! 👇💻
Какой бюджет, по-вашему, оптимален для покупки ноутбука программисту в 2024 году? 💰
Anonymous Poll
5%
До 50 000 ₽
29%
50 000 — 100 000 ₽
30%
100 000 — 150 000 ₽
36%
Более 150 000 ₽
💬 Поделитесь опытом: на каком ноутбуке вы сейчас работаете и почему он вам нравится (или не нравится)? 🌟

Ждем ваши ответы в комментариях! Самые полезные советы войдут в нашу статью. 📝💡

Спасибо за участие! 🙌
🛠️ Garble — набор инструментов для обфускации Go-сборок

Обфускация не гарантирует безопасности, но если вы хотите, чтобы ваши бинари имели «как можно меньше информации об исходном коде», Garble — отличный вариант. Недавний выпуск исправил некоторые баги и добавил поддержку Go 1.23.

P. S. Выше — небольшой Makefile, который скомпилирует ваше
Go-приложение для Windows, Linux и Mac, при этом скрывая сборку с помощью Garble.

👉 GitHub
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
👩‍💻 Go sync.Cond — самый недооцененный механизм синхронизации: продолжение серии статей Phuong Le про сложные аспекты Go на простых иллюстрациях

👉
Читать
👉
Другие статьи в серии:
• Go sync.Mutex: нормальный/starvation режим
• Go sync.WaitGroup и проблема выравнивания
• Go sync.Pool и механика, стоящая за ним
Please open Telegram to view this post
VIEW IN TELEGRAM