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

Go *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Новости

Нарезаем массивы правильно в Go

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

В этой статья я расскажу об одной из базовых структур языка, некоторые особенности которой при первом знакомстве вгоняют в ступор. Речь пойдёт о срезах и о том, какие интересные “фичи” нам приносит их внутреннее устройство в языке. Но начнем мы издалека - с массивов.

Go →
Всего голосов 18: ↑14 и ↓4 +10
Просмотры 7.3K
Комментарии 12

Интерфейсы в Go — как красиво выстрелить себе в ногу

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

Вы когда-нибудь задумывались, что такое interface? Ну, то есть, не ключевое слово синтаксиса, а что это такое в рантайме? Как выглядит его проинстанцированный объект? А, главное, каким свойством обладает при сравнении с nil? Нет? Тогда устраивайтесь поудобнее, я сейчас вам всё расскажу.

Go →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 16K
Комментарии 5

profile-guided поиск по коду

Высокая производительность *Open source *Программирование *Go *Управление разработкой *

Если объединить структурный поиск по коду через gogrep и фильтрацию результатов через perf-heatmap, то мы получим profile-guided поиск по коду.


Данная комбинация позволяет находить все совпадения по шаблону поиска, а затем показывает только те результаты, что лежат на "горячем" пути исполнения.


Через perf-heatmap также можно аннотировать файл с учётом того, насколько строка исходного кода "горячая".


Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 1.5K
Комментарии 0

Вышла Beta Go 1.18 с дженериками. Подробности из блога Go под катом

Блог компании SkillFactory Open source *Программирование *Go *
Перевод

Официальный релиз Go 1.18 состоится только через пару месяцев. Это первый предварительный выпуск Go 1.18, чтобы вы могли попробовать его и сообщить о проблемах. Go 1.18 Beta 1 — это огромный объём работы всей команды разработчиков Go в Google и участников проекта Go по всему миру. Нам очень хочется узнать ваше мнение.

Читать далее
Всего голосов 31: ↑19 и ↓12 +7
Просмотры 6.5K
Комментарии 28

GoLand 2021.3: полная поддержка WSL, запуск gofmt при сохранении файла, Inline Function, удаленная разработка

Блог компании JetBrains Программирование *Go *

Привет, Хабр! 

Сегодня расскажем о свежем релизе GoLand.

Что нового: полная поддержка WSL, запуск gofmt при сохранении по умолчанию, рефакторинг Inline Function, удаленная разработка (Beta), поддержка gRPC в HTTP-клиенте, улучшения отладчика и многое другое!

Под катом подробный разбор новых возможностей с гифками. 

Скачать GoLand 2021.3 можно на сайте JetBrains или через приложение Toolbox App.

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

Пошаговая инструкция как создать NFT коллекцию на Golang + Ethereum (часть 2)

Go *Распределённые системы *Криптовалюты
Tutorial

Привет Хабр.

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

Потратив достаточно много времени на изучение существующих NFT проектов, я был свидетелем, как разработчики публикуют свои изображения для NFT коллекций в централизованные файловые системы, такие как AWS s3, что вызывало у меня некоторое недоумение. 

На мой субъективный взгляд, главный посыл NFT токенов, именно в том, что токен и его содержимое - никто и никогда не сможет изменить, и соответственно при разработке мы должны быть максимально абстрагирован от централизованных систем. Именно поэтому, публиковать все наши файлы, мы будем в децентрализованное хранилище - IPFS.

Читать далее
Всего голосов 11: ↑5 и ↓6 -1
Просмотры 7.9K
Комментарии 3

Пошаговая инструкция как создать NFT коллекцию на Golang + Ethereum (часть 1)

Go *Распределённые системы *Криптовалюты
Из песочницы

Привет Хабр.

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

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

Читать далее
Всего голосов 11: ↑6 и ↓5 +1
Просмотры 41K
Комментарии 6

Go после Python: как я учу новый язык

Блог компании Авито Go *Учебный процесс в IT

Привет, Хабр! Меня зовут Максим Чижов, я бэкенд-инженер. Несколько месяцев назад мне понадобилось в довесок к основному языку Python выучить также Go. Расскажу, с какими проблемами я столкнулся в процессе и как их решал, а также где я сейчас.

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

Использование Golang для разработки Node.js приложений (Node.js: In Go We Trust)

Высокая производительность *JavaScript *Node.JS *Go *WebAssembly *

Меня зовут Алексей Новохацкий, я – Software Engineer. Сейчас работаю над архитектурой высоконагруженных систем, провожу технические собеседования, воплощаю в жизнь собственные проекты.

Как известно, Node.js хорошо справляется с I/O intensive задачами. А вот для решения CPU bound мы имеем несколько вариантов – child processes/cluster, worker threads. Также есть возможность использовать другой язык программирования (C, C++, Rust, Golang) в качестве отдельного сервиса/микросервиса или через WebAssembly скрипты.

В данной обзорной статье будут описаны подходы к использованию Golang в разработке Node.js приложений для запуска некоторых CPU intensive задач (простой суммы чисел, последовательности Фибоначчи, а также для таких хеш-функций как md5 и sha256).

Какие у нас есть варианты?

1. Попытаться решить CPU bound задачи только с помощью Node.js

2. Создать отдельный сервис, написанный на Golang и "общаться" с нашим приложением с помощью запросов/брокера сообщений и т.д. (в данной статье будут использованы обычные http запросы)

3. Использовать Golang для создания wasm файла, что позволит использовать дополнительные методы в Node.js

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 3.7K
Комментарии 18

RPC — концепция

PHP *API *Go *

Свою первую апишку я написал лет 7-8 назад и это был первый блин. В целом этот блин прошел кучу испытаний и модернизаций и получилось, что то вполне вменяемое. Даже сейчас я понимаю, что это ядро актуально и его можно развивать дальше и оптимизировать к текущим реалиям (пока нет подходящего проекта).

Как можно догадаться это было Rpc. Наверно стоит начать с того, что я выделил ряд слоев (какие то можно опустить, какие то добавить).

Читать далее
Всего голосов 19: ↑8 и ↓11 -3
Просмотры 4K
Комментарии 15

Как реализовать DDD в Go

Блог компании Домклик Проектирование и рефакторинг *Go *
Перевод

С помощью микросервисной архитектуры можно построить масштабируемое и гибкое приложение. Однако, если команда бессистемно использует этот подход в своей работе, то скоро столкнется с разочарованием и неконтролируемой сложностью. Избежать этого поможет DDD (Domain-Driven Design, предметно ориентированное проектирование). Не так давно я ничего не знал про этот подход, но сейчас я постоянно натыкаюсь на эту тему.

Представляю вам перевод статьи "How to Implement Domain-Driven Design (DDD) in Golang". Повествование буду вести от лица автора, иногда прерывая собственными мыслями в таком же формате, как и это отступление. Приятного чтения.

Читать далее
Всего голосов 25: ↑22 и ↓3 +19
Просмотры 11K
Комментарии 21

SAGA на golang

Блог компании Karuna Программирование *Go *Микросервисы *

После того, как я написал статью про паттерн CQRS, мне захотелось описать ещё один интересный шаблон для микросервисной архитектуры, а именно saga (он же повествование).

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

gocorpus: открытый корпус Go кода, поддерживающий запросы

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

На днях я запустил wasm-приложение, которое позволяет запускать gogrep шаблоны на относительно крупном корпусе Go кода (~11 миллионов строк кода).


В этой заметке я напишу как этим пользоваться и зачем оно вообще может быть нужно.


Звёздочки нести сюда Исходный код можно найти здесь.


Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 3.6K
Комментарии 4

Пишем сервис на GO. Backend для апплета

Блог компании Timeweb Cloud Разработка веб-сайтов *Программирование *Анализ и проектирование систем *Go *
Tutorial


В первой части этой дилогии мы написали рантайм контроллер для приложения на golang. Все что он умеет делать — запускать методы интерфейса Resources и функцию MainFunc, контролировать результат их выполнения, и корректно обрабатывать сигнал операционной системы о завершении работы. Это не так уж и много, но довольно полезно.


Теперь я постараюсь показать, как этот пакет можно использовать на примере простейшего бэкенда для апплета “Труд всем”. Немного поясню идею этого апплета. Допустим у нас есть любой сайт — от хомяка до новостной ленты, а в любом свободном углу при обновлении страницы показана случайная вакансия. Код апплета будет отправлять запрос на сервер и получать в качестве результата HTML код (уже готовый рендер) для вставки на страницу сайта.


Правда интригующе? Где же получать информацию о вакансиях? Где хранить эту информацию? Какие критерии отбора вакансий использовать? Для того, чтобы узнать ответы на эти вопросы, прошу заглянуть под кат!

Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 4.6K
Комментарии 20

Применение Rust в разработке: страдания и высокий порог входа. Григорий Петров разбирается, когда этот язык необходим

Блог компании IT-People Python *C++ *Go *Rust *

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

Первая статья в серии - интервью с Григорием Петровым, DevRel из Evrone. Применять новомодный Rust в заказной разработке - решение, на первый взгляд, неочевидное. Готовых разработчиков мало, порог входа - высокий. Давайте узнаем, в каких условиях использовать Rust все-таки полезно? 

Гриша, расскажи, как вы в Evrone пришли к использованию Rust? 

13 лет назад, когда Evrone только начинался, мы специализировались на full stack Ruby решениях. Но с годами мы начали расширять палитру того, что предлагаем клиентам. Вначале у нас выделилось направление фронтенд - это React, Vue.js. Затем к нам приполз Python, как альтернатива Ruby, потому что многие клиенты выбирают стек технологий под уже существующие команды и процессы. 

И уже несколько лет мы используем Rust как комплементарную технологию, которая позволяет точечно ускорять наши решения на Python и Ruby в 10, а иногда и 100 раз. 

Теперь, когда к нам приходит бизнес и говорит: «Ну вы же знаете, что Ruby нетороплив, наша система уже 100 000 запросов в секунду, нам надо потратить еще вагон денег и переписать ее на Java. Да?» Мы такие: «Нет! Мы выделяем вот эти три точки, которые у вас под нагрузкой, и наши ребята переписывают их на Rust. У вас всё начинает работать быстро, надежно и при этом поддерживаемо, а бизнес фичи продолжают фигачиться с той же страшной скоростью». 

Читать далее
Всего голосов 60: ↑55 и ↓5 +50
Просмотры 23K
Комментарии 161

Микрооптимизация кода на Go на примере простого веб-сервиса

Блог компании «Лаборатория Касперского» Программирование *Go *


Привет, Хабр! Я работаю старшим Go-разработчиком в «Лаборатории Касперского». Сегодня хочу поговорить о том, как искать узкие места и оптимизировать код на Go. Разберу процесс профилирования и оптимизации на примере простого веб-сервиса — покажу, с помощью каких встроенных инструментов искать функции, активнее всего использующие CPU и память. Расскажу, какие можно применять подходы, чтобы повысить производительность. Хотя речь пойдет о микрооптимизации, в моем примере шаг за шагом производительность удалось поднять в 5 раз!

Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 8.6K
Комментарии 13

Golang-дайджест № 11 (1 – 30 ноября  2021)

Go *

Свежая подборка новостей и материалов

Интересное в этом выпуске

Выпущены Go 1.17.3 и Go 1.16.10, 12 лет Golang, Как насчет того чтобы объединить Go & Ruby, вредоносное по на Golang, парсер математических выражений, Сarotid Artillery 2D игра написанная на GO

Приятного чтения!

Читать далее
Всего голосов 25: ↑23 и ↓2 +21
Просмотры 4.1K
Комментарии 1

Меняем стек с PHP на Golang, или Разработка под Kubernetes

Блог компании Агентство AGIMA PHP *Go *

Привет, Хабр!

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

Читать далее
Всего голосов 26: ↑19 и ↓7 +12
Просмотры 9.1K
Комментарии 13

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

Работа

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