Библиотека 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
🧰goldmark — Go-парсер markdown, который имеет три ключевых характеристики:

☑️ Легко расширяем
☑️ Совместим с CommonMark
☑️ Имеет хорошо структурированную архитектуру

import (
"bytes"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/extension"
"github.com/yuin/goldmark/parser"
"github.com/yuin/goldmark/renderer/html"
)

md := goldmark.New(
goldmark.WithExtensions(extension.GFM),
goldmark.WithParserOptions(
parser.WithAutoHeadingID(),
),
goldmark.WithRendererOptions(
html.WithHardWraps(),
html.WithXHTML(),
),
)
var buf bytes.Buffer
if err := md.Convert(source, &buf); err != nil {
panic(err)
}


👉 GitHub
👉 Goldmark playground
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84
Вы работаете в команде мидл-разработчиком, но уже давно чувствуете, что знаний у вас гораздо больше, чем у сеньора в команде. Ваши действия:
Anonymous Poll
17%
Свалю из такой команды
48%
Поговорю с тимлидом и попрошу пересмотреть грейды
1%
Смирюсь
12%
Забью и сделаю фокус на личном развитии
0%
Свой вариант (напишу в комментариях)
21%
Посмотреть результаты
🥱102
🧑🏻‍🏫 Менторство в IT: как стать айтишником, найти работу мечты и облегчить себе жизнь

Как вкатиться в IT и найти работу с помощью ментора? Чем могут помочь наставники и с какими запросами к ним приходят? А главное — где найти хорошего специалиста?

👉 Рассказываем обо всём в новой статье 👈
🔗 Зеркало
👍6
🩷👨‍💻 Пока влюбленные шлют друг другу валентинки, айтишники отмечают свой профессиональный праздник. 14 февраля считается неофициальным днем компьютерщика.

🤦‍♂️ Так совпало, что именно в этот день в 1946 году общественности был продемонстрирован первый работающий электронный компьютер ENIAC I. Именно к этому событию приурочено празднование.

💬 А ведь раньше действительно айтишников называли компьютерщиками… Или кого там так называли? Кто винду мог переустановить?
🔥53👍2🥱1
👀 Практический взгляд на уменьшение зависимостей в Go-библиотеках

🤔 «Зачем уменьшать зависимости?» — спросите вы. Как минимум для уменьшения сложности, снижения риска, сокращения времени сборки и уменьшения размера итогового бинаря.

🤩 Под катом — взгляд на этот вопрос с примерами в Huma , Go-фреймворке для создания REST API с использованием OpenAPI, который может вдохновить вас на рассмотрение аналогичных вариантов для ваших собственных проектов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏2🥱2👍1🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
🤩 TinyGo + WASM в действии

🔍 Найдено на просторах X
🔥15👍2💯2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
🏎️ Основные особенности gRPC: на заметку разработчику

gRPC (Remote Procedure Calls) — это система удалённого вызова процедур с открытым исходным кодом, первоначально разработанная в Google в 2015 году. Под капотом используется HTTP/2 для транспорта и Protocol Buffers в качестве языка описания интерфейса.

🔹Protocol Buffers (Protobuf): gRPC по умолчанию использует Protocol Buffers (файлы .proto) в качестве языка описания интерфейса (IDL). Это делает сообщения gRPC меньше и быстрее по сравнению с JSON или XML. Protobuf позволяет определять структуру данных и интерфейс сервиса в едином формате, что упрощает сериализацию/десериализацию данных.
🔹Транспорт на основе HTTP/2: gRPC использует HTTP/2 для транспорта, что позволяет реализовать ряд улучшений по сравнению с HTTP/1.x. Включая такие фичи, как мультиплексирование потоков, сжатие заголовков, приоритизация запросов и поддержка серверного push.
🔹Поддержка множества языков программирования: gRPC поддерживает широкий спектр ЯП, включая C#, Java, Python, и Go, что делает его универсальным инструментом для создания распределенных систем.
🔹Двунаправленный стриминг: gRPC поддерживает стриминг запросов и ответов, что позволяет разрабатывать сложные real-time приложения вроде чат-сервисов.

👉 Источник

#инфографика
👍92🔥2
💸 Рост или падение? Изменение зарплат в IT за 2023 год

Чтобы разобраться в этом вопросе, «Библиотека программиста» решила провести опрос среди читателей издания. Мы хотим понять, выросли ли ваши зарплаты в 2023 году и если да, то на сколько процентов. Или может быть наоборот — ваши доходы снизились на фоне кризисных явлений в экономике?

Примите участие в нашем коротком опросе и поделитесь своим мнением! Вместе мы проанализируем текущую ситуацию на рынке труда в IT-сфере и поймем, что ждёт эту отрасль дальше. Ждём ваших ответов!

Опрос займёт у вас примерно 4 минуты.

👉 Ссылка на опрос
👏6🤔32👍1
🤔 Сохранение объекта Go в JSON-файле

Используйте jsonfile для сохранения значения Go в файле JSON.

type JSONFile
func Load[Data any](path string) (*JSONFile[Data], error)
func New[Data any](path string) (*JSONFile[Data], error)
func (p *JSONFile[Data]) Read(fn func(data *Data))
func (p *JSONFile[Data]) Write(fn func(*Data) error) error


В несколько строк кода этого репозитория вложено немного больше мыслей, чем вы могли ожидать. Если вам нужна более подробная информация, смотрите заметки в блоге.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱10👍31
🏃 Самоучитель по Go для начинающих. Часть 7. Массивы и слайсы. Append и сopy. Пакет slices

Рассмотрим реализацию массивов и слайсов в языке Go, разберем функции append и copy, изучим пакет slices и по традиции решим несколько занимательных задач.

👉 Читать статью
👉 Часть 1
👉 Часть 2
👉 Часть 3
👉 Часть 4
👉 Часть 5
👉 Часть 6
👍172🔥1😁1🥱1
🤔 Остаться или уйти? Оптимальный срок работы на одном месте

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

Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.

Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?

👉 Расскажите о своём опыте в нашем новом опросе 👈
🥱21🌚4👍32👾1
🧰 errcheck — инструмент для проверки непроверенных 🤯 ошибок в Go-коде. Недавно вышла версия 1.7.0.

📌 Для базового использования просто укажите интересующий путь к пакету в качестве первого аргумента:

errcheck github.com/kisielk/errcheck/testdata


📌 Проверить все пакеты в текущей директории:

errcheck ./...


📌 Или проверьте все пакеты в вашем $GOPATH и $GOROOT:

errcheck all


👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍212
🖼️ Новый видеогайд про lock-free структуры данных в Go от Владимира Балуна:

Таймкоды:

00:00 — Lock-free структуры данных
00:41 — Реализация стека на связном списке
01:59 — Неправильная реализация lock-free стека
06:17 — Правильная реализация lock-free стека
09:43 — ABA проблема
11:55 — Hazard pointers
12:13 — Tagged pointers
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍12🌚3🥱2
🤔 От Go к Rust: два типа читаемого кода

Читаемость кода часто связана с тем, насколько синтаксис и концепции языка знакомы разработчику. Что кажется читаемым одному, может быть непонятным другому.

Автор статьи разделил понятия «читаемость для новичков» (как быстро можно начать читать новый ЯП) и «читаемость для опытных» (как быстро опытный разработчик может понять код).

«При чем тут Go и Rust?» — спросите вы. А при том, что по мнению автора Go выбирает читаемость для новичков, в то время как Rust оптимизируется для опытных разработчиков.

Важно соблюдать баланс между упрощением кода для новичков и предоставлением продвинутых инструментов для опытных разрабов.

💬 Что думаете?
👍6🌚42
🖼️ Начните со стандартной библиотеки Go

🤔 Начиная проект, новички часто задают следующие вопросы:

🔸 Какой логгер/веб-фреймворк/... следует использовать?
🔸 Какую ORM лучше использовать?

🤷‍♂️ Эти вопросы заданы из лучших побуждений, но все они упускают из виду ключевой аспект — Go имеет отличную стандартную библиотеку.

📌 Читайте подробнее, почему иногда действительно следует начать с использования стандартной библиотеки Go.
Please open Telegram to view this post
VIEW IN TELEGRAM
💯15👍51
⚒️ Go 1.22: Rangefunc Experiment

Перевод материала с Go Wiki о простых одноуровневых циклах:

☑️ Что такое range func?
☑️ Нюансы
☑️ Push/Pull - семантика
☑️ Как попробовать
☑️ Пример: перебор слайса в случайном порядке
☑️ Послесловие
🔥5😁3👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
Я и моя команда DevOps пытаемся устранить неполадки кластера Kubernetes в продакшене

#жиза
👍31😁31💯8🔥1👾1