Анонс Go digest: От простого к сложному

Nikolai Rubanov (Darksa)
Заметки про Evrone
2 min readMar 22, 2023

В мартовском Golang-дайджесте мы расскажем, как удобно демонстрировать результаты работы заказчикам, создавая туннели в публичный интернет. Также рассмотрим легковесную альтернативу веб-фреймворку makaron, почитаем стайлгайд от Uber и узнаем, как ускорить отдельно взятую функцию, переписав её на языке ассемблера.

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

Веб-фреймворки для Go не ограничиваются gin, martini или makaron. Наше внимание привлёк Flamego. У него самый мощный синтаксис маршрутизации, который опережает всех конкурентов по экосистеме. Этот фреймворк не накладывает ограничений на внедрение промежуточного программного обеспечения и упрощает интеграцию с существующими Go-приложениями.

Не только Google делится руководствами по стилю. Свой стайлгайд был разработан и в стенах Uber. Целью было улучшить продуктивность коллег при работе с Golang. Этот документ неоднократно дополнялся и теперь содержит множество советов и рекомендаций. Каждый пункт основан на опыте решения проблем экспертами, имеющими многолетний опыт работы с Go. Особенно приятно то, что этот стайлгайд выложен в открытый доступ и его может использовать каждый.

На закуску предлагаем поговорить об оптимизации. Большинство приложений в нашем веке разрабатывается на высокоуровневых языках. Повсеместная виртуализация и контейнеризация отучили программистов думать на каком железе будет работать их код. Это позволило существенно снизить порог входа и не особо задумываться о том, что происходит на уровне ниже. Но что делать, если надо ускорить одну отдельно взятую функцию? Здесь на помощь приходит язык ассемблера и понимание архитектуры процессора.

Детали, подробности и примеры кода читайте в полной версии нашего дайджеста.

--

--