Библиотека 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
🛠 Введение в модульное тестирование на Go

📌 Практический мини-гайд, из которого вы узнаете:

☑️ Про возможности стандартной библиотеки Go для тестирования
☑️ Как проводить и интерпретировать результаты тестов
☑️ Как решить проблемы при неудачных тестах
☑️ Как создавать и анализировать отчеты о покрытии кода
👍10👏5
🧨 Из грязи в князи: вкатился с нуля в IT за границей

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

📝 Если вы готовы рассказать свою историю — напишите нам на [email protected]
🥱10😁5🤩4
⚡️Итоги недели в мире ИИ и обзоры новых сервисов

У нас вышла очередная статья на 📰 по мотивам еженедельной рассылки про последние новости и тенденции в мире ИИ.

Ниже — небольшая выдержка из статьи, а целиком читайте здесь 👈

💬Новости

▫️ Создан новый тест для ИИ — WMDP (Weapons of Mass Destruction Proxy), который будет проверять модели на знание:
- способов создания и применения всех видов оружия массового поражения;
- методов взлома систем кибербезопасности.
▫️Глава OpenAI Сэм Альтман обнародовал переписку с Илоном Маском, в которой последний указывает на то, что ожидает от OpenAI прибыли. Это противоречит недавним заявлениям Маска.

🛠 Инструменты

▫️Corgea — находит и автоматически исправляет уязвимости в коде.
▫️GenWebBilder — делает полнофункциональные веб-сайты по скетчам и скриншотам.
▫️Framedrop AI — автоматически конвертирует длинные видео, влоги и стримы в рилсы и короткие клипы для X и TikTok.
▫️Vocalo AI — личный репетитор, который научит свободно говорить по-английски.

👍 Робототехника

Профессор Кен Голдберг из Университета Беркли поделился соображениями по поводу технических, этических и экономических проблем, которые препятствуют широкому внедрению ИИ-роботов на данном этапе.

➡️ Вы можете подписаться на email-рассылку здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
😁32🔥1
🏃 Самоучитель по Go для начинающих. Часть 10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция

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

👉 Читать гайд

📌 Остальные части в серии:

1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
👍205🔥1😁1🥱1
Самые полезные каналы для программистов в одной подборке!

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

🔥Для всех

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

#️⃣C#

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

☁️DevOps

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

🐘PHP

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

🐍Python

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

Java

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

👾Data Science

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

🦫Go

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

🧠C++

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

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

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

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

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

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

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

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

* Организация Meta запрещена на территории РФ
2👍2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🧰 IntelliJ Developer Tools Plugin — аналог CyberChef, но для продуктов JetBrains. Это универсальный набор инструментов на все случаи жизни внутри IDE, которые могут пригодиться разработчику.

👉 GitHub
🔥13👍2🥱2
🧰 Создание системы логической репликации Postgres на Go

Разработчики Go базы данных Dolt работают над функцией репликации данных из Postgres и делятся опытом разработки протокола логической репликации на Go.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔5
🚀 FormStream — быстрый потоковый Go-парсер для multipart/form-data, который предоставляет враппер для использования с net/http, echo и gin.

parser, err := formstream.NewParser(r)
if err != nil {
return err
}

err = parser.Register("icon", func(r io.Reader, header formstream.Header) error {
name, _, _ := parser.Value("name")
password, _, _ := parser.Value("password")

return saveUser(r.Context(), name, password, r)
}, formstream.WithRequiredPart("name"), formstream.WithRequiredPart("password"))
if err != nil {
return err
}

err = parser.Parse()
if err != nil {
return err
}


👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🤔2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
#инфографика

🧰 CI/CD пайплайн в деталях

1️⃣ SDLC с CI/CD

🔸Жизненный цикл разработки программного обеспечения (SDLC) состоит из нескольких ключевых этапов: разработка, тестирование, деплой и cопровождение. CI/CD автоматизирует и интегрирует эти этапы, обеспечивая более быстрые и надежные выпуски. Когда код помещается в Git-репозиторий, он запускает автоматизированный процесс сборки и тестирования.

🔸Для проверки кода запускаются сквозные тестовые примеры. Если тесты пройдены, код может быть автоматически развернут в staging/production окружении. Если проблемы обнаружены, код отправляется обратно в разработку для исправления ошибок. Эта автоматизация обеспечивает быструю обратную связь с разработчиками и снижает риск ошибок в продакшене.

2️⃣ Разница между CI и CD

🔸Непрерывная интеграция (CI) автоматизирует процессы сборки, тестирования и слияния. В рамках CI запускаются тесты всякий раз, когда код фиксируется для раннего обнаружения проблем интеграции. Это поощряет частые фиксации кода и быструю обратную связь.

🔸Непрерывная доставка (CD) автоматизирует процессы выпуска, такие как изменения инфраструктуры и развертывание. Это гарантирует, что программное обеспечение может быть надежно выпущено в любое время с помощью автоматизированных рабочих процессов. CD также может автоматизировать этапы ручного/аппрувал тестирования, необходимые перед деплоем в продакшене.

3️⃣ CI/CD пайплайн

🔸Типичный CI/CD пайплайн состоит из нескольких связанных этапов:

🗄 Разработчик фиксирует изменения кода в системе управления версиями
🗄 CI-сервер обнаруживает изменения и запускает сборку
🗄 Код компилируется и тестируется
🗄 Результаты тестирования сообщаются разработчику
🗄 В случае успеха артефакты развертываются в staging окружениях
🗄 Дальнейшее тестирование может быть проведено на стадии подготовки перед выпуском
🗄 Система CD внедряет утвержденные изменения в продакшен

👉 Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥51
👩‍💻👩‍💻 Go + Kubernetes: кейс из практики

📌 Автор делится специфической проблемой, возникшей в одном из продакшн-окружений: при вызове определенного API-эндпоинта возникала ошибка 502 Bad Gateway только в одном продакшн-окружении. При этом контейнер в Kubernetes поде перезапускается, но без каких-либо ошибок в логах.

🔫 Оказывается, контейнер был убит из-за превышения лимита памяти (OOMKilled). Эндпоинт был разработан для получения большого объема данных для работы мобильного приложения в офлайн-режиме, но не ожидалось, что объем данных будет настолько большим.

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

☑️ Введение переменной окружения GOMEMLIMIT в Go 1.19 позволяет установить мягкий лимит памяти для сборщика мусора, что помогает управлять использованием памяти более эффективно и предотвратить OOM. В статье показано, как настроить GOMEMLIMIT в файле деплоя Kubernetes, чтобы он соответствовал установленному лимиту памяти.

☑️ Решение не является универсальным, и в некоторых кейсах может быть предпочтительнее быстро завершить работу с использованием настроек по умолчанию, чем пытаться использовать всю доступную память перед остановкой процесса из-за ошибки OOM.
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍15
💬 Что такое Low order bits (LOB) в контексте типа map в Go?

LOB в контексте типа map в Go относятся к младшим битам хэш-значения ключа, используемых для определения позиции элемента в массиве бакетов внутри мапы.

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

Вместо использования всего хэш-кода напрямую, часто используются только его младшие биты, поскольку они обеспечивают равномерное распределение элементов по бакетам, что важно для эффективности хэш-таблицы.
👍31🥰3
⚡️ Расширение границ в Go: от net.Dial до системных вызовов, AF_PACKET и молниеносного AF_XDP

Под катом — сравнительный анализ производительности отправки пакетов в Linux. Если вам нравятся сети, Go и бенчмаркинг, то однозначно понравится этот мини-ресёрч.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍4
🔟 10 суровых истин, которые должен знать каждый джун

Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!

👉 Читать статью
👉 Зеркало
🥱21👍9🎉5😁4
🚀 Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд

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

Автор описывает девять решений на Go, каждое из которых быстрее предыдущего. Первое, простое и идиоматичное, выполняется 1 минуту 45 секунд, а последнее — примерно 4 секунды.

👉 Читать
👍24🔥5
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
💬 Open Source по-русски: путь к технологической независимости или обочина прогресса?

Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.

Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.

👉 Ссылка на опрос 👈

Прохождение займёт примерно 4 минуты
👍11😁5
🏎 Улучшения трассировки выполнения в Go 1.22: низкие накладные расходы и масштабируемость

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

☑️ Низкие накладные расходы: благодаря оптимизации трассировок стека, временные затраты CPU на трассировки выполнения были сокращены до 1-2% для многих приложений, что делает трассировку более пригодной для постоянного использования.

☑️ Масштабируемость трассировок: переработка формата трассировок и их событий позволила снизить требования к памяти при анализе трассировок, решая проблему анализа больших объемов данных.

☑️ Flight recording: позволяет непрерывно вести трассировку и сохранять только самые последние данные трассировки, что идеально подходит для захвата событий, произошедших непосредственно перед важным инцидентом.

☑️ API для чтения трассировок: упрощает программный анализ трассировок, делая их более доступными для разработчиков.
15🔥4👍3