📊 gopsutil: Мониторинг системных ресурсов на Go без боли. Это кросс-платформенный порт знаменитой Python-библиотеки psutil. Последняя версия v4.24 добавила экзотическую поддержку RISC-V и кэширование boottime.
Авторы балансируют между кроссплатформенностью и спецификой ОС: базовые функции вроде
🤖 GitHub
@golang_interview
Авторы балансируют между кроссплатформенностью и спецификой ОС: базовые функции вроде
mem.VirtualMemory()
работают везде, а для тонкой настройки есть platform-specific Ex
-структуры. Особенно радует, что даже на Windows можно получить детализацию уровня Linux через NewExWindows()
. 🤖 GitHub
@golang_interview
This media is not supported in your browser
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🕷️ Ferret — декларативный веб-скрапинг без головной боли. В отличие от традиционных решений вроде Scrapy или BeautifulSoup, он использует собственный декларативный язык для описания правил извлечения данных, скрывая сложность работы с динамическим контентом.
Особенность инструмента в акценте на переносимость: ядро системы можно встраивать в другие приложения. Проект пока не стал мейнстримом, но его подход к абстракции технических деталей заслуживает внимания.
🤖 GitHub
@golang_interview
Особенность инструмента в акценте на переносимость: ядро системы можно встраивать в другие приложения. Проект пока не стал мейнстримом, но его подход к абстракции технических деталей заслуживает внимания.
🤖 GitHub
@golang_interview
Ит-специалистов массово увольняют — с начала года во всём мире сократили свыше 52 тысяч (!) специалистов, а число вакансий рухнуло до исторического минимума.
И что самое интересное под сокращения попали даже сеньоры с 15-летним опытом из Microsoft, Google, Tesla, eBay и PayPal.
Среди самых частых причин — оптимизация расхрдов и... нейросети.
ChatGPT - остановись.
https://layoffs.fyi/
@golang_interview
И что самое интересное под сокращения попали даже сеньоры с 15-летним опытом из Microsoft, Google, Tesla, eBay и PayPal.
Среди самых частых причин — оптимизация расхрдов и... нейросети.
ChatGPT - остановись.
https://layoffs.fyi/
@golang_interview
Бесплатный вебинар от Слёрма «Траблшутинг K8s: инструменты и лайфхаки для разработчиков».
На вебинаре:
- начнём с kubectl,
- посмотрим сайдкар контейнеры и узнаем, зачем их использовать,
- разберемся с сетевыми проблемами,
- научимся использовать strace для сложных случаев
Спикер: Виталий Лихачев, SRE в крупном нидерландском тревелтехе.
Дата: 14 мая 19:00
👉 Занять место — через бота.
В конце вебинара — подарок 🎁
Вебинар проходит в рамках курса «Kubernetes для разработчиков»
Реклама ООО «Слёрм» ИНН 3652901451
На вебинаре:
- начнём с kubectl,
- посмотрим сайдкар контейнеры и узнаем, зачем их использовать,
- разберемся с сетевыми проблемами,
- научимся использовать strace для сложных случаев
Спикер: Виталий Лихачев, SRE в крупном нидерландском тревелтехе.
Дата: 14 мая 19:00
👉 Занять место — через бота.
В конце вебинара — подарок 🎁
Вебинар проходит в рамках курса «Kubernetes для разработчиков»
Реклама ООО «Слёрм» ИНН 3652901451
🗂️ gokv — универсальный интерфейс для key-value хранилищ на Go. В отличие от специфичных клиентов вроде go-redis, он абстрагирует детали реализации, позволяя писать код один раз, а затем подключать нужное хранилище через конфиг.
Особенность проекта в автоматической сериализации структур в JSON/gob/protobuf без ручного упорядочивания. Например, можно сохранить сложный struct в Redis или S3, а затем прочитать его из PostgreSQL — всё через стандартные методы
🤖 GitHub
@golang_interview
Особенность проекта в автоматической сериализации структур в JSON/gob/protobuf без ручного упорядочивания. Например, можно сохранить сложный struct в Redis или S3, а затем прочитать его из PostgreSQL — всё через стандартные методы
Set()`/`Get().
Проект пока в стадии активной разработки (v0.x), но уже используется в middleware для Gin и других пакетах, где важна гибкость выбора хранилища.🤖 GitHub
@golang_interview
❓Зачем спорить на ревью, если можно сразу договориться?
С 12 по 16 мая на Podlodka Go Crew разбираемся с темой «Стандарты разработки» — как задать стиль, структуру и правила, чтобы код писался быстрее, чище и без лишних обсуждений.
🔍 Вместе с VK Tech проследим эволюцию валидации Go-кода — какие подходы действительно прижились
.
⚖️ В рулетке кейсов разберём, где стоит настаивать на линтере, а где важнее гибкость и здравый смысл.
🏗 И на примере Т-Банка посмотрим, как архитектурные стандарты помогают расти от MVP до зрелого продукта.
📚 Всё — про автоматизацию, code-style и архитектуру, которую не придётся переизобретать.
🚢 Подключайтесь — https://podlodka.io/gocrew
С 12 по 16 мая на Podlodka Go Crew разбираемся с темой «Стандарты разработки» — как задать стиль, структуру и правила, чтобы код писался быстрее, чище и без лишних обсуждений.
🔍 Вместе с VK Tech проследим эволюцию валидации Go-кода — какие подходы действительно прижились
.
⚖️ В рулетке кейсов разберём, где стоит настаивать на линтере, а где важнее гибкость и здравый смысл.
🏗 И на примере Т-Банка посмотрим, как архитектурные стандарты помогают расти от MVP до зрелого продукта.
📚 Всё — про автоматизацию, code-style и архитектуру, которую не придётся переизобретать.
🚢 Подключайтесь — https://podlodka.io/gocrew
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Go (или Golang) — современный язык программирования от Google, который сочетает в себе простоту синтаксиса, высокую производительность и надёжную многопоточность. Ниже собрана хронология ключевых этапов его эволюции.
1. Зачатки идеи (2007)
- Место и время: Google, 2007 год
- Инициаторы: Роберт Гриземер, Роб Пайк и Кен Томпсон
- Мотивация:
- Устранить избыточную сложность C++ и Java
- Сохранить статическую типизацию и скорость компиляции
- Сделать параллелизм «из коробки» через модель CSP (Communicating Sequential Processes)
2. Первый публичный релиз (2009)
- 10 ноября 2009
- Запуск официального сайта [golang.org]
- Публикация открытого исходного кода
- Появление интерактивного «Tour of Go» для знакомства с основами языка
3. Go 1.0 — стабилизация и гарантия совместимости (2012)
- 28 марта 2012
- Выход Go 1.0 с обещанием: любая программа, скомпилированная под Go 1.0, будет работать без изменений во всех версиях Go 1.x
- Это решение укрепило доверие сообщества и заложило фундамент для расширения экосистемы
4. Ключевые промежуточные релизы
- Go 1.1 (13 мая 2013)
- Оптимизации компиляции и улучшения runtime
- Go 1.5 (19 августа 2015)
- Полный перенос компилятора и инструментов на Go (убрана зависимость от C)
- Существенно улучшен сборщик мусора
- Go 1.6 (17 февраля 2016)
- Ускорение стандартной библиотеки и улучшенные средства отладки
5. Gopher — талисман и бренд
- 2009: дизайнер Рене Френч создаёт милого Gopher-грызуна
- Ноябрь 2016: выпуск фирменных шрифтов Go и Go Mono
- Апрель 2018: обновлён логотип, подчёркивающий динамику и простоту
6. Система модулей (Go 1.11–1.13)
- Go 1.11 (август 2018): официальная поддержка модулей для управления зависимостями
- Go 1.13 (середина 2019): модули становятся режимом по умолчанию, заменяя устаревший GOPATH
7. Появление обобщённостей (generics) в Go 1.18
- 15 марта 2022
- Введение Generics — долгожданной возможности писать типобезопасный и переиспользуемый код
- Встроенные инструменты для фуззинга
- Новый режим workspace для одновременной работы над несколькими модулями
8. Современное состояние (Go 1.24 и далее)
- Апрель 2025: выход Go 1.24 с новыми оптимизациями компилятора, улучшениями runtime и расширенными инструментами профилирования
- Применение: Docker, Kubernetes, микросервисные архитектуры, высоконагруженные системы
- Сообщество: десятки тысяч публикаций, конференций GopherCon по всему миру, активная разработка экосистемы
> Go прошёл путь от внутреннего эксперимента Google до одного из самых популярных языков для инфраструктурного и высокопроизводительного ПО. Его главные преимущества — лаконичность, надёжность и встроенный параллелизм — делают Go незаменимым инструментом в эпоху многопроцессорных систем.
https://youtube.com/shorts/-lkVgKwrPM4?feature=share
Please open Telegram to view this post
VIEW IN TELEGRAM
С этим вашим Kubernetes отладка превратилась в квест на выживание!
Часами гребёшься в логах, метрики пляшут как попало, а деплой через Helmfile — вообще отдельный вид искусства.
Чтобы K8s помогал, а не топил в рутине, нужно понять, как он работает под капотом. Иначе — вечные страдания 🥲
➡️ Приходи на курс «Kubernetes для разработчиков» от Слёрма.
Там ты:
👉 Научишься нормально дебажить свои приложения прямо в Кубе
👉 Разберёшься с логами и метриками
👉 Подружишься с Helm’ом
👉 Наконец заведёшь CI/CD как надо
То есть получишь скиллы, чтобы работать с K8s в кайф.
📅 Старт — 26 мая
🔗 Запрыгивай на борт курса «Kubernetes для разработчиков» — пока есть места!
Реклама ООО «Слёрм» ИНН 3652901451
Часами гребёшься в логах, метрики пляшут как попало, а деплой через Helmfile — вообще отдельный вид искусства.
Чтобы K8s помогал, а не топил в рутине, нужно понять, как он работает под капотом. Иначе — вечные страдания 🥲
➡️ Приходи на курс «Kubernetes для разработчиков» от Слёрма.
Там ты:
👉 Научишься нормально дебажить свои приложения прямо в Кубе
👉 Разберёшься с логами и метриками
👉 Подружишься с Helm’ом
👉 Наконец заведёшь CI/CD как надо
То есть получишь скиллы, чтобы работать с K8s в кайф.
📅 Старт — 26 мая
🔗 Запрыгивай на борт курса «Kubernetes для разработчиков» — пока есть места!
Реклама ООО «Слёрм» ИНН 3652901451
🚀 Go-Json-Rest — минималистичный фреймворк для JSON API на Go. Этот проект предлагает необычно простой способ создания RESTful API без лишней сложности.
В отличие от тяжёлых фреймворков, он работает как тонкая прослойка над стандартным net/http, добавляя лишь необходимое. Также инструмент имеет архитектуру с middleware-стеком, с помощью которой можно гибко добавлять функциональность вроде CORS или авторизации, сохраняя минимализм кода.
🤖 GitHub
@golang_interview
В отличие от тяжёлых фреймворков, он работает как тонкая прослойка над стандартным net/http, добавляя лишь необходимое. Также инструмент имеет архитектуру с middleware-стеком, с помощью которой можно гибко добавлять функциональность вроде CORS или авторизации, сохраняя минимализм кода.
🤖 GitHub
@golang_interview
🐿️ Gin-Gonic Starter — готовый шаблон для API на Golang. Этот проект демонстрирует полноценное бэкенд-приложение на Go с фреймворком Gin. В отличие от минималистичных примеров, здесь продуманная структура с разделением на модели, валидаторы, middleware и сериализаторы.
Инструменот будет удобен для изучения реальных паттернов: например, как выносить бизнес-логику в отдельные слои или работать с GORM. Тесты и CI уже настроены, а в TODO интересные планы вроде добавления ProtoBuf.
🤖 GitHub
@golang_interview
Инструменот будет удобен для изучения реальных паттернов: например, как выносить бизнес-логику в отдельные слои или работать с GORM. Тесты и CI уже настроены, а в TODO интересные планы вроде добавления ProtoBuf.
🤖 GitHub
@golang_interview
💻Как работать с каналами в Go и сделать ваш код конкурентным?
🔥На открытом уроке «Использование каналов в Go на практике» от OTUS вы погрузитесь в одну из самых мощных особенностей языка Golang. Эти инструменты позволяют эффективно управлять параллельными процессами — ключ к созданию высокопроизводительных приложений.
❗️Что вас ждёт:
— Обзор теории: как работают каналы в Go и зачем они нужны.
— Практические примеры применения каналов в реальных задачах.
— Разбор частых ошибок и подводных камней при работе с каналами.
📗Урок пройдет в преддверии старта курса «Golang Developer. Professional», и все участники получат скидку на обучение.
➡️Встречаемся 14 мая в 20:00 МСК, регистрация открыта: https://otus.pw/ZCOv/?erid=2W5zFJdJ2s2
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🔥На открытом уроке «Использование каналов в Go на практике» от OTUS вы погрузитесь в одну из самых мощных особенностей языка Golang. Эти инструменты позволяют эффективно управлять параллельными процессами — ключ к созданию высокопроизводительных приложений.
❗️Что вас ждёт:
— Обзор теории: как работают каналы в Go и зачем они нужны.
— Практические примеры применения каналов в реальных задачах.
— Разбор частых ошибок и подводных камней при работе с каналами.
📗Урок пройдет в преддверии старта курса «Golang Developer. Professional», и все участники получат скидку на обучение.
➡️Встречаемся 14 мая в 20:00 МСК, регистрация открыта: https://otus.pw/ZCOv/?erid=2W5zFJdJ2s2
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Как составить резюме, чтобы попасть в Magnificent 7: анализ кейса
Недавно инженер поделился своим резюме, которое помогло ему получить предложение работы от одной из rjvgfybb Magnificent 7 (Apple, Microsoft, Google, Amazon, Meta, Nvidia, Tesla).
Magnificent 7 (в переводе — «Великолепная семёрка») — это современное неофициальное название семи крупнейших и самых влиятельных технологических компаний США, которые лидируют на фондовом рынке, в инновациях и в масштабе бизнеса.
Разберём, что сделало его резюме успешным и чему можно научиться.
📌 Главные выводы из резюме:
1. Фокус на достижениях, а не обязанностях.
Многие кандидаты в резюме просто перечисляют, *что они делали*, например:
- “Разрабатывал API”
- “Поддерживал базу данных”
- “Писал скрипты для автоматизации”
⚠️ Это описывает обязанности, но не показывает ценность или результат работы.
В успешном резюме инженер вместо этого написал, чего он достиг благодаря своей работе:
✅ “Разработал API, который сократил время обработки данных на 30%”
✅ “Оптимизировал запросы к базе данных, уменьшив среднее время ответа с 2 секунд до 0.5 секунд”
✅ “Автоматизировал процесс деплоя, снизив количество ошибок на 15%”
Такой подход показывает, как конкретно ваша работа помогла команде или бизнесу.
Работодатель видит результаты, которые вы приносите, а не просто описание того, что вы делали.
💡 Почему это важно?
Big Tech-компании ищут инженеров, которые:
- Умеют оценивать влияние своей работы
- Думают о метриках успеха
- Приносят измеримый результат
Если в резюме нет цифр, улучшений или влияния на процесс — работодатель сам должен это додумывать.
А успешное резюме снимает вопросы и сразу показывает: “Вот что я сделал, вот как я улучшил продукт/процесс/результат.”
2. Лаконичность и компактность.
✅ 1 страница
✅ Чёткая структура: “Опыт”, “Навыки”, “Образование”
✅ Без фото, графиков, цветных рамок — чистый текст
3. Цифры везде, где это возможно.
Любое достижение сопровождается конкретной метрикой: улучшение производительности, сокращение времени, рост количества пользователей.
Даже небольшие улучшения указаны численно.
4. Поддержка через проекты с открытым кодом.
Инженер приложил ссылку на GitHub с реальными проектами — это усилило доверие к нему Как с специалисту.
5. Навыки — только релевантные вакансии.
В разделе Skills нет «MS Word» или «PowerPoint».
Только языки, технологии, инструменты, которые нужны для позиции (Python, Kubernetes, CI/CD, etc.).
6. Интерншипы и стажировки — это опыт.
Каждый опыт, даже в рамках стажировки, описан с результатами.
Вакансии в топ-компаниях ценят любую практику в реальной команде.
---
🎯 Что важно для Big Tech:
✅ Результаты > Задачи.
✅ Цифры.
✅ 1 страница.
✅ GitHub/портфолио.
✅ Релевантные навыки.
---
🔥 Совет:
Ваше резюме — это реклама вас как продукта.
Покажите пользу, которую вы можете принести, а не просто список обязанностей.
➡️ Статья
Недавно инженер поделился своим резюме, которое помогло ему получить предложение работы от одной из rjvgfybb Magnificent 7 (Apple, Microsoft, Google, Amazon, Meta, Nvidia, Tesla).
Magnificent 7 (в переводе — «Великолепная семёрка») — это современное неофициальное название семи крупнейших и самых влиятельных технологических компаний США, которые лидируют на фондовом рынке, в инновациях и в масштабе бизнеса.
Разберём, что сделало его резюме успешным и чему можно научиться.
📌 Главные выводы из резюме:
1. Фокус на достижениях, а не обязанностях.
Многие кандидаты в резюме просто перечисляют, *что они делали*, например:
- “Разрабатывал API”
- “Поддерживал базу данных”
- “Писал скрипты для автоматизации”
⚠️ Это описывает обязанности, но не показывает ценность или результат работы.
В успешном резюме инженер вместо этого написал, чего он достиг благодаря своей работе:
✅ “Разработал API, который сократил время обработки данных на 30%”
✅ “Оптимизировал запросы к базе данных, уменьшив среднее время ответа с 2 секунд до 0.5 секунд”
✅ “Автоматизировал процесс деплоя, снизив количество ошибок на 15%”
Такой подход показывает, как конкретно ваша работа помогла команде или бизнесу.
Работодатель видит результаты, которые вы приносите, а не просто описание того, что вы делали.
💡 Почему это важно?
Big Tech-компании ищут инженеров, которые:
- Умеют оценивать влияние своей работы
- Думают о метриках успеха
- Приносят измеримый результат
Если в резюме нет цифр, улучшений или влияния на процесс — работодатель сам должен это додумывать.
А успешное резюме снимает вопросы и сразу показывает: “Вот что я сделал, вот как я улучшил продукт/процесс/результат.”
2. Лаконичность и компактность.
✅ 1 страница
✅ Чёткая структура: “Опыт”, “Навыки”, “Образование”
✅ Без фото, графиков, цветных рамок — чистый текст
3. Цифры везде, где это возможно.
Любое достижение сопровождается конкретной метрикой: улучшение производительности, сокращение времени, рост количества пользователей.
Даже небольшие улучшения указаны численно.
4. Поддержка через проекты с открытым кодом.
Инженер приложил ссылку на GitHub с реальными проектами — это усилило доверие к нему Как с специалисту.
5. Навыки — только релевантные вакансии.
В разделе Skills нет «MS Word» или «PowerPoint».
Только языки, технологии, инструменты, которые нужны для позиции (Python, Kubernetes, CI/CD, etc.).
6. Интерншипы и стажировки — это опыт.
Каждый опыт, даже в рамках стажировки, описан с результатами.
Вакансии в топ-компаниях ценят любую практику в реальной команде.
---
🎯 Что важно для Big Tech:
✅ Результаты > Задачи.
✅ Цифры.
✅ 1 страница.
✅ GitHub/портфолио.
✅ Релевантные навыки.
---
🔥 Совет:
Ваше резюме — это реклама вас как продукта.
Покажите пользу, которую вы можете принести, а не просто список обязанностей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Изучите секреты самых популярных open source key-value СУБД – Redis и Valkey
В высоко-нагруженных сервисах Redis — не просто кэш, а важная подсистема, на которой строится значимая часть бизнес-логики. От его стабильности, масштабируемости и отказоустойчивости зависит производительность всего сервиса. Valkey - это современный производительный форк Redis с открытым исходным кодом, поддерживаемый сообществом и рядом крупных компаний. Valkey набирает популярность, поддержан крупными облачными провайдерами, и вполне возможно потеснит или вовсе заменит Redis со временем. Наш курс — для тех, кто хочет держать свой стэк и знания актуальными и глубоко разбираться, как устроен Redis и Valkey.
🌐 В программе курса:
🤩 Как эффективно использовать базовые и продвинутые структуры данных: HyperLogLog, Bitmaps и Bisields, Streams, Geospatial-индексы, Bloom Filters
🤩 Как проектировать in-memory системы, которые не разваливаются под нагрузкой, что влияет на отказоустойчивость и как её добиться
🤩 Как работает репликация и кластеризация на практике (режимы Sentinel и Cluster)
🤩 Как встроить Redis/Valkey в реальный прод с учётом безопасности, интеграций и современных практик мониторинга.
🥸 Кто мы: R&D-центр Devhands. Автор курса — Константин Ратвин — преподаватель МФТИ на кафедре БИТ (совместно со СберТех), эксперт по распределённым системам и банковским ИТ, автор курсов по СУБД и инфраструктуре, спикер HighLoad++ и PGConf.
🗓 Старт курса: 9 июня, 6 недель обучения.
Изучить программу и записаться можно здесь.
Ждем вас!
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqwXctGc
В высоко-нагруженных сервисах Redis — не просто кэш, а важная подсистема, на которой строится значимая часть бизнес-логики. От его стабильности, масштабируемости и отказоустойчивости зависит производительность всего сервиса. Valkey - это современный производительный форк Redis с открытым исходным кодом, поддерживаемый сообществом и рядом крупных компаний. Valkey набирает популярность, поддержан крупными облачными провайдерами, и вполне возможно потеснит или вовсе заменит Redis со временем. Наш курс — для тех, кто хочет держать свой стэк и знания актуальными и глубоко разбираться, как устроен Redis и Valkey.
Изучить программу и записаться можно здесь.
Ждем вас!
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqwXctGc
Please open Telegram to view this post
VIEW IN TELEGRAM
🐿️ Gin-Swagger — автоматическая документация для Gin API. Этот инструмент генерирует OpenAPI-спецификацию прямо из аннотаций в коде — достаточно добавить специальные комментарии к обработчикам роутов.
После установки и запуска
🤖 GitHub
@golang_interview
После установки и запуска
swag init
в проекте появляется папка docs с готовой спецификацией. Достаточно подключить роут /swagger/*any
и интерактивная документация будет доступна через браузер. Особенно инструмент будет удобен для проектов, где API часто меняется: документация обновляется автоматически при изменении кода.🤖 GitHub
@golang_interview
⚙️ Option Pattern в Go: гибкая и читаемая настройка объектов
В статье Leapcell ["Option Pattern in Go: Advanced Parameter Handling"](https://dev.to/leapcell/option-pattern-in-go-advanced-parameter-handling-15hf) рассматривается эффективный способ управления параметрами функций и конструкторов в Go.:contentReference[oaicite:7]{index=7}
## 🧩 Проблема
:contentReference[oaicite:9]{index=9}:contentReference[oaicite:11]{index=11}
Недостатки:
- :contentReference[oaicite:13]{index=13}
- :contentReference[oaicite:16]{index=16}
- :contentReference[oaicite:19]{index=19}
- :contentReference[oaicite:22]{index=22}:contentReference[oaicite:24]{index=24}
## 💡 Решение: Option Pattern
:contentReference[oaicite:26]{index=26}:contentReference[oaicite:28]{index=28}
:contentReference[oaicite:30]{index=30}:contentReference[oaicite:32]{index=32}
Использование:
## 🛠️ Дополнительные возможности
- Валидация параметров:
- Группировка опций:
✅ Преимущества
- :contentReference[oaicite:34]{index=34}
- :contentReference[oaicite:37]{index=37}
- :contentReference[oaicite:40]{index=40}
- :contentReference[oaicite:43]{index=43}:contentReference[oaicite:45]{index=45}
:contentReference[oaicite:47]{index=47}:contentReference[oaicite:49]{index=49}
📌 Читать
В статье Leapcell ["Option Pattern in Go: Advanced Parameter Handling"](https://dev.to/leapcell/option-pattern-in-go-advanced-parameter-handling-15hf) рассматривается эффективный способ управления параметрами функций и конструкторов в Go.:contentReference[oaicite:7]{index=7}
## 🧩 Проблема
:contentReference[oaicite:9]{index=9}:contentReference[oaicite:11]{index=11}
func NewServer(addr string, port int, timeout time.Duration, maxConn int, protocol string) *Server {
// ...
}
Недостатки:
- :contentReference[oaicite:13]{index=13}
- :contentReference[oaicite:16]{index=16}
- :contentReference[oaicite:19]{index=19}
- :contentReference[oaicite:22]{index=22}:contentReference[oaicite:24]{index=24}
## 💡 Решение: Option Pattern
:contentReference[oaicite:26]{index=26}:contentReference[oaicite:28]{index=28}
type Server struct {
addr string
port int
timeout time.Duration
maxConn int
protocol string
}
type Option func(*Server)
func WithTimeout(t time.Duration) Option {
return func(s *Server) {
s.timeout = t
}
}
func WithMaxConn(max int) Option {
return func(s *Server) {
s.maxConn = max
}
}
:contentReference[oaicite:30]{index=30}:contentReference[oaicite:32]{index=32}
func NewServer(addr string, opts ...Option) *Server {
s := &Server{
addr: addr,
port: 8080,
timeout: 30 * time.Second,
maxConn: 100,
protocol: "tcp",
}
for _, opt := range opts {
opt(s)
}
return s
}
Использование:
server := NewServer("localhost",
WithTimeout(60*time.Second),
WithMaxConn(500),
)
## 🛠️ Дополнительные возможности
- Валидация параметров:
func WithPort(port int) Option {
return func(s *Server) {
if port < 0 || port > 65535 {
panic("invalid port number")
}
s.port = port
}
}
- Группировка опций:
type NetworkOptions struct {
Protocol string
Timeout time.Duration
}
func WithNetworkOptions(opts NetworkOptions) Option {
return func(s *Server) {
s.protocol = opts.Protocol
s.timeout = opts.Timeout
}
}
✅ Преимущества
- :contentReference[oaicite:34]{index=34}
- :contentReference[oaicite:37]{index=37}
- :contentReference[oaicite:40]{index=40}
- :contentReference[oaicite:43]{index=43}:contentReference[oaicite:45]{index=45}
:contentReference[oaicite:47]{index=47}:contentReference[oaicite:49]{index=49}
📌 Читать
Узнайте, что нового, что ожидается в будущем и как использовать Go для создания масштабируемых, безопасных и надёжных приложений — в том числе для задач генеративного ИИ.
https://io.google/2025/explore/pa-keynote-17
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
io.google
Google I/O 2025: What's new in Go
Don’t miss Google I/O, featuring product launches, innovations, and insights. Tune in for the live keynotes and sessions.
⚙️ Полный гид по GPU-экосистеме — без воды и маркетинга
Если ты путаешься в CUDA, OpenCL, SYCL и HIP — этот гайд от ENCCS расставит всё по полочкам. Это не просто обзор, а чёткое объяснение, как устроен мир GPU-программирования сегодня.
🧠 Что ты узнаешь:
🔹 Как и почему GPU радикально отличается от CPU
🔹 Из чего состоит стек GPU-технологий:
— CUDA и его аналоги (HIP, SYCL, OpenCL)
— Директивы: OpenMP, OpenACC
🔹 Какие языки и стандарты поддерживают какую архитектуру
🔹 NVIDIA, AMD, Intel — кто что умеет и чем отличается
🔹 Модели памяти, исполнения, и что влияет на производительность
📌 Гайд подходит для:
• Разработчиков HPC и научных расчётов
• Инженеров ML/AI, желающих копнуть глубже
• Всех, кто хочет разобраться в низкоуровневом GPU-стеке без маркетингового тумана
📖 Читать:
https://enccs.github.io/gpu-programming/2-gpu-ecosystem/
🔥 Один из самых понятных и системных разборов GPU-мира на сегодня.
#GPU #CUDA #OpenCL #HIP #SYCL #HPC #AI #HighPerformanceComputing
Если ты путаешься в CUDA, OpenCL, SYCL и HIP — этот гайд от ENCCS расставит всё по полочкам. Это не просто обзор, а чёткое объяснение, как устроен мир GPU-программирования сегодня.
🧠 Что ты узнаешь:
🔹 Как и почему GPU радикально отличается от CPU
🔹 Из чего состоит стек GPU-технологий:
— CUDA и его аналоги (HIP, SYCL, OpenCL)
— Директивы: OpenMP, OpenACC
🔹 Какие языки и стандарты поддерживают какую архитектуру
🔹 NVIDIA, AMD, Intel — кто что умеет и чем отличается
🔹 Модели памяти, исполнения, и что влияет на производительность
📌 Гайд подходит для:
• Разработчиков HPC и научных расчётов
• Инженеров ML/AI, желающих копнуть глубже
• Всех, кто хочет разобраться в низкоуровневом GPU-стеке без маркетингового тумана
📖 Читать:
https://enccs.github.io/gpu-programming/2-gpu-ecosystem/
🔥 Один из самых понятных и системных разборов GPU-мира на сегодня.
#GPU #CUDA #OpenCL #HIP #SYCL #HPC #AI #HighPerformanceComputing