Поскольку golang становится все более популярным, многие крупные и мелкие производители переходят на go. Особенно на рынке есть крупные платформы, использующие go, такие как ByteDance, Didi, Zhihu и другие проекты с высоким трафиком, которые доказали эффективность golang. Создание Go также приветствовалось Стороной А, и многие аутсорсинговые разработчики или аутсорсинговые компании начали использовать Go. Таким образом, Go также нуждается в относительно дружественной сети для разработки базовых фреймворков, облегчающих быстрое создание приложений. Заготовьте общие функции, и проект может напрямую развивать проектный бизнес.
быстрый предварительный просмотр Demo, существоватьGithub,GiteeОткрытый исходный код, Официальная загрузка исходного кода сообщества,Разработочная документация。Рамка поставляется в комплекте Разработочная документация и техническая поддержка обеспечивают быструю разработку проекта и повышают эффективность разработки разработчиков.
GoFlyоснован наGo+Vue
осуществленныйWebПрименить шаблон,Поддержка фронтэнда и бэкенда,Имеет полную аутентификацию, ограничение тока, JWT,Restful API, управление разрешениями аутентификации и другие функции.
Бэкэнд разработан на базе Golang и его основные особенности заключаются в следующем:
gin
выполнитьJWT
СертификацияCasbin
поставлятьвнешний интерфейсна основеVue
развивать,использоватьArcoDesign Библиотека компонентов
vite
Быстрая компиляцияecharts
less
,Уменьшите написание CSSОсновной интерфейс выглядит следующим образом:
Бэкэнд следует заMC
Архитектуравыполнить,Он относится к некоторым передовым практикам сообщества и аналогичен основной платформе PHP.,Подробности следующие:
GoGly Каталог внутреннего проекта
├── app //каталог приложения
│ ├── admin //Модуль приложения для управления серверной частью
│ ├── business //Модуль бизнес-приложения
│ ├── common //Общий модуль приложения
│ ├── model //операции с данными
│ ├── wxapp //Модуль апплета WeChat
│ ├── wxoffi //Модуль общедоступной учетной записи WeChat
├── bootstrap //Метод инструмента
├── config //Файл конфигурации
├── global //глобальные переменные
├── resource //Статические ресурсы
├── route //маршрутизация
├── runtime //Запускаем файл журнала
├── tmp //При разработке используется свежая горячая компиляция Генерировать временные файлы
├── utils //инструментарий
├── go.mod //Инструмент управления пакетами зависимостей
├── go.sum
├── gofly_single.sql //файл базы данных
├── main.go //основная функция
└── README.md //проектпредставлять
внешний интерфейсвыполнитьVue3
выполнить,Аналогично обычным проектам Vue
GoGly Каталог внутреннего проекта
├── config //Конфигурация
│ ├── plugin //инструмент
│ ├── utils //Публичная функция
│ ├── vite.config.base.ts //Базовый файл конфигурации
│ ├── vite.config.dev.ts //Разрабатываем файл конфигурации
│ ├── vite.config.prod.ts //Файл конфигурации пакета
├── public //Статические ресурсы Оглавление
│ ├── config.js //Файл динамической конфигурации — упакован и может быть изменен
├── src // Каталог исходного файла, написанный код в основном находится в этом каталоге.
│ ├── api //запрос API
│ ├── assets //Общедоступные статические ресурсы
│ ├── components //Публичные компоненты
│ ├── config //pro Конфигурация
│ ├── directive //Пользовательские инструкции
│ ├── hooks // функция перехвата
│ ├── layout //разметка кадра
│ ├── locale //Многоязычный пакет
│ ├── router //маршрутизация
│ ├── store //pinia Общий государственный репозиторий
│ ├── types //ts файл декларации
│ ├── utils //Публичный метод
│ └── views //Многостраничная папка
├── types //ts файл декларации
├── .env //Производственная среда
├── .env.development //Переменные среды разработки-среды
├── .env.production //Производственная переменные среды-среды
├── .gitignore //файлы фильтров git
├── babel.config.js //инструментарий
├── commitlint.config.js //Инструмент управления пакетами зависимостей
├── components.d.ts //Инструмент управления пакетами зависимостей
├── index.html //Вводим html-файл
├── package.json //Команда Конфигурация и файлы управления пакетами
├── README.md //проектпредставлять
└──tsconfig.json //ts Конфигурация
Ограничение токаиспользовать Понятноgolang.org/x/time/rate
поставлять Алгоритм сегмента токенов,справиться с пиковым трафиком,Управление запросами может быть реализовано на уровне отдельных IP-адресов и серверов.
Что требует особого внимания, так это то, что Ограничение тока Следует различать длинные соединения и короткие соединения.,напримерWeave
серединавыполнить Понятно容器exec
интерфейс,Войдите в контейнер через Websocket.,Это не должно влиять на другие обычные запросы.
Что касается внешнего интерфейса, достаточно немного основ.,ВыбиратьVue3
,Главным образом потому, что документация относительно полная и подходит для новичков.。UIна основе ПонятноArco
,Главным образом потому, что страница пользовательского интерфейса имеет хороший опыт,В конце концов, фронтенд-уровню команды ByteDance можно доверять.,в настоящий моментVue3
более зрелый,Библиотека пользовательского интерфейса Arco богата.,Если у вас его нет, просто добавьте немного.
1.База данных
Рекомендуется установить MySQL версии 8 и выше.
2.Бэкэнд
Установите свежее горячее обновление — компилируйте во время разработки
go install github.com/pilu/fresh@latest
Запустить сервис Go
fresh
3. Передняя часть
Используйте Arco в первый раз для инициализации команды:
npm i -g arco-cli или yarn i -g arco-cli
Проект инициализации
npm run install или yarn install
#Запустить проект
npm run serve или yarn serve
Мы использовали эту структуру в нескольких проектах, чаще всего в медицинском проекте, который мы разработали три года назад, чтобы противостоять эпидемии и одновременным очередям и назначениям на вакцинацию. А безопасность и стабильность могут выдержать испытание временем. Сегодня я поделюсь этим здесь, надеюсь, это будет полезно всем.