Первого января 2024 года Роберт Пайк дал интервью Medium.Вообще-то редакторы предполагали, что он расскажет о пятнадцати годах программирования с применением языка, основным идеологом которого он считается. К окончанию беседы выяснилось, что интервьюер извлек больше информации, чем предполагал, и, естественно, редакторы решили урезать содержание "для пользы индустрии", но, как обычно получается в таких случаях, произошла утечка информации.Вот полная и нередактированная запись интервью …
За кулисами рантайма GoНе переживайте о понимании изображения выше прямо сейчас, мы начнем с самых основ.Горутины раcпределяются по потокам, которыми Планировщик Go управляет под капотом. Мы знаем о горутинах следующее:Горутины, если говорить о скорости исполнения, не обязательно быстрее чем потоки, так как они нуждаются в потоках, чтобы ими исполняться.Ключевое преимущество горутин — в таких нюансах как контекст свитчинг, размере занимаемой ими памяти и стоимости создания и «удаления».Вероятн…
В этом посте мы обсудим несколько увлекательных моментов, которые я узнал в процессе своей работы.Мой канал с инструментами Go разработчика, с разбором каверзных вопросов с собеседований, примерами с кодом, обучающими уроками и кучей всего полезного, здесь целая папка для всех, кто любит Golang.Поехали!1. Как используется встраивание (embedding) в Go?В Go директива //go:embed используется для встраивания файлов и папок в бинарный файл Go на этапе компиляции. Эта функция улучшает безопасность, …
Привет, я Паша, разработчик в Yandex Infrastructure, и я катаю гусей. С 2019 года наша команда развивает S3-хранилище как для внутренних пользователей Яндекса, так и для клиентов Yandex Cloud. А «гусём» называется наш бэкенд S3 API: он написан на Go, а из словосочетания Go + S3 получился goose. Возможно, вы также слышали про GeeseFS — это наш высокопроизводительный FUSE‑клиент для S3. C его помощью вы можете на своём ноутбуке или виртуалке подмонтировать папку, которая будет работать с бакетом…
Привет, Хабр!Меня зовут Энрике, и я работаю Go-разработчиком в RuStore. Сегодня хочу рассказать про библиотеку на Go для комфортной работы с API магазина приложений RuStore. Иногда авторизация через API и получение JWE-токена занимают больше времени, чем хотелось бы. С нашей новой библиотекой процесс становится намного проще — интегрируйте её в свой проект и используйте любые методы RuStore API.В этой статье мы опишем небольшой пример использования методов из нашей библиотеки: как получить дан…
ВведениеВсем привет! Это продолжение прошлой статьи про данный алгоритм. Где я рассказывал про возможность общения между двумя пользователями без прямого обмена ключом шифрования. В своем телеграм‑канале я уже описывал идею создания прозрачного Open‑Source мессенджера на основе этого алгоритма и хочу представить вам его самую простую реализацию с примерами кода.Предупреждаю, что кода будет много, но также будет много комментариев и объяснений.Все исходники я выложил в своем github, ссылки буду…
Если вы задумывались, какие практики использовать, чтобы писать код на Go быстро и качественно, этот материал для вас. Руководитель группы разработки подсистем Геннадий Ковалёв и эксперт по разработке ПО Даниил Подольский в YADRO обсуждают пять способов повысить эффективность разработки в команде Go-программистов: они расскажут, как называть переменные, составлять документацию и продумывать архитектуру так, чтобы специалистам в команде и смежных отделах было легко работать с написанным кодом. …
Мне нравятся простые языки программирования, такие как Gleam, Go и C. Знаю, я не один такой. Есть что-то чудесное в работе с простым языком: каково его читать, использовать в команде, возвращаться к нему спустя долгое время и т.д. В этом посте я хочу конкретизировать, в чём заключается такая простота, осветить пару причин, по которым она так важна. Я предложу пять ключевых идей, которые должны быть реализованы в простом языке программирования: Возможности, которые всегда под рукой Быстрые ц…
Пакет runtime/trace содержит мощный инструмент для понимания программ Go и устранения неполадок. Функциональность внутри позволяет создавать трассировку исполнения каждой горутины за определенный период времени. С помощью go tool trace (или превосходного инструмента gotraceui с открытым исходным кодом) можно визуализировать и исследовать данные в этих трассировках.Магия трассировки заключается в том, что она может легко выявить такие вещи в программе, которые трудно увидеть другими способами. …