Библиотека 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
🤔 Использование SQL в качестве API на Go

«Раскрывать API, принимающий SQL, — это безумие» — скажете вы. Особенно, если API общедоступен. Это небезопасно и приведет к атакам и к привязке внутренней реализации к определенной технологии. Можно долго рассуждать, но так ли это на самом деле?

Что, если вам необходимо обрабатывать запросы, слишком сложные для простых CRUD API, но не настолько сложные, чтобы оправдать использование GraphQL?

Наткнувшись на пример с языком Scala, автор статьи решил переписать то же самое на Go. Несмотря на то, что Scala обладает расширенными языковыми возможностями, код на Go оказался так же прост в написании, как и Scala.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚5👏3🤔3👍1
🖥 Запуск 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