Анонс Go digest: От простого к сложному
В мартовском Golang-дайджесте мы расскажем, как удобно демонстрировать результаты работы заказчикам, создавая туннели в публичный интернет. Также рассмотрим легковесную альтернативу веб-фреймворку makaron, почитаем стайлгайд от Uber и узнаем, как ускорить отдельно взятую функцию, переписав её на языке ассемблера.
Большую часть времени разработчики тратят не на написание кода, а на коммуникации. Им часто приходится демонстрировать работу заказчикам и это должно быть не просто скриншотами или видео. Клиенту хочется самостоятельно потыкать мышкой в результат, причем на своём компьютере. Значит надо придумать, как дать временный доступ. При разработке интеграции с внешними сервисами им тоже надо достучаться до рабочего компьютера, отправить или получить данные. На помощь приходят специальные сервисы, создающие туннель из публичного интернета до рабочего компьютера.
Веб-фреймворки для Go не ограничиваются gin, martini или makaron. Наше внимание привлёк Flamego. У него самый мощный синтаксис маршрутизации, который опережает всех конкурентов по экосистеме. Этот фреймворк не накладывает ограничений на внедрение промежуточного программного обеспечения и упрощает интеграцию с существующими Go-приложениями.
Не только Google делится руководствами по стилю. Свой стайлгайд был разработан и в стенах Uber. Целью было улучшить продуктивность коллег при работе с Golang. Этот документ неоднократно дополнялся и теперь содержит множество советов и рекомендаций. Каждый пункт основан на опыте решения проблем экспертами, имеющими многолетний опыт работы с Go. Особенно приятно то, что этот стайлгайд выложен в открытый доступ и его может использовать каждый.
На закуску предлагаем поговорить об оптимизации. Большинство приложений в нашем веке разрабатывается на высокоуровневых языках. Повсеместная виртуализация и контейнеризация отучили программистов думать на каком железе будет работать их код. Это позволило существенно снизить порог входа и не особо задумываться о том, что происходит на уровне ниже. Но что делать, если надо ускорить одну отдельно взятую функцию? Здесь на помощь приходит язык ассемблера и понимание архитектуры процессора.
Детали, подробности и примеры кода читайте в полной версии нашего дайджеста.