Как стать автором
Обновить
79.73
Рейтинг

Go *

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

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

Парсинг XML в Golang

XML *Go *
Tutorial

Актуальность XML в 2022 году была бы под вопросом, но все еще остается много legacy систем, которые могут предоставлять данные в этом формате, поэтому нам приходится с ним работать. XML популярен в travel индустрии. Например, GDS (международные системы бронирования, более подробно можно почитать в википедии) или информационная система Darwin ассоциации железнодорожных транспортных компаний Великобритании активно используют его. Поэтому, я надеюсь, что эта статья будет кому-то полезна. В ней рассмотрена пара подходов к парсингу xml в Golang: обычный и потоковый, пользовательский парсинг поля и работа с различными кодировками. Мы будем использовать пакет encoding/xml из стандартной библиотеки. Если вы уже работали c encoding/json, то будет много похожего, но некоторые различия все же есть.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Просмотры 1.2K
Комментарии 0

Новости

Введение в DDD: когда микросервисов на Go недостаточно

Блог компании Southbridge IT-инфраструктура *Проектирование и рефакторинг *Go *Микросервисы *

Микросервисная архитектура помогает строить гибкие и масштабируемые приложения. Однако в случае бессистемного использования этого подхода вы довольно быстро столкнётесь с разочарованием и неконтролируемыми сложностями. Избежать проблем помогает Domain-Driven Design (DDD) — предметно-ориентированное проектирование. В статье расскажем о принципах его работы, а также разберём основы стратегических паттернов в Golang. 

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 1.7K
Комментарии 0

Domain Fronting. версия 1.3

Информационная безопасность *Криптография *Сетевые технологии *Go *
Tutorial

В данной статье представляется новый взгляд на старую и знакомую заядлым пентестерам тему как DomainFronting. Тем более, что после недавних нововведений в протокол TLS v1.3 от компании Cloudflare эта избитая тема заиграла новыми красками.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 1.7K
Комментарии 2

VK Cup: место встречи чемпионов

Блог компании VK Спортивное программирование *JavaScript *Разработка мобильных приложений *Go *

Привет, Хабр! Я к вам с хорошими новостями: 28 ноября стартовала регистрация на чемпионат VK Cup! В этом году он посвящён только разработке (но не расстраивайтесь — дизайнерский трек мы перенесли в программу чемпионата VK Design Cup).

Классическое олимпиадное программирование пройдёт на площадке Codeforces — регистрируйтесь. К остальным трекам – мобильной разработке, машинному обучению и разработке на Go и JavaScript можно присоединиться на платформе All Cups.

Все полезные подробности о чемпионате — уже восьмом — читайте под катом.

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

Рассматриваем под лупой отладчик Delve для Go-разработчиков

Блог компании Ozon Tech Отладка *Go *

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

Сегодня есть множество IDE, поддерживающих работу с Go и позволяющих отлаживать приложения. На текущий момент для Go представлены два отладчика: GDB (но он не поддерживает многие фичи языка, например Go-рутины) и Delve. Многие IDE используют последний как дефолтный отладчик. И в этой статье я расскажу о возможностях Delve: о том, что умеет сам отладчик, а не что нам предоставляет IDE.

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Просмотры 2.8K
Комментарии 0

Полезные ресурсы для погружения в Go: выбор сотрудников Selectel

Блог компании Selectel Программирование *Go *Читальный зал

Попросили коллег порекомендовать ресурсы — подкасты, ютуб-каналы, книги, блоги и GitHub-репозитории — для изучения языка программирования Go. Сохраняйте подборку в закладки: пригодится и начинающим, и опытным специалистам. А также делитесь своими вариантами в комментариях.
Читать дальше →
Всего голосов 41: ↑40 и ↓1 +39
Просмотры 7.6K
Комментарии 4

Как сделать трек на ИТ-конференции в меняющихся условиях и при этом не упустить работу: опыт организатора

Блог компании red_mad_robot Go *

В октябре этого года состоялся очередной DevFest Omsk 2022 — конференция «от программистов для программистов». Он впервые прошёл в онлайн-формате, а backend-разработчик red_mad_robot Илья Горкун организовал на нём первый трек по Golang. О том, как ему это удалось, с какими сложностями пришлось столкнуться и на что стоит обратить внимание, если вы тоже планируете делать конференции, — читайте в материале Ильи.

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Просмотры 390
Комментарии 4

Децентрализируй это. Создание сетей хранения без единого центра на Go

Блог компании OTUS Децентрализованные сети *Go *Распределённые системы *

Сеть Интернет по своей архитектуре допускает возможность прямого обмена трафиком между любыми узлами, но все же в большинстве сценариев используется асимметричный вариант использования с относительно небольшим количеством узлов, отдающих содержание (объединенных в CDN, кэширующие сети (например, Google Global Cache), либо отдельные зеркала, расположенные на высокоскоростных каналах). При многих достоинствах такой подход не лишен и серъезных недостатков, прежде всего из-за значительной разбалансированности сети и перегрузке некоторых каналов связи при относительно небольшом трафике на других.

Решением этой проблемы могло стать использование сетей, основанных на прямом обмене трафиком (peer-to-peer или p2p), но создание полностью децентрализованной сети представляет значительную сложность, поэтому во многих случаях все же оставляют некоторые общие реестры, хранящие информацию об узлах-носителях определенного содержания (так, например, работают торрент-трекеры) и на которых регистрируются клиенты сети при подключении. Основным недостатком такого псевдодентрализованного подхода является возможность относительно простой остановки функционирования сети через блокировку соответствующих трекеров. Альтернативой могут быть полностью децентрализованные сети и мы рассмотрим в этой статье основные подходы к их реализации на примере свободного протокола и сети Peernet.

Читать далее
Всего голосов 13: ↑6 и ↓7 -1
Просмотры 1.7K
Комментарии 1

Как я организовал автоматический деплой для своих пет-проектов

Open source *Программирование *Go *GitHub *

Всем привет) Это мой первый пост на Хабре, и сегодня я расскажу про небольшой pet project (git-trigger), который я недавно написал для сборки своих проектов на сервере. На данный момент я использую его в нескольких своих проектах для автоматической сборки и пока не было замечено никаких косяков.

Читать далее
Всего голосов 27: ↑17 и ↓10 +7
Просмотры 8.8K
Комментарии 19

Как сделать программу на Go быстрее на 42%, изменив один символ

Клиентская оптимизация *Компиляторы *Go *
Перевод

Если вы прочитали заголовок и подумали «ну, ты, наверно, сделал сначала что-то глупое», то вы правы! Но что такое программирование, как не упражнения в глупых ошибках? Поиск глупых ошибок — это и есть самое большое удовольствие!

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

Что делает программа?


codeowners — это программа на Go, выводящая владельцев каждого из файлов в репозитории согласно набору правил, указанному в файле GitHub CODEOWNERS. Правило может гласить, что всеми файлами с расширением .go владеет команда @gophers, или что всеми файлами в папке docs/ владеет команда @docs.
Читать дальше →
Всего голосов 65: ↑62 и ↓3 +59
Просмотры 26K
Комментарии 46

Организация стажировки от идеи до найма

Блог компании Constanta Программирование *Go *Управление персоналом *Карьера в IT-индустрии
Tutorial

Привет! Мы работаем в Константе и занимаемся разработкой различных сервисов и систем, связанных с беттингом. Один из наших продуктов – платежный шлюз, он интегрируется с платежными системами и позволяет клиентам букмекера вносить и выводить деньги из личного кабинета. 

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

Спойлер: в итоге стажировка была организована силами 2 HR и 3 человек из команды разработки. Помимо оплаты нашего времени и выплат стажерам, не было потрачено ни рубля дополнительно.

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 1.1K
Комментарии 0

V lang. Обзор и сравнение с Golang

Программирование *Go *

Всегда приятно видеть, когда появляются новые языки программирования, хочу представить вашему вниманию язык V, его автор, конечно, же не я)))

Читать далее о V lang
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 4.4K
Комментарии 8

Простой mp3-плеер с графическим интерфейсом на Go

Блог компании OTUS GTK+ *Go *Разработка под MacOS *Разработка под Linux *

Мы продолжаем рассматривать разные платформенные применения Go (ранее мы посмотрели как использовать Go для микроконтроллеров, веб-приложений, разработки API, создания мобильных приложений) и сегодня поговорим об использовании Go для создания приложений для настольных компьютеров на примере реализации несложного mp3-плеера с поддержкой графического интерфейса. Мы будем использовать связывание с GTK для реализации интерфейса, библиотеки декодирования mp3 и взаимодействия с аудиосистемой (для Windows, Linux и MacOS).

Читать далее
Всего голосов 20: ↑17 и ↓3 +14
Просмотры 5.6K
Комментарии 4

Истории

Пишем обёртку для API Токийской фондовой биржи на Golang

Блог компании RUVDS.com API *Go *Финансы в IT
Перевод

Целевым REST API будет jquants-api, описанный в предыдущей статье.

Я решил реализовать обёртку на Golang, что оказалось чрезвычайно быстро и удобно. В итоге я выполнил эту задачу за один вечер, а получившуюся Golang-обёртку с базовыми функциями загрузил на GitHub.

В этой статье я вкратце расскажу о процессе написания API и моих шагах по реализации проекта.
Читать дальше →
Всего голосов 35: ↑33 и ↓2 +31
Просмотры 3.9K
Комментарии 6

Перевод RabbitMQ «Hello World» для Golang

Go *Разработка под Linux *
Из песочницы
Перевод

Это перевод официальной документации RabbitMQ.

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

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

Теория квантовых состояний: из жизни в код

Совершенный код *Assembler *Разработка игр *Go *R *
Recovery mode
Из песочницы

Расскажу вам о моём вИдении правильного программирования любых систем.

Кратко о себе: программист самоучка, примерно в 1992 году начинал с ассемблера, крякая через HIEW (Огромное СПАСИБО автору этого замечательного дизассемблера) всякие DOS-игрухи-проги, и прогая всё, что в голову взбредёт - от игр до вирей (домашних и добрых).

Подробнее о "Теории квантовых состояний" >
Всего голосов 28: ↑13 и ↓15 -2
Просмотры 2.4K
Комментарии 4

Наступая на грабли. Опыт написания Kubernetes Operator’а

Go *DevOps *Kubernetes *

Недавно мной, совместно с коллегой, был реализован оператор для Kubernetes’a - Vector Operator. (Вот тут описано как мы пришли к решению, что там нужен свой оператор для Логирования в Kubernetes).

В рамках данной статьи я опишу разные интересные Задачи/Проблемы с которыми мы столкнулись в процессе разработки и как их решили.

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

Фронтенд на Go с использованием библиотеки RUI

Разработка веб-сайтов *Go *WebAssembly *

Изначально библиотека RUI разработана для создания клиент-серверных веб приложений на языке go, где вся обработка осуществляется на сервере, а браузер используется только как тонкий клиент.

Однако в последней версии библиотеки (0.10.0) была добавлена поддержка технологии WebAssembly. Теперь стало возможным объединить серверную и клиентскую часть в единый модуль исполняемый в браузере. При этом требуются минимальные изменения в уже существующем проекте использующем библиотеку RUI

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

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

Разработка мобильных приложений на Go

Блог компании OTUS Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Go *

Язык программирования Go стал настоящим открытием для разработчиков инструментов для системного администрирования и DevOps благодаря комбинации возможностей низкоуровневой разработки (и в этом он подобен C) и поддержке автоматической сборки мусора, исключению прямой работы с указателями, наличию конкуретной многозадачности (goroutines) и возможности компиляции непосредственно в исполняемый образ. Постепенно Go начал использоваться для других целей: создание веб-приложений, разработка для микроконтроллеров. Почему бы не использовать все его возможности для создания мобильных приложений? В статье мы обсудим некоторые подходы к разработке приложений на Go для мобильных устройств.

Читать далее
Всего голосов 22: ↑18 и ↓4 +14
Просмотры 7.7K
Комментарии 9

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

Работа

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