Alloy:Go语言Web应用开发的利器

Alloy:Go语言Web应用开发的利器

alloy Boilerplate for creating web applications in Go (golang) alloy 项目地址: https://gitcode.com/gh_mirrors/alloy1/alloy

项目介绍

Alloy 是一个为使用Go语言创建Web应用程序而设计的启动模板。它并非旨在成为一个完整的Web框架,而是一个集合了多种实用库和包的集合,为开发者提供了一个合理的起点。Alloy的灵感来源于作者在构建其最新Side Project时的经验,从标准库开始,逐步添加了如数据库调用(sqlx)、迁移(pressly/goose)和发送邮件(gomail)等常见任务的推荐包。这个模板正是从该Side Project中提取出来的。

Alloy使用Webpack来管理前端资源(Javascript和CSS),因此需要安装Node.js和NPM。此外,Alloy还包含一个独立的“管理面板”,作为CMS用于添加页面、管理用户等。

项目技术分析

Alloy的核心技术栈包括:

  • Go语言:作为后端开发语言,Go的高效和简洁使其成为Web应用开发的理想选择。
  • Webpack:用于前端资源的管理,确保前端代码的模块化和高效打包。
  • Postgres:当前版本使用Postgres作为数据库,未来将支持更多数据库。
  • Go-chi/chi:一个轻量级的HTTP路由器和URL匹配器,用于处理路由。
  • Gorilla工具包:包括sessions、csrf和securecookies,提供会话管理和安全功能。
  • sqlx:简化数据库操作,提供更便捷的SQL查询接口。
  • pressly/goose:用于数据库迁移管理,确保数据库结构的版本控制。

项目及技术应用场景

Alloy适用于以下场景:

  • 快速原型开发:开发者可以利用Alloy快速搭建Web应用原型,减少从零开始的时间成本。
  • 中小型Web应用:Alloy的轻量级和高效性能使其非常适合中小型Web应用的开发。
  • 学习Go语言:对于想要学习Go语言的开发者,Alloy提供了一个实际项目的参考,帮助理解Go在Web开发中的应用。

项目特点

  • 模块化设计:Alloy的结构清晰,模块化设计使得开发者可以轻松扩展和维护。
  • 前端资源管理:通过Webpack管理前端资源,确保前端代码的高效打包和加载。
  • 数据库迁移支持:使用pressly/goose进行数据库迁移管理,确保数据库结构的版本控制。
  • 安全特性:集成了Gorilla工具包,提供会话管理和CSRF保护等安全功能。
  • 开发友好:Alloy提供了开发服务器,支持热重载,开发者可以实时看到代码更改的效果。

安装与使用

  1. 克隆仓库

    git clone https://github.com/olliecoleman/alloy
    cd alloy
    
  2. 安装依赖

    glide install
    npm install
    
  3. 设置环境变量 创建并设置以下环境变量:

    PORT=1212
    ENVIRONMENT=development
    HOST=localhost
    DATABASE_URL=XXX
    TEST_DATABASE_URL=XXX
    MIGRATIONS_DIR=app/migrations
    CSRF_KEY=XXX
    HASH_KEY=XXX
    BLOCK_KEY=XXX
    SMTP_HOST=127.0.0.1
    SMTP_PORT=1025
    SMTP_USERNAME=__REPLACE__
    SMTP_PASSWORD=__REPLACE__
    MAILER_FROM=XXX
    MAILER_HOST=http://localhost:1212
    ASSET_URL=http://localhost:1212
    
  4. 启动开发服务器

    go install
    alloy dev
    

现在,您可以打开浏览器并导航到http://localhost:1212,查看Alloy的运行效果。任何对.go文件的更改都将被自动检测并重新编译。

项目结构

├── README.md
├── app
│   ├── handlers
│   ├── mailer
│   ├── migrations
│   ├── models
│   ├── router
│   │   ├── middleware
│   │   └── router.go
│   ├── services
│   │   ├── db.go
│   │   └── session.go
│   ├── templates
│   │   ├── admin
│   │   ├── layouts
│   │   ├── mailer
│   │   ├── pages
│   └── views
├── assets
│   ├── fonts
│   ├── images
│   ├── js
│   └── scss
│       ├── admin
│       ├── frontend
│       └── frontend.scss
├── cmd
├── testutils
├── glide.yaml
├── main.go
├── package.json
├── refresh.yml
└── webpack.config.js

截图展示

Home page
Contact page
Dashboard
Dashboard

联系与支持

如果您有任何问题或建议,欢迎通过电子邮件或GitHub Issue联系作者。我们也非常欢迎您的建议和Pull Request。

Oliver Coleman
coleman.oliver[at]icloud[dot]com
https://www.growthmetrics.io

alloy Boilerplate for creating web applications in Go (golang) alloy 项目地址: https://gitcode.com/gh_mirrors/alloy1/alloy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倪澄莹George

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值