вступление

Фреймворк — это, как правило, самоуверенный способ создания чего-то, что разработчик или группа разработчиков создали и поделились с миром. Фреймворки веб-разработки на сегодняшний день являются самыми популярными.

Фреймворк веб-разработки — это тот, который предоставляет шаблоны и шаблоны проектирования для создания веб-приложений, таких как Google, Yahoo, FaceBook, InstaGram, Twitter и т. д. Одними из самых популярных веб-разработок всех времен являются Ruby on Rails и Python’s Django, но что, если вы программист на GoLang?

Не волнуйся.

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

Давайте углубимся в это.

Платформы GoLang для веб-разработки

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

1.Джин-Гоник

Gin-Gonic — это мой личный выбор, если бы мне пришлось использовать фреймворк для веб-разработки, потому что он быстрый и имеет все функции, которые вам могут понадобиться в фреймворке для создания типичного веб-приложения «Создание, чтение, обновление, удаление» (CRUD).

  • Сайт: https://gin-gonic.com/
  • Звезды: 63k
  • Лицензия: Массачусетский технологический институт

2.БиГоу

Это самая популярная платформа для веб-разработки, используемая в Китае, просто взгляните на их невероятный список спонсоров, чтобы увидеть.

3.волокно

Чрезвычайно популярен среди тех, кто пришел из среды Node.Js Express. Настолько, что пост был обновлен, чтобы включить его.

  • Сайт: https://gofiber.io
  • Звезды: 24k
  • Лицензия: Лицензия Массачусетского технологического института

4.Ирис

Iris — невероятная платформа для веб-разработки GoLang, ориентированная на переносимость и кроссплатформенность. Таким образом, я бы использовал его, когда хотел взять веб-приложение и разбить его для запуска на AWS и Netlify в спешке.

4. Кратос

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

  • Сайт: https://go-kratos.dev,
  • Звезды: 19к
  • Лицензия: Массачусетский технологический институт

5.Ревель

Revel — это простой проект, который хорошо справляется с задачами parameter parsing, validation, session/flush и caching, поэтому, если они кажутся вам очень важными, выберите именно эту структуру.

  • Веб-сайт: http://revel.github.io
  • Звезды: 13к
  • Лицензия: Массачусетский технологический институт

6. Баффало

Хотя Buffalo не самый популярный в списке, мой второй фаворит в использовании. Он невероятно удобен для начинающих благодаря множеству полезных инструментов для генерации кода, доступных из коробки. Я бы рекомендовал использовать этот фреймворк, если у вас есть Ruby фон или вы только начинаете заниматься веб-разработкой.

  • Сайт: https://gobuffalo.io/
  • Звезды: 7k
  • Лицензия: Массачусетский технологический институт

Микросервисы GoLang Frameworks

Идеология микросервисов обычно используется с Docker и Kubernetes для создания устойчивых веб-приложений. Это невероятно популярный стиль дизайна в GoLang, поэтому существует ряд высоко оцененных фреймворков. Я включил три лучших ниже со ссылками на их проекты, чтобы вам было легче принять решение.

1.Эхо

Я бы использовал Echo, если вы хотите иметь Automatic TLS, HTTP/2 и используете парадигму проектирования RESTful API.

  • Звезды: 24k
  • Сайт: https://echo.labstack.com/
  • Лицензия: Массачусетский технологический институт

2.ГО-ноль

Я бы использовал Go-Zero, если вы хотите сэкономить время на написании кода, потому что он включает в себя удобный инструмент goctl cli для генерации кода для вас. Инструмент командной строки также может генерировать iOS, Android, Kotlin, Dart, TypeScript и JavaScript одним щелчком мыши!

  • Звезды: 21к
  • Сайт: https://go-zero.dev
  • Лицензия: Массачусетский технологический институт

3.го-микро

Я бы использовал go-micro, если бы аутентификация была большой проблемой для приложения, которое вы создаете. Аутентификация может стать огромным бременем для команды. Так что приятно иметь его интегрированным прямо из коробки.

Интерфейс командной строки — CLI Framework

Кобра

Cobra использовалась для создания интерфейсов командной строки для крупнейших технологий, написанных на GoLang, которые обеспечивают работу облака; kubectl, terraform, докер и многое другое.

Итак, поверьте, Cobra — это среда командной строки, которую вы захотите использовать при создании сложного инструмента CLI на основе GoLang.

Однако следует отметить, что стандартной библиотеки GoLang более чем достаточно для создания простого инструмента CLI.

Тем не менее, замечательно получить доступные функции прямо из коробки, используя фреймворк:

  • Простые подкоманды
  • POSIX-совместимые флаги
  • Вложенные подкоманды
  • Интеллектуальные предложения
  • Автоматическая генерация справки для команд и флагов
  • Автоматическое распознавание флага справки
  • Псевдонимы команд для изменения команд, не нарушая их
  • Отличная интеграция с пакетом Viper для 12-факторных приложений.

Попробуйте Cobra в следующий раз, когда решите создать инструмент командной строки.

Настольные приложения GoLang Framework

Вопли

Как правило, создание настольного приложения требует изучения совершенно другого языка, но не GoLang. Wails — это проект сообщества, который позволяет использовать GoLang не только для программирования настольных приложений, но и в целом является кросс-платформенным приложением.

Если это кажется запутанным, подумайте об Expo или Electron, которые делают то же самое, но с помощью JavaScript.

  • Звезды: 11к
  • Сайт: https://wails.io
  • Лицензия: Массачусетский технологический институт

Лично моя любимая комбинация для использования с WAILS — это язык Svelte в качестве внешнего интерфейса. На самом деле я выиграл хакатон, используя WAILS, чтобы создать настольное приложение, упрощающее управление DevOps для GitHub.

Статический веб-сайт GoLang Framework

Хьюго

Статический веб-сайт — это веб-сайт, который обычно работает без изменения содержимого при взаимодействии пользователя. Он идеально подходит для тех, кто хочет иметь блог или веб-сайт только по теме, не задумываясь о внутреннем коде. В GoLang есть один из самых быстрых инструментов для создания контента и управления им — HUGO.

Hugo — это именно то, что я использовал для создания FreeResumeScanner.com. Несмотря на то, что статический веб-сайт обычно может не иметь внутреннего кода, общий шаблон для статических веб-сайтов заключается в том, что лямбда-выражения используются в качестве внутреннего интерфейса, а не сервер, работающий круглосуточно и без выходных.

Наличие статического веб-сайта во внешнем интерфейсе, который использует вычисления только по мере необходимости, иногда называется Single Page Application или FullStack - Serverless.

Преимущества использования архитектуры одностраничных приложений заключаются в том, что вы экономите много денег — на самом деле FreeResumeScanner.com работает совершенно БЕСПЛАТНО для меня как хоста.

Если у вас есть идея приложения, но вы не хотите теряться в управлении сервером и стоимости, ознакомьтесь с Как использовать GoLang, Hugo и Lambda для одностраничного приложения, где я покажу вам, как именно создать FreeResumeScanner.com, чтобы что вы можете поменять его с вашей идеей.

Веб-скрейпинг GoLang Framework

Хороший веб-скрейпер может облегчить ваши усилия по сбору данных. А для энтузиастов GoLang стоит упомянуть только об одном.

Колли

Colly упрощает задачу, потому что он решает некоторые из самых больших проблем, с которыми вы столкнетесь при попытке собрать данные из Интернета, благодаря встроенным функциям:

  • Обработка файлов cookie и сеансов
  • Распределенный парсинг
  • Кэширование
  • Поддержка Google App Engine
  • Быстро (>1 тыс. запросов/сек на одном ядре)
  • Автоматические задержки запросов и макс. параллелизм на домен

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

Итак, в следующий раз, когда вы будете работать над проектом по анализу данных с помощью GoLang, попробуйте Colly на этапе сбора данных, если база данных недоступна.

Платформы GoLang для машинного обучения

Машинное обучение на других языках, таких как Python, R и Scala, невероятно просто, учитывая надежные платформы, созданные сообществами. К сожалению, машинное обучение в GoLang бесплодно по сравнению с ним. Но есть один хорошо известный фреймворк, который используется сообществом, и это Gorgonia.

ГОРГОНИЯ

В Gorgonia есть все необходимое, чтобы помочь вам создавать собственные алгоритмы машинного обучения с нуля. Он также имеет linear regression , multi-dimensional arrays и neural networks, доступные из коробки. Все три могут помочь вам начать работу, и если вам нужны какие-либо другие, возможно, стоит подумать о реализации своих собственных. Поскольку в GO 1.18 появились дженерики, это может быть проще, чем вы думаете.

Первоначально опубликовано на https://www.toul.io 21 сентября 2022 г.