Библиотека 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
👩‍💻 'Sign in with GitHub' в Go: гайд от Eli Bendersky

Подробное и простое введение в три способа использования OAuth и поставщика OAuth GitHub из Go для получения Функции «Войти с помощью GitHub» в вашем приложении.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🌚2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📁💡Где программисту взять идеи для портфолио

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

Однако у большинства айтишников портфолио состоит из похожих проектов, которыми мало кого можно впечатлить. Под катом разбираемся, как собрать классное портфолио, а главное — где взять интересные идеи для пет-проектов.

🔗 Читать статью
🔗 Зеркало
👍8🔥3🥱1
🐍 Pygolo 0.2.0: встраивание или расширение Python с помощью Go и наоборот

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

package main

import "gitlab.com/pygolo/py"

func main() {
Py, err := py.GoEmbed()
defer Py.Close()
if err != nil {
panic(err)
}

// do something useful
}


Альтернативно вы можете написать компоненты на Go, которые затем загружаются в Python. В любом случае: Python и Go прекрасно ладят.
🤔14🔥74👍3😁3
Нина Пакшина, Go-разработчик из компании Лента Онлайн, делится опытом работы с миграциями в Go и проводит сравнительный анализ существующих инструментов.

📌 Правила работы с миграциями, к которым в итоге пришла команда Нины:

☑️ Использовать библиотеку pressly/goose.
☑️ Использовать формат миграций .sql.
☑️ Для версионирования миграций нужно использовать временные метки.
☑️ Накат миграций должен быть частью процесса CI/CD. Миграции должны запускаться на шаге деплоя приложения.
☑️ Откат миграций является нежелательным: для того, чтобы этого не делать, приложение должно поддерживать обратную совместимость между версиями.

👉 Читать
👍12🥱2
Команда Go представила инструмент для идентификации «мертвого кода» в вашем проекте:

$ go install golang.org/x/tools/cmd/deadcode@latest
$ deadcode -help
The deadcode command reports unreachable functions in Go programs.

Usage: deadcode [flags] package...


Под катом — анонс инструмента и кейсы использования.

👉 Читать
👍25🥱2
📈 Обзор рынка труда в ИТ: III квартал 2023 года

В этой статье обсудим зарплату программистов в III квартале 2023 года, динамику вакансий, тенденции рынка труда в ИТ и многое другое. Присоединяйтесь!

Читать статью
👍31
🎊 Представлен первый релиз-кандидат Go 1.22

📢 Анонс
⬇️ Скачать
👍13🔥8🥱1
👨‍💻Мок-собеседование на позицию сеньор Go-разработчика

Даниил Подольский и Владимир Балун проводят собес сеньор Go-разработчика Антона Зиновьева. Вас ждут две части: общие вопросы и лайв-кодинг.

📺 Смотреть
👍21🔥64
🏃 Самоучитель по Go для начинающих. Часть 4. Переменные. Типы данных и их преобразования. Основные операторы.

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

👉 Читать статью
👉 Часть 1
👉 Часть 2
👉 Часть 3
🥱9👍5🔥2
До Нового года осталось 10 дней, и все традиционно подводят итоги. Пока мы с командой обсуждаем планы на 2024, захотели узнать, улучшилась ли ваша жизнь за 2023 год? Что в ней поменялось? А что осталось прежним?
Anonymous Poll
35%
Жизнь стала лучше (получил(-а) новую работу, переехал(-а))
13%
Это был тяжелый год (потерял(-а) работу, стал(-а) жить хуже)
14%
Ничего не поменялось, из года в год всё стабильно
24%
Я за этот год в своем познании несколько преисполнился(-ась)...
1%
Свой вариант (напишу в комментариях)
13%
Посмотреть результаты
👀 Ответьте на 3 вопроса, чтобы получить вводные занятия, познакомиться с преподавателями и форматом обучения, можно здесь – https://proglib.io/w/6ea6577e

Вас ждут:

1. Лекции «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов

2. Лекции «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ

3. Практические задания после лекций

4. Ссылки на дополнительные материалы для самостоятельного изучения

⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/6ea6577e
😁2🥱21👍1
🔍Насколько легко «войти в айти»?

Мы продолжаем собирать ваши истории о смене профессии и трудоустройстве в IT, чтобы написать большую аналитическую статью.

👉Если вы еще не рассказывали о своем опыте, пройдите короткий опрос по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱15👏21🔥1
in-memory cache.pdf
277.8 KB
Реализация кэша в памяти на Go: подход Alex Edwards на основе дженериков

👉 Читать заметку
🥱15👏3
👩‍💻 У видеокурса по Go от FreeCodeCamp есть текстовая версия, в которой вас ждет 16 разделов для новичков и не только: от переменных, функций и структур до каналов, мьютексов и дженериков.

👀Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🥱81
Use Environment Variable in your next Golang Project.pdf
1.4 MB
Обзор нескольких юзкейсов переменных окружения в проекте на Go: os, godotenv и viper.

👉 Читайте на Medium или в PDF
👍5
💡Как тривиально проверить значения интерфейса на nil?

В Go новички часто сталкиваются с проблемой интерфейсных переменных, которым присваивается nil указатель. В таком случае, хотя значение в интерфейсе является nil, сама переменная интерфейса не равна nil.

Пример: создаем переменную x как указатель на int, который по умолчанию nil, и переменную y как пустой интерфейс, который тоже nil по умолчанию. После присваивания x переменной y, интерфейс y уже не является nil, хотя x все еще nil.


var x *int
var y any
y = x


📌 Что вернет y == nil?

Вернет false. Это потому, что интерфейс не просто представляет значение, которое ему присвоено, а действует как контейнер для этого значения.

Для проверки, является ли значение в интерфейсе nil, нужно использовать утверждение типа. Например, для проверки y на nil, используем:


y.(*int) == nil


Это показывает, что интерфейс y не nil, но содержащееся в нем значение — nil. Полный пример здесь.

#tip
Please open Telegram to view this post
VIEW IN TELEGRAM
👍50💯3
🧰 Go-Architect — новый инструмент анализа архитектуры для Go-проектов. Главная цель — облегчить принятие решений, связанных с рефакторингом вашего кода и исправлением проблем. Подробнее читайте в статье-анонсе👇

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15