вступление
Фреймворк — это, как правило, самоуверенный способ создания чего-то, что разработчик или группа разработчиков создали и поделились с миром. Фреймворки веб-разработки на сегодняшний день являются самыми популярными.
Фреймворк веб-разработки — это тот, который предоставляет шаблоны и шаблоны проектирования для создания веб-приложений, таких как 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.БиГоу
Это самая популярная платформа для веб-разработки, используемая в Китае, просто взгляните на их невероятный список спонсоров, чтобы увидеть.
- Сайт: https://beego.vip
- Звезды: 29к
- Лицензия: Apache- 2.0
3.волокно
Чрезвычайно популярен среди тех, кто пришел из среды Node.Js Express. Настолько, что пост был обновлен, чтобы включить его.
- Сайт: https://gofiber.io
- Звезды: 24k
- Лицензия: Лицензия Массачусетского технологического института
4.Ирис
Iris — невероятная платформа для веб-разработки GoLang, ориентированная на переносимость и кроссплатформенность. Таким образом, я бы использовал его, когда хотел взять веб-приложение и разбить его для запуска на AWS и Netlify в спешке.
- Сайт: https://www.iris-go.com
- Звезды: 23к
- Лицензия: BSD-3-пункт
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
, если бы аутентификация была большой проблемой для приложения, которое вы создаете. Аутентификация может стать огромным бременем для команды. Так что приятно иметь его интегрированным прямо из коробки.
- Звезды: 19к
- Сайт: https://github.com/go-micro/go-micro
- Лицензия: Апач-2.0
Интерфейс командной строки — CLI Framework
Кобра
Cobra использовалась для создания интерфейсов командной строки для крупнейших технологий, написанных на GoLang, которые обеспечивают работу облака; kubectl, terraform, докер и многое другое.
Итак, поверьте, Cobra — это среда командной строки, которую вы захотите использовать при создании сложного инструмента CLI на основе GoLang.
- Сайт: https://cobra.dev
- Звезды: 29к
- Лицензия: Апач-2.0
Однако следует отметить, что стандартной библиотеки 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.
- Звезды: 62к
- Сайт: https://gohugo.io/
- Лицензия: Апач-2.0
Hugo — это именно то, что я использовал для создания FreeResumeScanner.com. Несмотря на то, что статический веб-сайт обычно может не иметь внутреннего кода, общий шаблон для статических веб-сайтов заключается в том, что лямбда-выражения используются в качестве внутреннего интерфейса, а не сервер, работающий круглосуточно и без выходных.
Наличие статического веб-сайта во внешнем интерфейсе, который использует вычисления только по мере необходимости, иногда называется Single Page Application
или FullStack - Serverless
.
Преимущества использования архитектуры одностраничных приложений заключаются в том, что вы экономите много денег — на самом деле FreeResumeScanner.com работает совершенно БЕСПЛАТНО для меня как хоста.
Если у вас есть идея приложения, но вы не хотите теряться в управлении сервером и стоимости, ознакомьтесь с Как использовать GoLang, Hugo и Lambda для одностраничного приложения, где я покажу вам, как именно создать FreeResumeScanner.com, чтобы что вы можете поменять его с вашей идеей.
Веб-скрейпинг GoLang Framework
Хороший веб-скрейпер может облегчить ваши усилия по сбору данных. А для энтузиастов GoLang стоит упомянуть только об одном.
Колли
- Сайт: https://go-colly.org/
- Звезды: 17,7 тыс.
- Лицензия: Апач-2.0
Colly упрощает задачу, потому что он решает некоторые из самых больших проблем, с которыми вы столкнетесь при попытке собрать данные из Интернета, благодаря встроенным функциям:
- Обработка файлов cookie и сеансов
- Распределенный парсинг
- Кэширование
- Поддержка Google App Engine
- Быстро (>1 тыс. запросов/сек на одном ядре)
- Автоматические задержки запросов и макс. параллелизм на домен
Каждая из этих функций помогает ослабить защиту от ботов с веб-сайтов. Несмотря на то, что многие крупные технологические компании очищают веб-сайты, некоторым из них не нравится, когда это делают другие, и они пытаются предотвратить это. Но вышеперечисленные функции служат для обхода усилий по контролю ботов.
Итак, в следующий раз, когда вы будете работать над проектом по анализу данных с помощью GoLang, попробуйте Colly на этапе сбора данных, если база данных недоступна.
Платформы GoLang для машинного обучения
Машинное обучение на других языках, таких как Python, R и Scala, невероятно просто, учитывая надежные платформы, созданные сообществами. К сожалению, машинное обучение в GoLang бесплодно по сравнению с ним. Но есть один хорошо известный фреймворк, который используется сообществом, и это Gorgonia.
ГОРГОНИЯ
- Звезды: 4,6 тыс.
- Сайт: https://gorgonia.org
- Лицензия: Апач-2.0
В Gorgonia есть все необходимое, чтобы помочь вам создавать собственные алгоритмы машинного обучения с нуля. Он также имеет linear regression
, multi-dimensional arrays
и neural networks
, доступные из коробки. Все три могут помочь вам начать работу, и если вам нужны какие-либо другие, возможно, стоит подумать о реализации своих собственных. Поскольку в GO 1.18 появились дженерики, это может быть проще, чем вы думаете.
Первоначально опубликовано на https://www.toul.io 21 сентября 2022 г.