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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🖥 Запуск HTTP-сервера Go на Teensy 4.1 с помощью Embedded Go

Embedded Go является альтернативой TinyGo для запуска Go-кода на микроконтроллерах.

С момента своего первого выпуска Go был тесно связан с сетевым программированием. К сожалению, до сих пор Embedded Go не имел сетевых возможностей, в основном из-за сильной зависимости пакета net от сетевых возможностей базовой операционной системы, но это изменилось👇

🔗 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍51😁1🥱1
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Команда Charmbracelet представила простую и мощную библиотеку для создания интерактивных форм и подсказок в терминале под названием huh.

🤩 Создавайте формы и собирайте данные с помощью всего нескольких строк на Go.

👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥55
What are your Go dependencies capable of.pdf
1.1 MB
🤔 На что способны ваши зависимости Go?

govulncheck может обнаруживать известные уязвимости, но как можно принять обоснованные решения о поверхности атаки пакета, прежде чем проект будет от него зависеть?

Использовать подходы современной безопасной разработки: от DAST/SAST до анализа возможностей пакетов Go в вашем проекте. О последнем и идет речь в статье на примере использования CLI-инструмента capslock.

👉 Читайте на Medium или в PDF
👍114🔥3
Подборка лучших статей «Библиотеки программиста» за декабрь: сохраняй в заметки, чтобы не пропустить #самыйсок

🏃 Самоучитель по Go для начинающих:
👉 Часть 3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
👉 Часть 4. Переменные. Типы данных и их преобразования. Основные операторы.
📁💡Где программисту взять идеи для портфолио
📈 Обзор рынка труда в ИТ: III квартал 2023 года
✍️ Почему отсутствие технической документации убьёт ваш проект?
🎄🎁 10 абсурдных подарков программисту на Новый год
🔥5🥱3🤔1🌚1
🥳 Представлены релизы Go 1.21.6 и 1.20.13, включающие исправления для рантайма и пакета crypto/tls.

📢 Анонс
⬇️ Скачать

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍7
Подводные камни цикла range, как с ними бороться и что ждёт в версии 1.22: гайд для Go-разработчика

☑️ Основы
☑️ Распространённые ошибки при использовании цикла range
☑️ Понимание и оптимизация
☑️ Изменения в Go 1.22
☑️ Адаптация к новым изменениям

👉 Читать
13🥱7👍4🤔2
Разбор задачи с Go-собеса от старшего разработчика в Avito Tech Олега Козырева.

📺 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🥱16🔥4👏2
🏃 Самоучитель по Go для начинающих. Часть 5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы

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

👉 Читать статью
👉 Часть 1
👉 Часть 2
👉 Часть 3
👉 Часть 4
👍181
🤔 «Что мы сделали правильно, что мы сделали неправильно» — текстовая версия выступления Роба Пайка на последней GopherConAU, где он рассказывает закулисные истории о создании Go, цели команды и многое другое.

Одним словом, это было откровенное размышление о 14-летнем пути Go как проекта с открытым исходным кодом.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
⚾️ Arkanoid на Go: пример простой игры, разработанной с помощью Ebitengine и архитектурного паттерна Entity-Component-System.

👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥243👍1
Самые полезные каналы для программистов в одной подборке!

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

🔥Для всех

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

#️⃣C#

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

☁️DevOps

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

🐘PHP

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

🐍Python

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

Java

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

👾Data Science

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

🦫Go

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

🧠C++

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

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

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

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

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

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

* Организация Meta запрещена на территории РФ
4👍31
🚀Пишем бенчмарки и оптимизируем программы на Go

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

📺Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🎉3🥱1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💡Шпаргалка по REST API для начинающих

📌 Шесть фундаментальных принципов, которые служат строительными блоками архитектуры REST API:

1️⃣ Клиент-серверная архитектура
2️⃣ Взаимодействие без сохранения состояния
3️⃣ Возможность кэширования
4️⃣ Многоуровневая система
5️⃣ Поддержка кода по требованию
6️⃣ Унифицированный интерфейс

👉 Читайте подробнее на Medium или в PDF (файл в комментариях)
👍72😁1
🤔 CompareAndSwap в Go не всегда является Compare and swap

Стандартный пакет Go sync/atomics предоставляет функции для использования базовых атомарных операций на уровне ЦП, таких как сравнение с обменом (compare and swap, CAS), через atomic.CompareAndSwapT (где T— целочисленный тип).

Но! Не все архитектуры предлагают инструкции CAS, на которую можно было бы полагаться при реализации atomic.CompareAndSwapT в Go. Тем не менее, Go должен компилировать эту функцию в нечто семантически эквивалентное. Разбираемся, во что именно👇

🔗 Читать
👍11
🤔 Использует ли следующий код разделяемую память, обмениваясь данными, или обменивается данными, используя разделяемую память?

func Map[T any, R any](collection []T,
iter func(item T, index int) R) []R {
result := make([]R, len(collection))
var wg sync.WaitGroup
wg.Add(len(collection))
for i, item := range collection {
go func(item T, i int) {
res := iter(item, i)
result[i] = res
wg.Done()
}(item, i)
}
wg.Wait()
return result
}


По сути, код перебирает срез элементов типа T и запускает горутину для каждого элемента. Все горутины записывают свой результат в один и тот же срез result одновременно, без использования мьютексов.

📌 Является ли срез result разделяемой памятью? В конце концов, это единая, непрерывная структура данных.

С другой стороны, каждая горутина пишет только в индекс, который ей был назначен, поэтому одновременная запись в одно и то же место не произойдет. И срез result не читается до тех пор, пока все пишущие горутины не закончат работу.

Таким образом, даже несмотря на то, что горутины пишут в один и тот же срез, они, кажется, придерживаются одного из постулатов:

Don't communicate by sharing memory, share memory by communicating


💬 Что думаете?
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱10👍76🤔2🌚2
🚀 Rust быстрее Go? Посмотрите на новый Go-пакет astjson для преобразования и объединения объектов JSON.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4🥱3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏖️ Синдром упущенного отпуска: почему так опасно игнорировать заслуженный отдых

Представьте: вы выиграли путевку на пляж с золотым песком и изумрудным океаном. Но радость быстро сменяется разочарованием — вместо коктейля в руках по-прежнему клавиатура и мышка. И вы понимаете — это всего лишь галлюцинации изможденного мозга, который умоляет вас остановиться и, наконец, сделать перерыв. Но мы ведь трудоголики, правда?

🔗 Читать статью
🔗 Зеркало
👏8🥱6
🤦‍♂️Go — простой. Но с простотой приходит и риск наступить на грабли. Ловите небольшую, но ёмкую подборку антипаттернов Go, чтобы не допустить этого.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🤩6🥱2🌚21