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

Go *

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

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

Тестовое задание от гейм-студии (matchmaking, разбор)

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

На это задание я наткнулся в процессе недавнего поиска работы - компания занимающаяся разработкой игр (по-моему, Lesta Games) предлагала его выполнить до отклика на HH. То есть "присылайте отклик вместе со ссылкой на ваше решение" или в этом духе. А я обожаю тестовые задания - такой шанс быстро напедалить с нуля какой-то код и потом спокойно про него забыть :) Здесь задачка была сформулирована не слишком конкретно - мне такие кажутся скорее "поводом поговорить" - поэтому любопытно обсудить подобный кейс с сообществом, знатоками и сочувствующими. Речь шла про позицию Go-разработчика - но задание достаточно language-agnostic - так что читайте смело!

Итак, Задача!
Рейтинг0
Комментарии9

Новости

Как подружить Gorm и PostGIS, решение промышленного уровня

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

GORM Фантастическая ORM для Golang.

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

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

Изначально эта статья была опубликована здесь.

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

Особенности трудоустройства в 2024 (golang)

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

За свои 15+ лет в разработке я прошёл наверное 100+ собеседований — и почти четверть из них в этом году, в течение последнего месяца:) Что‑то необычное происходит — подумал я — и решил поделиться наблюдениями — может вы тоже что‑то заметили? А может это просто кому‑то чуть поможет в поиске работы или наоборот в рекрутинге.

Итак, погнали...
Всего голосов 13: ↑11 и ↓2+13
Комментарии46

Как ускорить программу, не переписав ни строчки кода: PGO для Go-разработчиков

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров2.4K

Привет, Хабр! Я Кирилл Кузин — старший разработчик компании Ви.Tech, IT-дочки маркетплейса ВсеИнструменты.ру. Мы поддерживаем 4 кластера Kubernetes, каждый из которых включает от 200 до 215 нод. Ежемесячно выполняется более 1 миллиона пайплайнов, а на наш сайт ежедневно заходят до 2 миллионов уникальных пользователей.

И в этой статье расскажу о том, как оптимизировать работу сервиса с помощью PGO (Profile-Guided Optimization) - инструмента, изучаемого нашей компанией. На примере кейса разберем, как использование этого инструмента ускоряет выполнение задач и снижает нагрузку на систему.

Что делает PGO? Как он влияет на производительность? Мы сравним результаты работы с и без него, а в конце подведем итоги, чтобы дать объективную оценку результатам.

Узнать про PGO
Всего голосов 9: ↑9 и ↓0+12
Комментарии6

Истории

Го, мы создали: что расскажут на онлайн-конференции GoFunc 2024 Autumn

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

Сколько Go-разработчиков в русскоязычном IT-сообществе? Насколько им нужны собственные конференции?

Такие вопросы лучше всего проверяются практикой. Весной мы впервые провели онлайн-конференцию GoFunc. Стало ясно: хотя она не настолько масштабная, как у самых массовых языков программирования, спрос есть и продолжать стоит.

Поэтому уже на следующей неделе мы снова проведём GoFunc. Конференция будет небольшой: один день, 13 докладов (и ещё обсуждение Go 1.23). А здесь делимся описаниями всех этих докладов — так что можете понять, сколько там интересного для вас.

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

10 практических применений языка Go

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

Go — это современный язык программирования, разработанный Google. Он обладает высокой производительностью, простотой использования и подходит для широкого спектра задач, от веб-разработки до системного программирования.

Ключевые особенности Go:

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

Простота использования: Синтаксис Go ясный и лаконичный, что упрощает процесс обучения и разработки.

Конкурентность: Go предоставляет встроенные средства для эффективного выполнения параллельных задач.

Статическая типизация: Статическая типизация помогает предотвращать ошибки во время компиляции.

Стандартная библиотека: Богатая стандартная библиотека Go предоставляет инструменты для различных задач, включая сетевое программирование, обработку данных и многое другое.

Читать далее
Всего голосов 18: ↑2 и ↓16-12
Комментарии7

Ещё один инструмент для обновления зависимостей

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

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

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

Как построить свою систему SMS-голосования

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

Привет, Хабр! Недавно мне пришла задача: провести голосование среди пользователей, но без сложных и дорогостоящих решений. Когда я пришёл к выбору системы SMS-голосования, осознал, что многие решения на рынке либо слишком сложны для интеграции, либо слишком дороги для решения простых задач.

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

Как сочетать Next.js и Go: основы

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

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

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

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

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

Программист-4chan'овец

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

Мы используем Go для создания Dolt, первая в мире БД SQL с контролем версий. Как и большинство кодовых баз, основанных Go, мы используем каналы и горутины(от переводчика, автора этой статьи на Хабре: у меня есть хорошая статья на тему параллелизма в Go) для реализации параллелизма. Как правило мы используем эти конструкции очень скучным и обычным путем, ведь параллелизм и так сложен без всяких выдумок. Но в одном месте мы все-таки взяли маленький кусочек кода из другого open-source проекта, который использует каналы очень интересным способом...

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

Визуализация покрытия автотестами для gRPC сервисов

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

В данной статье хочу рассказать про инструмент измерения покрытия gRPC сервисов tests-coverage-tool, написанный на языке Golang. Основная задача инструмента — автоматическое измерение покрытия требований на основе proto контрактов. Поговорим про использование в автотестах, концепцию, отчет и кратко про архитектуру самого инструмента tests-coverage-tool.

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

Пользуемся Docker, не выходя из Go

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

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

Зовут меня Егор, я программирую на Go и в этой статье хочу поделиться информацией про Docker и Golang.

Кто такой Докер? Как заявляет сама компания, Докер — № 1 программа по контейнерезации для разработчиков ПО. В этой статье я не буду объяснять, что это, зачем и почему именно он, для этого есть как офиц. документация, так и хорошие статьи на Хабре. Если кратко — то Докер — это инструмент, который позволяет запускать программы в некой песочнице(контейнере) с целевой ОС — как правило линукс. Самое главное преимущество Докера — это упаковывать все нужное для твоей программы(например: зависимости) в один модуль. И ресурсов эта вещь тратит намного меньше, чем та же виртуальная машина.

Зачем нужен Docker SDK? Самая важная причина — тестирование. Можно собирать метрики, делать редирект трафика, автоподъем контейнеров, анализировать логи в реальном времени, создавать образы и еще кучу всего, что упрощает тестирование. Я постараюсь охватить эти пункты в этой статье.

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

go-collections: структуры данных для Go с поддержкой дженериков

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

Язык программирования Go предоставляет базовые контейнеры, но часто разработчикам необходимы более специализированные структуры данных. Пакет go-collections предлагает реализации распространенных структур данных с поддержкой дженериков, что делает код более выразительным и удобным.

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

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

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн

Рецензия на книгу «100 ошибок в Go и как их избежать» Тейва Харшани

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

Привет! Меня зовут Макс, я Go-разработчик в IT-компании SimbirSoft. Хочу поделиться своим отзывом на книгу «100 ошибок в Go и как их избежать» Тейва Харшани. Книга заинтересовала меня тем, что автор фокусирует свое внимание на ошибках, как распространенных, так и более редких.

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

Как собрать базу контактов в amoCRM с помощью QR-кода и SMS API

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

Коллегам в отдел маркетинга прислали задачу: получить как можно больше подписчиков в рассылку, не прибегая к использованию готовых программ, но при этом выделиться на фоне конкурентов. На ум приходит размещение яркого рекламного предложения-плаката с призывом подключиться к рассылке. Попробуем его оформить, сгенерировать QR-код и настроить передачу данных в CRM.

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

Реализация Bloom-фильтров в Golang

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

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

В этой статье мы рассмотрим популярную структуру данных: Bloom-фильтры, они помогут минимизировать использование памяти и ускорить выполнение задач.

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

Swama: CLI-инструмент для работы с Swagger/OpenAPI

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

Как Swama помогает упростить работу с API-спецификациями Swagger/OpenAPI: обзор возможностей CLI-инструмента.

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

gRPC: проблемы и решения при переходе с REST

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

Вот уже 24 года мы используем сложный для понимания, завязанный на особенности HTTP REST-протокол. Не пора ли переходить к чему-то более современному?

Привет! Меня зовут Игорь Алексеев и я работаю бэкенд-разработчиком в компании Garage Eight. Некоторое время назад я внедрил gRPC для части своих сервисов. В этой статье поговорим о том, что такое gRPC, сравним его с возможными альтернативами, рассмотрим преимущества gRPC и пробежимся по проблемам, которые возникают почти в каждом проекте, где этот протокол приходится внедрять.

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

Реверс-инжиниринг  GDB для работы с Pwndbg

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

Функционал GDB существенно сужается, когда приходится иметь дело с файлами, из которых убраны отладочные символы (получаются так называемые «урезанные бинарники»). Функции и имена переменных превращаются в бессмысленные адреса. Для установки контрольных точек приходится отслеживать адреса нужных нам функций из внешнего источника. Также нужно выводить в консоль структурированные значения и после этого корпеть над дампом памяти, пытаясь вычленить, где именно пролегают границы полей.

Вот почему этим летом, работая в Trail of Bits, я расширил Pwndbg — плагин для GDB. Поддерживает его мой наставник Доминик Чарнота. Я добавил в инструмент две фичи, благодаря которым практическая отладка урезанных бинарников сближается с аналогичной работой, знакомой нам из работы с отладчиком в IDE. Теперь в Pwndbg интегрирован инструмент Binary Ninja, позволяющий лучше выяснять специфику GDB+Pwndbg, а также выводить дамп структур Go, чтобы отлаживать бинарники Go стало удобнее.

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

Идеальная алгоритмическая секция на Golang (ИМХО)

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

Привет, Хабр! А вы любите на собеседованиях проходить алгоритмические секции? А лайв-кодинг? Задачки такие «интересные», что на код-ревью такого бы умельца — тряпками и бранными словами. Минимум...., но коллега же. Поэтому просто попросим переделать.

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

Я очень плохо прохожу любые экзамены. Почти всегда иду не в ногу. И мне всегда казалось, что в этом процессе есть что-то неправильное. В компаниях типа Яндекса или Гугла, когда требуется набрать инженеров-программистов, причем неизвестно, на каком языке и проекте они будут работать, еще хотя бы понятно, зачем это нужно. А что делать в обычных компаниях? Где нужно писать CRUD’ы и настраивать межсерверное взаимодействие? Мне кажется, это неестественно.

Но однажды, объясняя дочери, что такое простые числа, я придумал идеальную алгоритмическую секцию для Go-разработчика. Примерно за час набросал задачу (как раз стандартное время на алгосекцию). Интересно? Добро пожаловать под кат!

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

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

Работа

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