golang українською
79 subscribers
10 photos
1 video
60 links
Telegram автора: @nesymno
Linkedin автора: bit.ly/nesymno-linkedin
Github каналу: bit.ly/uagolang-github
Download Telegram
Всім фізкульт-привіт, колеги! Є дуже цікава тема для статті. Я її напишу. Але, на жаль, практичного застосування їй не буде. Деталі згодом. Знаю… Сам розчарований 😩

Але тема дуже цікава, шкода-шкода…

———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👀4
Шановні колеги, радий всіх вас знову бачити 😎

Як і обіцяв, написав цікаву (надіюсь) статтю по темі, якій, на жаль, не судилось стати частиною нашої улюбленої гошки ☹️

Сьогодні ми розглянемо, що таке арени пам'яті, які вони мають плюси та мінуси, порівняємо їх з Rust Lifetimes, та зрозуміємо, чому їм ніколи не вийти в продакшн...

Українською:
https://uagolang.notion.site/Go-1f10710a945c8045adf5cb99ab590cbf

English:
https://uagolang.notion.site/Memory-Arenas-in-Go-failed-experiment-1f20710a945c8069b9e9ff11caa73992

Став 👍 якщо сподобався матеріал та коментуй як в останнє!
Слава Україні 🇺🇦🇺🇦

#авторське@uagolang #memory_arenas@uagolang #gc@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51
П'ятниця-розвратниця 🙃

Шановні колеги, ми лишились живими цього тижня, а тому перед вихідними пропоную заварити чайок і глянути нову підбірку!

1⃣ traefik/yaegi - інтерпретатор Go, написаний на Go. Дозволяє виконувати Go-код під час виконання програми, інтегрувати скриптинг або динамічно завантажувати функціональність. Дуже потужний інструмент для плагін-систем чи кастомної логіки.

🔗 Репозиторій: https://github.com/traefik/yaegi

2⃣ loov/goda - інструмент для роботи із залежностями (Go-пакетів 😄). Дозволяє аналізувати структуру проєктів, знаходити залежності, та будувати їх графи. Дуже корисно для складного аналізу кодової бази та зовнішніх пакетів.

🔗 Репозиторій: https://github.com/loov/goda

3⃣ olekukonko/tablewriter - дозволяє красиво форматувати та виводити табличні дані в консоль або будь-який io.Writer. Підтримує різні стилі оформлення. Незамінна утиліта для CLI-інструментів, яким потрібно відображати структуровані дані.

🔗 Репозиторій: https://github.com/olekukonko/tablewriter

Всім бажаю гарних вихідних! Скоро побачимось!

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Всім привіт! Друзі, я захворів, тому на цьому тижні буде тільки підбірка. Вибачте, зовсім немає сил зараз :(
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
💊3👍2
Шановні колеги!

Всіх вітаю із завершенням робочого тижня. Я захворів і не дуже був у робочому стані, тому цього тижня вийшла тільки ця підбірка.

1⃣ google/go-cmp - бібліотека для глибокого порівняння Go-структур. Показує, чому саме об’єкти відрізняються. Особливо корисно в snapshot-тестах і when-debugging-hell.

🔗 Репозиторій: https://github.com/google/go-cmp

2⃣ cucumber/godog - BDD для Go. Якщо любиш Gherkin (Given-When-Then) або хочеш, щоб бізнес аналітик міг читати/писати тести - ця штука якраз те, що треба.

🔗 Репозиторій: https://github.com/cucumber/godog

3⃣ vektra/mockery - генератор моків на основі Go-інтерфейсів. Ідеально інтегрується з testify, працює просто і стабільно. Підтримує кастомні шаблони та автоматичну генерацію.

🔗 Репозиторій: https://github.com/vektra/mockery

Бажаю всім гарних вихідних! І не хворійте, це не прикольно 🫠

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Вітаю всіх знову, шановні колеги! ☺️

Мені вже трохи краще, а це означає, що пора повертатись в робочий ритм.

Сьогоднішня тема далеко не нова, але не менш важлива. В статті розберемось - що таке GC, для чого він потрібен. Чому розробники мови обрали саме такий варіант і як він працює під капотом?

Тема статті доволі банальна, але якщо я вже почав - потрібно розібрати кожен важливий аспект мови. Приємного прочитання, надіюсь, ви зачерпнете для себе чогось нового, або просто згадаєте деякі нюанси.

Українською:
https://uagolang.notion.site/GC-Go-2000710a945c801e83becd96ddb99ba4

English:
https://uagolang.notion.site/Non-ideality-doesn-t-mean-inefficiency-GC-in-Go-2000710a945c802cae6bd6bf8226b3e2

Став 👍 якщо сподобався матеріал та коментуй як в останнє!
Слава Україні 🇺🇦🇺🇦

#авторське@uagolang #gc@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Колеги, всіх вітаю з останньою п'ятницею весни! 🍊

Вже за пару днів починається літо. Але, на жаль, лише в календарі та на душі.
Погодка ще досі (як на мене) не зовсім літня. Радує тільки одне - я знову в Україні!

Ліричний відступ закінчено 🐤🐤🐤

Сьогодні вирішив зробити підбірку з інструментами для скрепінгу даних та web-емуляції. Поїхали!

1⃣ gocolly/colly - дуже потіжний інструмент для скрепінгу в Go. Простий у використанні, але має все необхідне для якісного відпрацювання - cookies, rate-limit, проксі, парсинг HTML-елементів. Використовував в продакшені, і вам раджу, якщо є необхідність.

🔗 Репозиторій: https://github.com/gocolly/colly

2⃣ go-rod/rod - потужний headless-браузер, що має дуже зручний API, підтримує інтеракції, PDF/скріншоти, емулювання мобільних пристроїв. Якщо ви працювали з Puppeteer на JS, то це дуже непогана альтернатива на Go.

🔗 Репозиторій: https://github.com/go-rod/rod

3⃣ asciimoo/wuzz - CLI-утиліта для HTTP-запитів, але в неї можна зазичити приклади роботи з HTTP і парсингом, або обгорнути в Go-сценарій. Дуже корисний пакет для дебагу скреперів.

🔗 Репозиторій: https://github.com/asciimoo/wuzz

На цьому все! Бажаю вам сонячних і теплих (нарешті) літніх днів!
Не пийте багато холодної кави і вина! Тільки трошки 👌

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6
Всім доброго дня, шановні колеги! 😐

Скоро на мене чекатиме дуже цікава задача! 🎶
Буду контриб'ютити AWS контролери для k8s, а саме для сервісу Bedrock.

Ця робота пов'язана з моєю основною діяльність - стартапом у сфері управління k8s інфраструктурою. Так як наразі сам AWS не має повного покриття для Bedrock - будемо реалізовувати його самі для того, щоб автоматизувати розгортання та налаштування АІ інфраструктури в пару кліків.

Але більше деталей, поки що, надати не можу. Лише запевнити - буде цікаво! 🍊🍊🍊

Stay tuned! ❗️

#announce@uagolang #aws@uagolang #ai@uagolang #k8s_operators@uagolang #bedrock_aws@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Всіх вітаю! Надіюсь, цю ніч всі пережили нормально, йобана русня не дала поспати вночі 😈

Перша літня п'ятнична підбірка включатиме наступні пакети 😒

1⃣ go-nsq - легка розподілена система обміну повідомленнями в реальному часі. Ідеально підходить для побудови асинхронних сервісів та event-driven архітектури без потреби в Kafka чи RabbitMQ.

📦 https://github.com/nsqio/go-nsq

2⃣ tunny - пул воркерів для контролю паралельного виконання горутин. Дозволяє обмежити навантаження на систему, ефективно використовуючи ресурси.

📦 https://github.com/Jeffail/tunny

3⃣ goleak - інструмент від uber для виявлення витоків горутин у тестах. Прекрасно інтегрується з testing.T і допомагає зловити недозакриті ресурси.

📦 https://github.com/uber-go/goleak

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Всім привіт! Знаю, вже давно не було від мене новин, дуже зараз напряжний момент життя в мене. Стартап над яким ми з командою працювали останні півтора роки, нарешті, вийшов в продакшн, підключили першого клієнта! З цим можете привітати.

Але є і демотивуючі речі, я трохи приунив і не знаходжу сил писати статті кожного тижня. Як тільки трохи стабілізуюсь - все відновиться. Вибачте, надіюсь, зрозумієте мене 🫡
🎉11
Всім привіт! Стараюсь по трохи входити в робочий ритм 😒

До написання статей ще не добрався, але приніс вам іншу цікавинку.
Знаєте ви чи ні, але в серпні планується реліз Go 1.25!

Багато цікавих штук завезли:

🕒 Синтетичний час для тестів - пакет synctest тепер стабільний - тестуйте таймаути без очікування реального часу. Створює "бульбашки", де час стрибає миттєво.

📋 JSON v2 - повністю переписаний JSON пакет з підтримкою кастомних маршалерів для одного типу.

🐳 Контейнер-свідомий GOMAXPROCS - Go тепер автоматично враховує CPU ліміти Docker/Kubernetes контейнерів. Якщо контейнер має 4 CPU - GOMAXPROCS буде 4, а не 8, якщо, наприклад, на машині 8 ядер.

🗑 Green Tea GC - експериментальний збирач сміття для програм з багатьма малими об'єктами. Перші бенчмарки показали зменшення накладних витрат GC на 10-40%!

🛡 Захист від CSRF - вбудований http.CrossOriginProtection для захисту від міжсайтових атак. Автоматично перевіряє заголовки та блокує підозрілі запити.

WaitGroup.Go() - нарешті додали очевидний метод wg.Go(func(){}) замість wg.Add(1) + go func() + defer wg.Done(). Після 13 років!

✈️ Flight Recording - новий trace.FlightRecorder записує ковзне вікно виконання програми. Ідеально для ловлі рідкісних багів та проблем продуктивності.

📁 Більше методів os.Root - додано купу методів: Chmod, WriteFile, MkdirAll та інші. Тепер os.Root майже повноцінна заміна пакету os.

🔍 reflect.TypeAssertT - типобезпечне перетворення reflect.Value без боксингу в interface{}. Швидше та зручніше ніж старий спосіб.

🧪 Атрибути тестів - t.Attr("issue", "PROJ-123") для додавання метаданих до тестів. Корисно для CI систем та аналізу результатів.

📊 slog.GroupAttrs() - можна створювати групи атрибутів зі слайсів slog.Attr. Вирішує проблему з slog.Group().

🔐 hash.Cloner - всі хеш-функції тепер можна клонувати для ефективного обчислення зі спільними префіксами.

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#release_notes@uagolang #go1_25@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Надіюсь, всі живі здорові. Я тут пережив під 50 прильотів за останні декілька годин… такого піздєца ще не було!
😢71
фальш-старт, сорі)
опитування буде завтра зранку
Всім доброго ранку! Хтось користується neoVim?
Мене дуже мотивує мій колега, дуже жорсткий тіп)
Коли ми сидимо на колі, я просто кайфую, коли наблюдаю його роботу в ньому.
Так, доведеться під вчитись, але думаю воно того варте.
І, що не менш важливо, neoVim вимагає НАБАГАТО менше ресурсів комп'ютера.

Діліться, хто якими IDE користується?
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
Всім привіт! П’ятниця прийшла, а разом з нею - свіжа трійка корисних Go-пакетів, з якими можна трохи покопатися у вихідні ☕️💻

1⃣ semver - бібліотека для роботи з SemVer. Дозволяє парсити, порівнювати та валідувати версії. Часто використовується в системах керування залежностями або автоматичного оновлення.

📦 https://github.com/Masterminds/semver

2⃣ mcp-golang - бібліотека для побудови інструментів із підтримкою MCP-протоколу, що забезпечує type safety через опис аргументів у вигляді Go-структур, автоматичну генерацію схем, обробку помилок і десеріалізацію. Підтримує кастомні транспорти, зокрема stdio та HTTP, та дозволяє будувати як клієнти, так і сервери з мінімумом boilerplate-коду. Складається з модульних компонентів, які можна використовувати окремо: транспорт, протокол, клієнт/сервер.

📦 https://github.com/metoro-io/mcp-golang

3⃣ Gokapi - легкий self-hosted сервіс для обміну файлами з CLI і браузера. Написаний на Go, підтримує токени, TTL, розміри файлів. Можна використовувати AWS S3 для зберігання файлів. Чудово підійде для невеликих команд, яким потрібно шерити документацію, і які цінують приватність.

📦 https://github.com/Forceu/Gokapi

Став 👍 якщо сподобався матеріал!

Слава Україні 🇺🇦
Смерть ворогам 🖕🐖

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Всім привіт! П'ятниця увійшла у двері з ноги, а я всього лише хотів швиденько доробити фічі... 😅

Але спочатку - свіжа трійка Go-пакетів, які можна вивчити за кавою (або після неї, якщо п'ятниця вже взяла своє) ☕️💻

1⃣ testcontainers-go - бібліотека для інтеграційного тестування з реальними залежностями через Docker контейнери. Дозволяє запускати бази даних, черги повідомлень, зовнішні сервіси прямо в тестах. Підтримує популярні системи: PostgreSQL, Redis, Kafka, Elasticsearch, по суті все, на що є готові імеджи. Автоматично очищає ресурси після тестів. Якраз на днях користувався по робочим задачам, дуже сподобалось, має підтримку docker-compose.

📦 https://github.com/testcontainers/testcontainers-go

2⃣ unregistry - легкий Docker registry з мінімальними залежностями. Реалізує Docker Registry HTTP API v2, підтримує garbage collection, веб-UI для перегляду образів. Ідеальний для невеликих команд або розробки, коли потрібен простий приватний registry без складної інфраструктури.

📦 https://github.com/psviderski/unregistry

3⃣ BillionMail - швидкий self-hosted поштовий сервер з веб-інтерфейсом. Підтримує SMTP/IMAP, має вбудований spam-фільтр, веб-клієнт та API. Написаний на Go з фокусом на продуктивність - може обробляти мільйони листів. Чудова альтернатива хмарним поштовим сервісам для приватності. Також з його допомогою можна робити маркетингові розсилки, що є приємним бонусом його використання.

📦 https://github.com/aaPanel/BillionMail

Став 👍 якщо сподобався матеріал!

Слава Україні 🇺🇦
Смерть ворогам 🖕🐖

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61🔥1
Привіт всім, шановні колеги! 😎
Признавайтесь, хто часто забиває на тести? 😒
Взагалі, як часто ви їх пишете, які це тести (unit / integration)?
Поділіться вашими найскладнішими кейсами.

Особисто моя біль - це тестування конкурентності і "очікування" певних даних з якихось інших сервісів.
Please open Telegram to view this post
VIEW IN TELEGRAM
Завтра трошки розкажу чим займаюсь. Надіюсь, буде цікаво)
👍7👀2🤷1
Всім привіт, колеги! 👋

Хочу трішки більше розказати вам чим я зараз займаюсь і як кайфую від цього. Отже, як я вже колись згадував, я є кофаундером стартапу. Ідея проєкту не була моєю, з ідеєю до мене прийшов мій вже тепер друг і партнер Антон, який є Chief Architect в Profisealabs. На той момент я якраз був в пошуках нового місця для роботи і, напевно, сама доля звела нас. Він розказав мені про свої болі як DevOps і як планує їх вирішувати. Ідея мене дуже зацікавила, адже стосувалась і мене напряму, як розробника. Так ми й почали робити Kuberly.

🚀 kuberly.io - керуй Kubernetes без DevOps

Ми будуємо платформу, яка дозволяє розробникам самостійно керувати клауд-інфраструктурою без виносу мозку з YAMLами, тераформом і самим кубернетісом. Наша ціль - "вбити" девопсів, адже часто, саме вони є ботлнеком в процесі підготовки інфраструктури для проєктів. І ось, через майже 2 роки активної розробки, я готовий привідкрити завісу і поділитись тим, що вміє Kuberly з коробки.

⚠️ Варто зазначити, що ми не співпрацюємо з окремими розробниками - це B2B, тому просто зайти і протестувати у вас, на жаль, не вийде.

🎹 Основні фічі kuberly.io:

• Підключення клауд-акаунтів AWS (GCP, Azure - в розробці)
• Створення k8s кластерів у кілька кліків
• Управління проєктами та середовищами (dev, staging, prod тощо)
• Права доступу (RBAC) для команд
• Управління доменами, DNS і TLS
• Створення та деплой з Git за правилами (ПРи, гілки, теги тощо) - авто CI / CD
• Управління секретами та env-змінними
• Бази даних, об'єктне сховище, меседж-брокери
• Лямбди, джоби, роутинг сервісів
• Пряме підключення до контейнерів через термінал
• Вбудовані логи та моніторинг (prometheus + grafana + loki) без налаштувань
• Вбудований АІ-агент, який допоможе самостійно розібратись з помилками в інфраструктурі та запропонує оптимальні рішення, коли це можливо

✔️ Все це - в зручному інтерфейсі, з автоматизацією та без зайвої мороки.

🌎🇺🇦 Ми - український стартап, створений для бізнесу з командами розробників, які цінують свій час.

Наш сайт: https://kuberly.io

Зараз готуємо декілька досить потужних фіч, але про це розкажу вже після їх релізу. Як часто у вас виникають труднощі з інфраструктурою? Скільки часу зазвичай займає її підняття?

#kuberly@uagolang
——————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍2