Разработка
August 22, 2022

Анонс Go digest: Стремление к совершенству

Ответственный и бескомпромиссный подход к своему делу всегда высоко ценится. Давайте посмотрим на релиз 1.19 и узнаем, как разработчики отшлифовали своё творение. Ещё поговорим о влиянии слайсов на производительность и заценим какую облачную файловую систему создали с помощью Go.

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

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

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

Связующим звеном становится скоростная база данных в которой есть информация из каких кусков данных состоит тот или иной файл. Так что если взять какой-нибудь Redis/TiKV/MySQL, а сами данные хранить в объектном хранилище, например, Amazon S3 — можно создать облачную ФС поверх облачной ФС. Вам хочется подробностей? Их есть у нас в полной версии дайджеста.