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

Go *

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

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

Анонс: митап «Быстрый бэкенд». MongoDB, оптимизация алгоритмов и диагностика проблем в больших проектах

Блог компании Joom Python *Программирование *MongoDB *Go *
Привет, Хабр. Мы задумали встретиться офлайн в Москве и поговорить о том, как строить быстрый бэкенд и развивать его. Будут доклады о том, как живётся с большим кластером MongoDB, как битмап-индексы помогают быстро искать по каталогам и то, как анализировать большие объемы Jaeger-трейсов. Читайте пост: ниже тезисы и ссылка на регистрацию, встречаемся 4 июня.



Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 575
Комментарии 1

Новости

Go против Rust — производительность вне конкуренции

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

В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты:


Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности, чем программа на Go: 367 млн. итераций в секунду против 44 млн.

Ну, в 1.5 раза… Ну, в 2 раза… Но семь гвардейцев за два дня — это слишком, тем более что тут "гвардейцев" больше восьми!


Или нет, не слишком? В общем, потенциал любопытства пересилил другие потенциалы и я провёл своё исследование.

Читать дальше →
Всего голосов 95: ↑93 и ↓2 +91
Просмотры 20K
Комментарии 88

Пятничное: пишем консольную утилиту на Go для добычи гифок с котами

Go *
Recovery mode
Tutorial

В моём окружении часто отправляют гифки с котами. К сожалению, рано или поздно запас заканчивается, и приходится идти и искать новые.

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

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

Разработка навыка для «Алисы» на основе Google Keep заметок

Open source *Google API *Go *Голосовые интерфейсы
Из песочницы

На данный момент я активно пользуюсь приложением Google Keep для управления заметками на смартфоне. Для покупок в магазине достаточно удобно пользоваться заметками вида "чеклист", о которых и пойдет речь ниже.

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

Казалось бы причем тут Алиса... так вот еще удобнее было бы добавлять такие пункты покупок в список, используя голосовой помощник от Яндекса.

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

Go в API для мобильного приложения. Создаем совместный список покупок с мгновенными уведомлениями

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

В предыдущей статье мы рассмотрели использование Go для создания веб-приложений (с выполнением через Web Assembly). Но прежде всего Go интересен как язык для реализации высокопроизводительных и неблокирующих решений на стороне сервера и в этой статье мы изучим использование Go для backend на примере разработки API для мобильного приложения для совместного редактирования списка покупок. Приложение будет включать в себя механизмы авторизации, запроса и модификации объектов, а также мгновенные уведомления (через веб-сокеты и Push) и мониторинг доступность API. В качестве примера мы создадим минимальный API, для которого обеспечивается уведомление всех зарегистрированных пользователей об изменении списка, а также будут предусмотрена отправка пуш-уведомлений всем адресатам по запросу.

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

Потоковая обработка данных в go

Go *Функциональное программирование *

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

С выходом Go 1.18 появилась возможность реализовать библиотеку потоковой обработки данных goio, вдохновлённую превосходными Scala-библиотеками cats-effect и fs2.

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

R*-tree в Go, немного геймдева и поиска элементов в пространстве

Высокая производительность *Разработка игр *Алгоритмы *Go *Геоинформационные сервисы *
Из песочницы

Приветствую, уважаемые читатели Habr!

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

Эта статья заденет опыт в геймдейве и идеи, где это ещё можно было бы использовать :)

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

Четыре простых лайфхака при написании тестов на Go + testify

Блог компании Joom Программирование *Go *Тестирование веб-сервисов *
Хотя язык программирования Go идёт в комплекте со встроенным тестовым фреймворком, мне сложно себе представить написание всего того количества тестов, что я написал, без testify. В этой заметке я расскажу про несколько маленьких неочевидных трюков, которым я научился в процессе.


Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 3.8K
Комментарии 0

Распределенные Workflow на PHP. Часть 1

Блог компании Конференции Олега Бунина (Онтико) PHP *Программирование *Алгоритмы *Go *

Мы занимаемся разработкой огромного количества сложного ПО для автоматизации и энтерпрайза и Workflow для нас — это большая и больная проблема. Если для вас тоже — я расскажу, как писать и оркестрировать очень сложные процессы на масштабах, и как убедиться, что они не падают. А также как делать таймеры на 30 дней внутри процессов. И самое главное, как всё это пилить на PHP.

Меня зовут Антон Титов. Я более 17 лет занимаюсь коммерческой разработкой. Являюсь соавтором Spiral Framework, RoadRunner и Cycle ORM. Основной стек: PHP и Golang. Разговор пойдет про нашу разработку Temporal PHP SDK, которая и помогает решать все вышеперечисленные сложные задачи.

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

Go в браузер. Создание веб-приложений с использованием Web Assembly на Go

Блог компании OTUS Разработка веб-сайтов *Go *WebAssembly *

Технология WebAssembly появилась относительно недавно (в 2015 году) и позиционировалась как альтернатива JavaScript для выполнения в среде браузера с максимально достижимой производительностью. Приложение на WebAssembly может использовать все возможности, доступные в "песочнице" браузера для JS (доступ к Document Object Model, дополнительным классам HTML5), но при этом может быть изначально написано на других технологиях разработки и скомпилировано в формат байт-кода WASM, предоставляя свои интерфейсы сценариям на JavaScript.

Наиболее известным набором инструментов для компиляции в wasm32 является emscripten, с его помощью можно скомпилировать приложение, написанное на C/C++ или на любом языке, имеющим frontend-компилятор для LLVM. При этом компилятор подменяет вызовы OpenGL и POSIX на соответствующие аналоги в браузере, что например используется при компиляции библиотеки skia для браузера (canvaskit) из исходного кода на C++, а также портирование существующих библиотек (например, ffmpeg или opencv). Но некоторые языки программирования поддерживают wasm32 как одну из целевых платформ, среди которых можно выделить Kotlin (Native) и Go. В этой статье мы обсудим общие вопросы о запуске приложений Go в среде браузера и использование библиотеки Vecty для создания веб-приложений на основе переиспользуемых компонентов.

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

GOAPPLE: быстрая настройка I3-wm

Настройка Linux *Go *Системы сборки *Софт
Из песочницы

Привет, Хабр! Сегодня я хотел бы рассказать вам о моём переезде на Linux под управлением оконного менеджера I3-wm. Попробую немного раскрыть тему настройки оконного менеджера и поделюсь своим опытом. Надеюсь кому-то будет полезно получить такого рода информацию.

P.s если вы не новичок, то вред ли узнаете много нового, но благодарю за внимание!

И так! Данная программа была разработана в целях бэкапа конфигурации системы, которую я использую каждый день - Manjaro I3. Я приготовил 3 конфигурации оконного менеджера I3-wm для систем: Manjaro, Solus и Fedora, так как они наиболее популярны на мой взгляд. Я использовал каждый из представленных дистрибутивов и временами меняю совой основной дистрибутив на один из них.

Я пользуюсь Linux с 18 февраля 2019 года, но летом 2020 я начал использовать Linux как основную систему (на тот момент ещё Ubuntu 20.04 LTS).

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

Спроси меня про Go. Отвечаем на распространённые вопросы

Блог компании Яндекс Практикум Программирование *Go *Учебный процесс в IT Карьера в IT-индустрии

В начале марта Яндекс Практикум провёл вебинар «Спроси меня про Go» в формате открытого микрофона: слушатели могли задать любые вопросы о языке Go. Экспертами выступили техлиды курса «Go-разработчик»: Георгий Зуйков — ведущий разработчик в Едадиле и Александр Демиденко — старший разработчик в Яндекс Облаке, в команде Cloudgate.

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

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

Signum Explorer Telegram Bot — разработка open-source pet-project телеграм бота для блокчейна Signum

Блог компании Karuna Open source *Go *Криптовалюты
Кто про что, а я про телеграм бота…

Сейчас я работаю в компании Каруна на позиции старшего Go-разработчика. В свободное от работы время стараюсь смотреть по сторонам (нет — не в поиске работы, и да — это корпоративный блог, но пишу про пет-проект 🙂) и интересоваться разными областями IT, абсолютно отличными от того, чем ежедневно занимаюсь на работе.

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

Итак, задача:
  1. Иметь минимальный функционал эксплорера блокчейна прямо в телеграме: просматривать транзакции и статистику сети.
  2. Удобно отслеживать баланс нескольких кошельков и получать уведомления о поступлениях/списаниях с кошелька.
  3. Получать актуальную цену + график.
  4. Иметь калькулятор доходности майнинга.
  5. Иметь кран для активации новых кошельков.

На этом вроде бы и всё, поехали…
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 1.6K
Комментарии 3

NNHelper – пакет на языке Go для создания и использования нейронной сети

Go *Машинное обучение *

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

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

Go пакет nnhelper разработан для быстрого создания нейронной сети и использовании ее в приложениях, написанных на языке Go. Для использования nnhelper не потребуется ничего дополнительного, кроме Go. Пакет nnhelper является надстройкой над пакетом gonn. И это единственная внешняя зависимость.

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

Golang-дайджест № 16 (1 – 30 апреля  2022)

Go *

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

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

Выпущены версии 1.18.1 и 1.17.9, результаты опроса разработчиков Go 2021, вопросы и ответы для собеседования Go-разработчика, сетевой сниффер на golang

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

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

[Go] Изоляция вложенных вызовов в юнит-тестах

Go *
Из песочницы

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

Дело вот в чём.

Допустим у нас есть структура с методами A, B, C. Но вот вдруг мы должны сделать вызов C из B, а ещё лучше, если появляется метод D и последовательность вызовов становится D->A + D->B->C в одном флаконе. В общем, – вложенные вызовы.

Как это побороть? Читаем далее
Всего голосов 6: ↑4 и ↓2 +2
Просмотры 2.4K
Комментарии 9

Наблюдение за выполнением конкурирующих задач в Go и Rust

Go *Параллельное программирование *Rust *
Из песочницы

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

Все обсуждаемые здесь измерения проведены на единственной системе с более или менее случайными характеристиками. Хотя она довольно типична, то есть, не слишком хороша и не слишком плоха, выполненное в таком объеме исследование заведомо не претендует на полноту. Заинтересованный читатель может повторить его в любой подходящей среде, загрузив исходный код с GitHub (ссылка на репозиторий приведена в конце). 

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

Читать далее
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 8.7K
Комментарии 10

Go для самых маленьких. Разрабатываем для Arduino и других микроконтроллеров

Блог компании OTUS Go *Программирование микроконтроллеров *Интернет вещей

Язык Go благодаря своей простоте, возможности компиляции в выполняемый образ и встроенной поддержке многозадачности стал, в некотором смысле, "серебряной пулей" для создания высокопроизводительных инструментов и, совместно с Rust, сформировал современный технологический ландшафт для DevOps. Но в действительности, благодаря поддержке набора инструментов LLVM, стало возможным использовать Go и для встраиваемых систем, например при создании мобильных приложений для Android/iOS (например, проекты android-go или gomobile) или микроконтроллеров. В этой статье мы поговорим о возможностях проекта TinyGo, его преимуществах по сравнению с C++ для Arduino и других микроконтроллеров, рассмотрим несколько примеров по работе с оборудованием (на примере реализации драйвера шины SPI для светодиодной ленты WS2812).

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

Bun: дружественный к SQL Golang ORM

Go *
Из песочницы

Bun это дружественный к SQL Golang ORM для PostgreSQL, MySQL/MariaDB, MSSQL, и SQLite. Данная статья призвана познакомить вас с базовыми возможностями этой ORM.

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

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

Работа

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