Как стать автором
Обновить
94.15

Go *

Компилируемый, многопоточный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Учимся работать с Kubernetes через запуск приложения

Время на прочтение8 мин
Количество просмотров2.2K

Вместе с Павлом Агалецким, ведущим разработчиком PaaS в Авито, изучим команды утилиты kubectl в Kubernetes, попробуем запустить два приложения и познакомимся с консольным дашбордом k9s.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии1

Новости

Об одном использовании gRPC: HTTP-прокси pog-server

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.6K

В наше время программисту приходится использовать прокси-сервера. Я пользовался одним, пока не потребовался доступ к ChatGPT: так у меня стало 2 прокси-сервера.

Затем мне потребовался Terraform. Он заработал, однако вместе с этим я делал запросы к Google API, и тот забраковал прокси-сервер. Так мне пришлось балансировать, когда и какой прокси-сервер использовать.

Так появилась задача найти такой кристально чистый IP, чтобы через него были доступны сервисы выше и не только.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Краткий навигатор по собеседованию Senior PHP/GO Backend

Время на прочтение29 мин
Количество просмотров4.9K

Ищете работу backend разработчика и хотите быть на высоте на собеседовании?

Подготовка к вопросам для backend разработчика на PHP и Go может оказаться непростой задачей. В этой статье мы разберем некоторые вопросы для Senior Backend разработчика, которые помогут вам пройти собеседование и произвести впечатление на потенциального работодателя.

Почему Важно Готовиться к Вопросам для Backend Разработчика?

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

Читать далее
Всего голосов 13: ↑10 и ↓3+8
Комментарии9

Потрясающе быстрые теневые стеки для Go

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.3K

Программные теневые стеки могут обеспечить до 8 раз более быструю трассировку стека в Go рантайме по сравнению с раскруткой указателя фрейма, которое было реализовано в go1.21. Это не означает, что данная идея должна сразу же вырваться из лаборатории, но она предлагает интересный взгляд на потенциальное будущее трассировки стека с аппаратным ускорением через теневые стеки.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии2

Кот, меняющий строки

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров4.6K

Первая и пока единственная сказка из серии cказкок для инженеров-программистов младшего уровня .

Эта статья была опубликована на моём личном блоге. Эта статья практически полностью её повторяет, лишь отредактирована под Хабр (частично).

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

Редактор Хабра подсказывает, что на чтение статьи у вас уйдёт около 21 минуты. Спешу обрадовать, это не так. Хорошо бы запастись как минимум часом.

Читать далее
Всего голосов 14: ↑13 и ↓1+14
Комментарии6

Получение информации с LeetCode о пользователе на Golang

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6K

В данной статье будет рассмотрено, как можно написать программу на Golang для получения информации о пользователе с помощью API LeetCode. Для разработки будет использоваться библиотека graphql на Golang, чтобы отправить запросы к API LeetCode и получить необходимые данные о пользователе. Для простоты взаимодействия с пользователями будет использован Telegram API. Стоит добавить, что для Телеграм бота не нужно покупать отдельный хостинг, можно все сделать локально, нужно только доступ к интернету.

Продолжить
Всего голосов 6: ↑5 и ↓1+4
Комментарии6

AOP в Golang: как рефлексировать, и почему вам не стоит этого делать

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.2K

Я java-программист по профессии и алкоголик go-developer по зову души. И вот в один прекрасный день я подумал о том, что раз уж в Go есть пакет reflect, то должны быть и способы АОП, прямо как в java. Если вкратце, я захотел генерировать обертки для функций в рантайме, позволяя красиво оборачивать логи, мониторинги, трейсинги, и прочие довольно однотипные штуки, по аналогии с тем, как я проделывал это в java.

Если вам стало интересно, что у меня из этого вышло, добро пожаловать под кат!

Читать далее
Всего голосов 8: ↑7 и ↓1+10
Комментарии9

Как я написал для своей команды бот-напоминалку на Golang и втрое сократил время на ревью задач

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров5K

Привет, Хабр! На связи Кирилл Веркин. Вообще, я занимаю в СберМаркете должность Senior QA, но ради большей производительности команды стал немного кодером.

Эта статья может быть интересна тем, кто замечает, что задачи в команде часто теряются, и хочет автоматизировать процесс напоминалок. Я делюсь кодом, поясняя ключевые моменты для таких же новичков в Go. Мой код написан для сочетания GitLab, Jira и Mattermost (корпоративный мессенджер, которым мы пользуемся в СберМаркете), но подобное решение можно реализовать и с другими сервисами.

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии21

Оптимизация Go: как повысить скорость и эффективность кода

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.9K

Привет, Хабр! Меня зовут Макс, я Go-разработчик в компании SimbirSoft. Язык Go (Golang) стремительно набирает популярность, он всё чаще внедряется в существующие программные решения, а также встречается в стеке новых проектов. Высокая производительность и скорость работы – его главные преимущества, поэтому для реализации бизнес-задач он подходит как нельзя кстати. Go легко поддерживается и отлично годится для создания MVP, из-за чего востребованность в нём растёт.

Но чтобы этот язык программирования был действительно производительным, разработчикам необходимо учитывать некоторые тонкости работы с ним. Иначе ваше приложение станет таким же медленным, как айтишник без чашки кофе :) В этой статье мы с вами на примерах разберём часто возникающие ситуации при работе с Go, а также рассмотрим приёмы, которые позволят повысить производительность кода. Надеюсь, разработчики уровня джуниор и мидл смогут почерпнуть для себя что-то полезное.

Мы начинаем!

Go ⏩
Всего голосов 10: ↑9 и ↓1+8
Комментарии8

Откажитесь уже наконец от gin, echo и <иной ваш фреймворк>

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7.3K

Введение: Пересмотр Традиций в Мире Go

В мире разработки на Go выбор фреймворка часто превращается в лояльность, сопоставимую с выбором между Apple и Android. Фреймворки вроде Gin, Echo и Beego долгие годы были верными спутниками программистов, помогая быстро развертывать проекты и достигать первых успехов. Они предлагали удобные инструменты и привычные шаблоны работы, но со временем становится очевидным, что у каждого свой «язык». Это создаёт трудности при переходе между ними или интеграции с другими системами.

Ну что же, давайте разберемся
Всего голосов 17: ↑13 и ↓4+11
Комментарии9

Go + Minio: как написать простой сервер для взаимодействия с файлами

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров5.2K

Добрейшего! Недавно мой друг решил хранить картинки продуктов на сервере, в отдельной папочке, выдав ей публичный доступ. Что ж, эту статью я пишу чтобы рассказать другу плюсы и минусы, а так же показать как можно делать иначе.

Если вы только изучаете go, начинаете писать сервера, то обязательно посмотрите эту статью - для бекендера уметь работать с s3 хранилищем так же важно, как и уметь работать с реляционной / нереляционной базой данных и с key-value базой - это основа основ.

Читать далее
Всего голосов 11: ↑1 и ↓10-9
Комментарии10

Интересный пример кода на Go и зашоренность мышления

Время на прочтение8 мин
Количество просмотров2.8K

История про интересный пример кода на Go и то, что иногда для понимания происходящего в коде полезно смотреть на него под другим углом.

Читать далее
Всего голосов 6: ↑6 и ↓0+8
Комментарии7

Ужасно подробные ошибки в API: пишем на Go инструмент для работы с ними

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.5K

Привет, Хабр! Меня зовут Александр Лырчиков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. СХД — сложная система, и, если при работе произошла ошибка, она должна своевременно и понятно сообщать пользователю об этом. В большинстве веб-сервисов для этого используют баннер с надписью «Что-то пошло не так», но такой способ уведомления нам не подходит.

Мы столкнулись с проблемой, когда переданных сообщений и HTTP-кодов уже не хватает. Поэтому разработали собственный инструмент для обработки ошибок Terror (TATLIN + error). В результате работа с кодом стала проще, мы получили красивый API, а пользователи — понятное описание ошибки и локализацию текста на разные языки. В этой статье расскажу, как мы создавали Terror, чтобы вы смогли повторить решение.

Читать статью
Всего голосов 8: ↑8 и ↓0+10
Комментарии0

Ближайшие события

Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

С Python на Go и обратно: мой опыт

Время на прочтение9 мин
Количество просмотров12K

Привет! Меня зовут Денис, я ведущий Golang-разработчик в МТС Диджитал. Еще год назад я работал экспертом по запуску новых сервисов и услуг в Корпоративном центре МТС и параллельно заканчивал курс «Продвинутый Go‑разработчик» от Практикума.

В этой статье я расскажу, как начал программировать на Python и зачем мне понадобился Go, как и чему я учился и почему теперь посматриваю на Rust.  

Go читать!
Всего голосов 26: ↑12 и ↓14+1
Комментарии17

Go напишем шахматный сервер? Часть вторая — структуры, интерфейсы и методы

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.1K

В предыдущей части были сформулированы общие для всех фигур свойства и основные алгоритмы, которые позволят нам анализировать ситуацию на доске. Вот только как всё это реализовать в коде?

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии14

Structured concurrency в языке Go

Время на прочтение5 мин
Количество просмотров3.6K

Горутины виснут непонятно почему, случайная запись в закрытый канал вызывает panic, нормально протестировать приложение вообще невозможно.


Наверняка многие из вас сталкивались с такой проблемой: синтаксис языка Go вроде бы очень простой, можно сказать примитивный, да и горутины создаются элементарно, но при этом написать мало-мальски серьёзную программу, которая конкурентно что-то делает, внезапно оказывается не так-то просто.


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

Читай или страдай
Всего голосов 16: ↑13 и ↓3+13
Комментарии17

Рецепт приготовления непрерывного профайлера в 2к24

Время на прочтение13 мин
Количество просмотров2K

Всем привет! Меня зовут Газимагомед, я занимаюсь разработкой внутреннего распределённого профайлера Vision в Ozon. В этой статье я раскрою понятие профиля, расскажу о том, что такое распределённый профайлинг, чем отличается автоматический сбор профилей от ручного. А также рассмотрим проблемы, возникающие при построении профайлера. Что ж, усаживайтесь поудобнее, мы начинаем.

Читать далее
Всего голосов 65: ↑65 и ↓0+67
Комментарии5

Три оттенка Kubernetes Operator, или чем слушает Prometheus

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров2.3K

Это ещё не туториал, но относительно подробный гайд о том, как компоненты Операторов взаимодействуют с Kubernetes API на уровне кода (Golang), чтобы реализовать заложенную в них логику для автоматизации вполне определённых практических задач. И да, всем известно, максимальный уровень автоматизации работы в Кубернетес ограничен лишь желанием самих разработчиков избавиться от рутины в близкой для них предметной области, потому я разделил текст на три части, чтобы вы могли без промедления промотать к наиболее актуальной, в которой узреете нечто достойное вашего внимания:

1. Кастомные ресурсы - мониторы Прометеус-оператора
2. Информеры и контроллеры
3. Сайдкар-Инжекторы с помощью аннотаций и вебхуков

Читать далее
Всего голосов 5: ↑3 и ↓2+2
Комментарии0

Generic Concurrency в Go

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров4.2K

Привет, гоферы!

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

Читать далее
Всего голосов 15: ↑14 и ↓1+15
Комментарии1

Protobuf и buf: блеск, нищета и импортозамещение

Время на прочтение11 мин
Количество просмотров4.7K

Если для компиляции proto-файлов вы всё ещё используете protoc, самое время перестать и перейти на buf. Разберём, как это сделать и почему это необходимо. Также рассмотрим проблемы доступа к buf.build.

Меня зовут Эдгар Сипки, я Go-разработчик в Ozon Fintech. buf — мощная утилита для линтинга протофайлов, проверки обратной совместимости API, генерации кода и валидации запросов. Однако, из-за санкций она недоступна в России. Поэтому я расскажу, как мы разрабатывали собственное решение в рамках импортозамещения.

Читать далее
Всего голосов 18: ↑16 и ↓2+16
Комментарии11
1
23 ...

Вклад авторов

Работа

Go разработчик
128 вакансий