Обновить
184.3

Go *

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

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

Бесконечное радио создаваемое нейронными сетями. Open-source проект

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели14K

Привет всем увлеченным нейронными сетями или тем, кто хочет вникнуть в технологии. Сегодня я хотел бы познакомить вас со своим захватывающим проектом с открытым исходным кодом «Бесконечное нейронное радио». Бесконечное, потому что lofi музыка и подкасты могут генерироваться нейронными сетями бесконечно. В этой статье я бы хотел углубиться в то, как все работает изнутри.

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

Узнать как работает

Вышел язык программирования Go 1.21: что нового и хорошего появилось? Оцениваем изменения

Время на прочтение4 мин
Охват и читатели15K

Мы в МТС очень много всего разрабатываем на Golang, поскольку считаем этот язык программирования весьма достойным для проектов разного масштаба. На нём относительно просто писать, т. е. увеличивается скорость разработки, производительность — высокая, плюс есть защита от ошибок. И вот на днях был представлен Go 1.21. Что улучшили, изменили и добавили? 

 

Читать далее

Почему язык Go популярен

Время на прочтение16 мин
Охват и читатели105K

Go, также известный как Golang, — это язык программирования с открытым исходным кодом. Представленный публике в 2009 году, Go был разработан для упрощения задач программирования и повышения эффективности. Он родился из потребности в языке, который был бы прост для понимания, эффективен для выполнения и прежде всего способен справиться с масштабами, в которых работает Google. Его отличают простота, эффективность, многопоточное программирование, кроссплатформенность и высокая скорость компиляции.

Меня зовут Рафаэль Мустафин, я ментор на курсе «Go-разработчик» в Яндекс Практикуме. Я написал эту статью для новичков и тех, кто рассматривает Go в качестве первого языка программирования. В ней я приведу практические примеры того, что понимаю под преимуществами Go.

Let's GO

Учимся применять Semaphore и Worker Pool на Go

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели49K

Привет, Хабр! Я Артём Чаадаев из команды ассортимента размещения в Туту и занимаюсь разработкой на языке Go. Здесь мы посмотрим как решить распространенную практическую задачу применяя паттерны Semaphore и Worker Pool.

Хотите научиться конкуретной разработке на Go? Значит, вам сюда.

Добро пожаловать под кат!

Читать далее

Go's Garbage Collection: как работает и почему это важно знать

Время на прочтение7 мин
Охват и читатели78K

В статье посмотрим на Go Garbage Collector — механизм автоматического освобождения невостребованной памяти приложения в Go. Разберём его устройство и принципы работы.

Читать далее

Expr: простой и мощный ЯП на Go

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели6.3K

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

Сегодня хочется поделиться с вами открытием, которое, возможно, окажется полезным для тех, кто работает с языком программирования Go и ищет надежный инструмент для вычисления выражений. Речь пойдет о библиотеке expr от Anton Medvedev.

Читать далее

Хакните HL и заработайте 125.000 рублей

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели2.4K

При разработке безопасных и/или анонимных приложений всегда наступает такой момент, когда становится необходимым выйти из своих сугубо теоретических размышлений, выйти из скованного дебагом одиночества, выйти из затворничества программных реализаций в открытое общество, безжалостно указывающее на все неправильные, нелогичные, ошибочные, уязвимые части «итогового продукта». Это есть необходимый этап в разрушении ожиданий, идеалов, а также сомнений, чтобы вследствие своей закалки, продукт стал бы поистине безопасным.

Читать далее

Используем Hashicorp Vault для хранения секретов

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

В этой статье хотелось бы поделиться практикой использования хранилища секретов от компании Hashicorp, и называется оно Vault.

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

Читать далее

От C до Go. Как Golang объединил лучшие черты своих предшественников

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


В программировании постоянно разрабатываются новые языки. В каждом из них разработчики стремятся расширять возможности предыдущих технологий. Одним из таких примеров является язык Go, или Golang (Google language). Разработанный в компании Google, Golang был создан с целью объединить черты своих предшественников и предложить программистам новый инструмент для создания приложений. Когда создатели Golang приступили к разработке, они учитывали опыт различных языков, таких как C, C++, Java и Python.

Наша команда активно использует Golang для работы, например с Terraform-провайдером, поэтому мы решили разобрать его особенности подробнее. В этой статье мы рассмотрим историю языка, почему он стал таким востребованным среди разработчиков, разберем, какие черты заимствованы от C и других языков, а также дадим небольшую подборку материалов для самостоятельного изучения.
Читать дальше →

Отранжированные и смешные: создаем систему выстраивания пользовательской ленты

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели3.3K

Всех приветствую! Меня зовут Кирилл, я Go-разработчик в компании Ozon. Сейчас моим полем деятельности является разработка микросервисов в департаменте Fresh, однако я также успел принять участие в некоторых других интересных проектах.

Сегодня мне бы хотелось поговорить с вами о ранжировании информации для её последующей выдачи в пользовательскую ленту. Предлагаю поговорить о самом термине «ранжирование», а ещё об использовании этого процесса в современных информационных системах. Во время обсуждения я набросаю простую схему ранжирования внутри продукта, выбранного в качестве примера, а также поделюсь некоторыми примерами из опыта построения подобной системы.

Читать далее

В Go 1.21 существенно расширяется стандартная библиотека

Время на прочтение4 мин
Охват и читатели17K
// теперь в Go так можно!
slices.Contains(s, v)

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


Однако для стандартной библиотеки Go это было по-настоящему царским подарком. Появились новые стандартные обобщенные функции, и, отстоявшись в экспериментальном репозитории golang.org/x/exp, теперь появятся в Go 1.21. Релиз буквально через месяц.


TLDR: появилось множество функций по работе со слайсами, мапами, а также новый логгер с (почти) всеми нужными фишечками.


Лично для меня знаковым событием стало появление возможности поиска элемента в слайсе и получение ключей мапы, потому что ну давно пора, 10 лет языку.


Но давайте обо всём по порядку.

Читать дальше →

Как протестировать код на Go с базой данных?

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели10K

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

Читать далее

Golang — архитектурный линтер

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

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

В данной статье расскажу про свой бесплатный, open-source, линтер под MIT лицензией и чем он может быть полезен.

Читать далее

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

Сравниваем скорость и оверхеды библиотек Deep Copy для Go

Время на прочтение8 мин
Охват и читатели11K

Егор Гартман, бэкендер Авито, рассказал, как протестировал несколько библиотек Deep Copy, а потом сделал свою — быстрее и эффективнее.

Читать далее

Добавляем Starlark в приложение на Go

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

Starlark (ранее известный как Skylark) - питоноподобный язык, изначально разработанный для системы сборки Bazel, со временем выбравшийся за её пределы через интерпретаторы для Go и Rust.

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

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

Читать далее

Как начинать проект на Go в 2023 году

Время на прочтение14 мин
Охват и читатели37K

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

Читать далее

Как построить систему, способную выдерживать нагрузку в 5 млн rps

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

Всем привет! 

Меня зовут Владимир Олохтонов, я руковожу командой разработки в отделе Message Bus, который является частью платформы Ozon. Мы занимаемся разработкой самых разных систем вокруг Kafka, etcd и Vault. В этой статье я расскажу о том, как мы строили линейно масштабируемую gRPC-прокси перед Kafka, способную обслуживать миллионы запросов в секунду, используя Go.

Читать далее

Go: особенности написания конкурентных программ

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели11K

Всем нам предстоит поддерживать уже существующий код, а также проводить ревью кода коллег.

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

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

Читать далее

Криптография на Rust и немного FFI

Время на прочтение4 мин
Охват и читатели4.2K

Расскажу как создать Bitcoin кошелек используя только криптографические функции и о своем опыте разработки FFI (меж-языковой) библиотеки для Go.

Читать

PGO: выжимаем последнее из Go. Что даёт профилируемая оптимизация

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

Go давно умеет быть «достаточно быстрым», но начиная с 1.20 у нас появляется новая игрушка, которая позволяет выжать из железа ещё пару‑тройку процентов без переписывания кода — профилируемая оптимизация, она же PGO.​..

Читать далее

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