⚡️ Расширение границ в Go: от net.Dial до системных вызовов, AF_PACKET и молниеносного AF_XDP
Под катом — сравнительный анализ производительности отправки пакетов в Linux. Если вам нравятся сети, Go и бенчмаркинг, то однозначно понравится этот мини-ресёрч.
👉 Читать
Под катом — сравнительный анализ производительности отправки пакетов в Linux. Если вам нравятся сети, Go и бенчмаркинг, то однозначно понравится этот мини-ресёрч.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍4
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
🔟 10 суровых истин, которые должен знать каждый джун
Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!
👉 Читать статью
👉 Зеркало
Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!
👉 Читать статью
👉 Зеркало
🥱21👍9🎉5😁4
🚀 Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд
Популярный челлендж в сообществе Java-разработчиков, который вирусился в январе, потихоньку дошел из гоферов. И вопрос уже не столько в реализации, сколько в оптимизации.
Автор описывает девять решений на 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 минуты
Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.
Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.
👉 Ссылка на опрос 👈
Прохождение займёт примерно 4 минуты
👍11😁5
🏎 Улучшения трассировки выполнения в Go 1.22: низкие накладные расходы и масштабируемость
В одном из последних обновлений Go команда представила значительные улучшения в механизме трассировки выполнения, делая его более мощным и эффективным инструментом для разработчиков:
☑️ Низкие накладные расходы: благодаря оптимизации трассировок стека, временные затраты CPU на трассировки выполнения были сокращены до 1-2% для многих приложений, что делает трассировку более пригодной для постоянного использования.
☑️ Масштабируемость трассировок: переработка формата трассировок и их событий позволила снизить требования к памяти при анализе трассировок, решая проблему анализа больших объемов данных.
☑️ Flight recording: позволяет непрерывно вести трассировку и сохранять только самые последние данные трассировки, что идеально подходит для захвата событий, произошедших непосредственно перед важным инцидентом.
☑️ API для чтения трассировок: упрощает программный анализ трассировок, делая их более доступными для разработчиков.
В одном из последних обновлений Go команда представила значительные улучшения в механизме трассировки выполнения, делая его более мощным и эффективным инструментом для разработчиков:
☑️ Низкие накладные расходы: благодаря оптимизации трассировок стека, временные затраты CPU на трассировки выполнения были сокращены до 1-2% для многих приложений, что делает трассировку более пригодной для постоянного использования.
☑️ Масштабируемость трассировок: переработка формата трассировок и их событий позволила снизить требования к памяти при анализе трассировок, решая проблему анализа больших объемов данных.
☑️ Flight recording: позволяет непрерывно вести трассировку и сохранять только самые последние данные трассировки, что идеально подходит для захвата событий, произошедших непосредственно перед важным инцидентом.
☑️ API для чтения трассировок: упрощает программный анализ трассировок, делая их более доступными для разработчиков.
❤15🔥4👍3
Разраб предложил создать HTTP-статус имени Олега Тинькова (признан иноагентом Министерством юстиции РФ) под названием 267 Doubtful But Okay, который означает, что запрос имеет сомнительную семантику, но он принят и обработан. Код статуса 267 выбран по году рождения Олега (1967 год).
💬 Как вам идея?
🤔 — сомнительно, но окэй
👍 — давно пора
#холивар
💬 Как вам идея?
🤔 — сомнительно, но окэй
👍 — давно пора
#холивар
🤔338👍96🥱33😁18🌚4
Авторы Go-проекта Daytona поделились несколькими советами по созданию файла README, которые позволили добиться впечатляющих результатов: 4k звезд за первую неделю.
Вы узнаете, как создать впечатляющий заголовок, захватывающее содержание, соблюдать «гигиену» проекта и многое другое.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2
🤔 Могут ли адреса двух переменных быть одновременно равными и разными?
Код ниже определяет глобальную переменную
📌 Сравнение должно оцениваться как
Пример выводит:
Так что компилятор Go формально присваивает переменным нулевого размера адрес ради избежания введения специального случая переменных «без адреса». Компилятор может даже присвоить им один и тот же адрес, потому что для переменных нулевого размера не имеет значения, какой формальный адрес у них есть.
📌 Спецификация Go говорит:
#tip
Код ниже определяет глобальную переменную
a
и локальную переменную b
внутри main()
. Затем он выводит адреса обеих переменных и, наконец, сравнивает их.📌 Сравнение должно оцениваться как
true
, верно?var a struct{}
func main() {
var b struct{}
fmt.Printf("&a: %p\n", &a)
fmt.Printf("&b: %p\n", &b)
fmt.Println("&a == &b:", &a == &b)
}
Пример выводит:
&a: 0x58e360
&b: 0x58e360
&a == &b: false
a
и b
— это пустые структуры, которые имеют нулевой размер, следовательно, они не должны занимать ячейки памяти. Они вообще не должны иметь адрес. Так что сравнивать их адреса с самого начала не имеет смысла.Так что компилятор Go формально присваивает переменным нулевого размера адрес ради избежания введения специального случая переменных «без адреса». Компилятор может даже присвоить им один и тот же адрес, потому что для переменных нулевого размера не имеет значения, какой формальный адрес у них есть.
📌 Спецификация Go говорит:
Две различные переменные нулевого размера могут иметь одинаковый адрес в памяти
#tip
👍76🤔11❤3⚡2👾2
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
💪 Что не так с MVP: как создать конкурентоспособный продукт
Традиционная концепция MVP нуждается в пересмотре — авторы предлагают альтернативный подход, основанный на тесном взаимодействии с целевой аудиторией и непрерывных итерациях для создания действительно ценного продукта.
👉 Читать статью
👉 Зеркало
Традиционная концепция MVP нуждается в пересмотре — авторы предлагают альтернативный подход, основанный на тесном взаимодействии с целевой аудиторией и непрерывных итерациях для создания действительно ценного продукта.
👉 Читать статью
👉 Зеркало
👍5👾2🤔1
📌 К таким политикам относятся: Retry, Circuit Breaker, Rate Limiter, Timeout, Fallback, Hedge и Bulkhead.
fallback := fallback.WithResult(backupConnection)
circuitBreaker := circuitbreaker.WithDefaults[any]()
timeout := timeout.With[any](10*time.Second)
// Get with fallback, retries, circuit breaker, and timeout
failsafe.Get(Connect, fallback, retryPolicy, circuitBreaker, timeout)
👉 GitHub
👉 Сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
Failsafe-go
Retry
Failsafe-go website
👍28🔥4
🤔 Каким вы видите для себя идеальный собес?
Пример недушного собеса по мотивам статьи опытного интервьюера Олега Плотникова:
1️⃣ Вопрос про предыдущий опыт: в двух словах описать самый интересный (сложный) проект.
❓ В чем суть проекта? Размер команды? Роль? Основной вклад? Срок проекта? И т. д.
2️⃣ Типовая задача, с которой реально придется сталкиваться, но решаемая за 5-15 минут + несколько вопрос в глубину про понимание инструмента (языка, фреймворка).
📌 Три основных аспекта, по которым оценивается кандидат:
🔸 Харды и наличие релевантного опыта.
🔸 Коммуникация (софт скиллы). Умение общаться, быстро и структурировано объяснить суть вопроса.
🔸 Проактивность в обучении и страсть к делу.
📌 За каждый навык дается до трех баллов. Есть хоть один ноль — сразу до свидания.
🔸 0 — все плохо
🔸 1 — с пивом покатит
🔸 2 — хорошо
🔸 3 — прекрасно
💬 Что думаете?
#холивар
Пример недушного собеса по мотивам статьи опытного интервьюера Олега Плотникова:
1️⃣ Вопрос про предыдущий опыт: в двух словах описать самый интересный (сложный) проект.
❓ В чем суть проекта? Размер команды? Роль? Основной вклад? Срок проекта? И т. д.
2️⃣ Типовая задача, с которой реально придется сталкиваться, но решаемая за 5-15 минут + несколько вопрос в глубину про понимание инструмента (языка, фреймворка).
📌 Три основных аспекта, по которым оценивается кандидат:
🔸 Харды и наличие релевантного опыта.
🔸 Коммуникация (софт скиллы). Умение общаться, быстро и структурировано объяснить суть вопроса.
🔸 Проактивность в обучении и страсть к делу.
📌 За каждый навык дается до трех баллов. Есть хоть один ноль — сразу до свидания.
🔸 0 — все плохо
🔸 1 — с пивом покатит
🔸 2 — хорошо
🔸 3 — прекрасно
💬 Что думаете?
#холивар
👍15🥱9❤1🌚1
Автор Domain-Driven Design with Golang Matt Boyle объединил все источники, которые он считает полезными и стоящими, в одну статью.
Читайте подробнее, чтобы узнать о крутых книгах/блогах, видеокурсах/докладах на конференциях, подкастах и, самое главное, проектах для закрепления изученного.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Bytesizego
Learning Go in 2024; From Beginner to Senior
We all learn differently and at different paces. Finding content that is right for us is challenging. Below is my attempt to curate all the great content I have come across over the years into one place to hopefully help folks advance their Golang journey…
👍21🔥3🤔3❤1🥱1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📈 По просьбе подписчиков «Библиотеки программиста» мы провели опрос и выяснили, что у большинства айтишников зарплата в 2023 году выросла.
⚡️ Как выглядит доход среднего айтишника и какие факторы окажут влияние на динамику ИТ-зарплат в 2024 году — расскажем в статье на VC.
👉 Читать
P. S. Свои предложения для исследований пишите в комменты👇
⚡️ Как выглядит доход среднего айтишника и какие факторы окажут влияние на динамику ИТ-зарплат в 2024 году — расскажем в статье на VC.
👉 Читать
P. S. Свои предложения для исследований пишите в комменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🎉3
Ведущий разраб юнита Platform as a Service в Авито Павел Агалецкий рассказывает, как поднять маленький кластер Kubernetes на локальной машине с помощью общедоступных инструментов и задеплоить Hello World! на Go.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍3🔥1
💸👨💻 Тебе повезло, ты богатый айтишник
Как показали результаты нашего исследования, даже с профильным образованием найти первую работу в ИТ бывает нелегко. Большинству свитчеров первый оффер дается еще сложнее: огромный объем необходимых знаний и навыков нужно получить как можно быстрее.
Многие учатся (самостоятельно или на курсах) без отрыва от основной работы. Самые отчаянные войтивайтишники бросают работу и начинают учиться, живя на скромные сбережения. Герой этой истории, фронтендер Олег, начинал именно так. Под катом — его история.
👉 Читать статью
👉 Зеркало
Как показали результаты нашего исследования, даже с профильным образованием найти первую работу в ИТ бывает нелегко. Большинству свитчеров первый оффер дается еще сложнее: огромный объем необходимых знаний и навыков нужно получить как можно быстрее.
Многие учатся (самостоятельно или на курсах) без отрыва от основной работы. Самые отчаянные войтивайтишники бросают работу и начинают учиться, живя на скромные сбережения. Герой этой истории, фронтендер Олег, начинал именно так. Под катом — его история.
👉 Читать статью
👉 Зеркало
👍6❤1
🔹 Подкаст { между скобок }: «Владимир Балун, Вячеслав Горюнов, Виталий Лихачев: зачем переходить на Golang»
🔹 Открытое собеседование на Middle Go-разработчика от Дмитрия Дорофеева
🔹 Открытое собеседование на Junior Go разработчика от Александра Трапезникова
🔹 Открытое интервью на Middle Go-разработчика от Сергея Парамошкина
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤🔥5❤4
❓ 20+ вопросов, которые стоит задать на собеседовании в стартап
Узнайте, на что обратить внимание, чтобы найти стартап, который не только «выстрелит», но и даст вам возможность вырасти как специалисту.
👉 Читать статью
👉 Зеркало
Узнайте, на что обратить внимание, чтобы найти стартап, который не только «выстрелит», но и даст вам возможность вырасти как специалисту.
👉 Читать статью
👉 Зеркало
👍6
konf предлагает другой взгляд на то, как программы на Go могут читать конфигурацию, не привязываясь к конкретному источнику конфигурации.
📌 Основные возможности:
🔧
konf.Unmarshal
для чтения конфигурации в любой тип объекта.🔧
konf.OnChange
для регистрации колбэков при изменении конфигурации.🔧
konf.Explain
для понимания, откуда загружается конфигурация.🔧 Различные провайдеры для загрузки конфигурации из облаков (AWS, Azure и GCP).
🔧 Zero dependencies в core модуле, который поддерживает загрузку конфигурации из переменных окружения, флагов и встроенной файловой системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🤔3❤1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Будем максимально подробно рассказывать про все существующие нейросети-помощники, которые генерируют текст или код — с пошаговыми инструкциями, промтами, инструментами и лайфхаками.
И другие!
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍2❤1🔥1🤔1
🧼👩💻 Введение в Domain-Driven Design через разработку ToDo приложения на Go
Пополняемый гайд по разработке простого приложения на Go с использованием принципов DDD и чистой архитектуры.
📌 Чему вы научитесь:
☑️ Как применять DDD и чистую архитектуру в проектах на Go.
☑️ Практическому использованию структур и интерфейсов для организации кода и логики приложения.
☑️ Созданию эффективных тестов для проверки функциональности приложения.
Следите за обновлениями — автор планирует улучшить проект, используя BDD и Cucumber для тестов, внедрив новые методы хранения списка (inmem, db) и многое другое.
Пополняемый гайд по разработке простого приложения на Go с использованием принципов DDD и чистой архитектуры.
📌 Чему вы научитесь:
☑️ Как применять DDD и чистую архитектуру в проектах на Go.
☑️ Практическому использованию структур и интерфейсов для организации кода и логики приложения.
☑️ Созданию эффективных тестов для проверки функциональности приложения.
Следите за обновлениями — автор планирует улучшить проект, используя BDD и Cucumber для тестов, внедрив новые методы хранения списка (inmem, db) и многое другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
nesh.me
Clean Domain Driven Todo List in Go
Learning Golang, domain driven or clean architecture. This quick tutorial showcases how you can start building services by following a clean, domain driven solution. It uses Golang as the language of choice, but the ideas are transferrable to any coding language
🥱14🔥6🤩2👍1