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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🧰 Beego — высокопроизводительный фреймворк для разработки RESTful API, веб-приложений и бэкенд-сервисов, вдохновленный Tornado, Sinatra и Flask. Недавно была представлена версия 2.2.0

👉 GitHub
🥱20🎉8
🎊 🔐 Вышли релизы Go 1.22.2 and 1.21.9, которые исправляют CVE-2023-45288.

📢 Подробнее об уязвимости
📦 Скачать

#новости
👍9🔥9
🤔 Существует множество отличных инструментов для разработки CLI-приложений на Go. Но что, если вы хотите создать, например, интерактивный шелл на Go? Вариантов уже не так много.

Команда Dolt использовала для этих целей инструмент abiosoft/ishell и научилась извлекать из него максимальную пользу. Читайте подробнее гайд, из которого узнаете:

☑️ как настроить интерактивный шелл с помощью команд, которые вы хотите обрабатывать;
☑️ как выйти из шелла и как использовать встроенные функции пакета.

Все это не на абстрактных примерах, а на основе встроенного шелла SQL Dolt.
👍11
👩‍💻 Роутинг в Go — общая проблема, для решения которой уже построили кучу фреймворков. Google сама признаётся, что они вдохновлялись сторонними решениями и лучшее добавили в net/http новой версии языка.

🤩 С приходом Go 1.22 всё необходимое для роутинга из коробки умеет делать http.ServeMux: он различает HTTP-методы, хосты и домены, а также может шаблонизировать пути через плейсхолдеры.

👉 Читайте подробнее о новых возможностях роутинга на простых примерах от Мичурина Алексея из AvitoTech.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥35👏6👍31🥱1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
⚙️ Названия веток и комментарии к коммитам в Git: лучшие практики

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

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

👉 Читать статью
👉 Зеркало
😁20🔥3👏1
👩‍💻 Сгенерируйте своего гофера

🤖 Gopher-Verse — увлекательный проект от Creative Fabrica , который использует обученную модель для генеративного создания гоферов в стиле Go на основе ваших подсказок. Результаты неоднозначные, но забавные.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏14😁1
🤩 Изучение исходников других проектов — отличный способ обучения для Go-разраба. Ловите один из интересных примеров с уклоном в веб-разработку👇

🧰 Househunt — полноценное веб-приложение на Go, изучив исходили которого вы найдете ответы на несколько важных вопросов:

☑️ Как структурировать проект и куда правильно раскидать файлы?
☑️ Как объединить разные пакеты?
☑️ Как писать модульные и интеграционные тесты?
☑️ .. и многие другие.

👉 Статья о предпосылках разработки проекта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🥱8🤔1
🙅‍♂️ Дискриминация на работе: в чем проявляется и что делать, если вы с ней столкнулись

Дискриминация в IT — серьезная проблема, с которой сталкиваются до 40% работников. Как распознать притеснения по возрасту, инвалидности или семейному положению и отстоять свои права?

👉 Читать статью
🥱18😁5🌚4👍2
🧰 xgo — инструмент, который добавляет функцию Trap и предоставляет такие инструменты, как Mock и Trace. Главная цель — помочь разработчикам писать юнит-тесты и отлаживать их проще и быстрее.

👉 Подробнее
👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍2
👩‍💻 «Планировщик Go: имплементация языка с облегченной конкурентностью» — один из топовых докладов о планировщике Go от Дмитрия Вьюкова из Google.

Вы узнаете, как реализовано это волшебство: от работы основных компонентов и работы в целом до разбора конкретных аспектов, таких как блокировка обработки системных вызовов и реализация расширяемых стеков.

▶️ Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🧑‍💻 Как я входил в IT: опыт подписчиков «Библиотеки программиста»

Недавно мы провели опрос среди наших читателей, и сделали несколько интересных открытий, которые пригодятся всем, кто решил войти в ИТ в 2024 году.

👉 Читать результаты опроса
😁12🤔3
🔹 В объектно-ориентированных языках Проблема Ромба является известной ловушкой модели множественного наследования.

Что оно имеет общего с Go? Без наследования, не говоря уже о множественном наследовании, что может пойти не так?

В Go вполне возможно построить отношение зависимости в форме ромба через встраивание структур. Хотя встраивание структур не то же самое, что наследование, это также форма «продвижения» методов из встроенной во встраивающую структуру.

Если встроенная структура B имеет метод Foo(), встраивающая структура D может вызвать Foo() напрямую, вместо вызова B.Foo(). Если структура D встраивает B и C, которые оба определяют метод Foo() (который может опционально реализовывать интерфейс A), тогда у нас есть Проблема Ромба (пример).

К счастью, Go предотвращает нас от случайного вызова неправильного Foo(). Решение Go даже попало в Википедию:

Go prevents the diamond problem at compile time. If a structure D embeds two structures B and C which both have a method F(), thus satisfying an interface A, the compiler will complain about an "ambiguous selector" if D.F() is called, or if an instance of D is assigned to a variable of type A. B and C's methods can be called explicitly with D.B.F() or D.C.F().


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

#этобаза
10🔥5👍2🥱1
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»

🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/a069d47b

На вводной части вас ждут:

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

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

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

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

⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/a069d47b
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Топ-9 паттернов для обмена данными и взаимодействия между компонентами/сервисами в распределенных системах

🔹 Peer-to-Peer
🔹 API Gateway
🔹 Pub-Sub
🔹 Request-Response
🔹 Event Sourcing
🔹 ETL
🔹 Batching
🔹 Streaming Processing
🔹 Orchestration

👉 Источник

#инфографика
🔥26👍1🥱1
Какими площадками/соцсетями вы активно пользуетесь кроме Telegram?
Anonymous Poll
25%
VK
8%
X (Twitter)
37%
Хабр
15%
Linkedin
12%
Reddit
80%
YouTube
23%
Instagram (принадлежит компании Meta, деятельность которой запрещена на территории РФ)
3%
Facebook (принадлежит компании Meta, деятельность которой запрещена на территории РФ)
4%
Свой вариант (напишу в комментарии)
😁1
👩‍💻 Запуск Go-кода из Elixir с использованием Web Assembly

WebAssembly объединяет языки программирования — на этот раз это Elixir and Go. Узнайте, как wasmex работает в действии.

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