基于 Beego 开发的在线问答系统

file

介绍

基于 Beego + Vue 开发的在线问答系统。

功能

  • [x] 邮箱注册
  • [x] 邮件密码找回
  • [x] 会员邮件激活
  • [x] markdown内容提问和回答
  • [x] XSS安全过滤
  • [x] Vue前端小组件
  • [x] 完善的会员功能体系
  • [x] 后台前后端分离
  • [x] API接口
  • [x] 程序/数据库定时备份
  • [x] ENV环境配置
  • [ ] 单元测试

依赖

介绍
github.com/astaxie/beego Beego框架
github.com/go-sql-driver/mysql Mysql库
github.com/russross/blackfriday Markdown解析库
github.com/joho/godotenv ENV文件读取
github.com/dchest/captcha 图形验证码

早在几个月前就着手开始学习 GO 语言了,无闻的视频也看完了,自己也买了两本关于 GO 语言的书籍,也都看了部分,刚开始的时候虽然有 PHP 的编程基础学习新的的语言并不是很累,掌握也很快,但是具体到学习 GO 之后用来干嘛一直很困惑,于是,最终决定还是得从最简单写项目开始,于是 GOA 的项目就诞生了. GOA 的项目刚开始的时候只是在 runoob 刷了下 go 语言的基础就编写了,然后停滞了一段时间,之后再刷完无闻的课程之后又开始重新着手编写 GOA,跌跌撞撞下来 GOA 总算是完成了测试版本。整个项目开发下来的话,对 go 语言的 web 开发算是有了一定的了解。但是毕竟出身于 PHP 并热衷 Laravel,所以在 GOA 的项目当中可以看到很多 Laravel 的影子,其中包括:

  • ENV 的文件配置
  • views/emails 下的邮件模板
  • views/assets 下的前端文件组织结构和 laravel5.6 的 resource/assets 基本一样(5.7版本改了层级)
  • 与 Laravel-mix 相似的 npm watch/dev/build

这里不得不吐槽一句,beego 开发 web 项目是真的慢 :cry: 。

个人在这里感觉 go 语言的扩展包生态没有 php 的好,不知道是不是我对 GO 了解的不多还是事实的确是这样?至少我个人不知道在哪里才能找到那些可以复用的扩展包,好歹 PHP 有个 packagist.org 是吧。这不得不吐槽下,在做网站数据的自动备份的时候,开始自己并不知道 GO 已经有了 https://github.com/mholt/archiver 这个较为完善的压缩扩展库,自己还是傻傻的重复造轮子,写了一个自动 zip 压缩备份的库,浪费了较多的时间。不过刚开始的重复造轮子是的对 GO 的基础有了更深入的了解,像这次的网站压缩备份,对 GO 语言的文件目录系统的库和 zip 压缩库都有了新的认识,也算是值得付出的一件事情了。

项目地址:https://github.com/Qsnh/goa

本作品采用《CC 协议》,转载必须注明作者和本文链接
开源教育系统https://meedu.vip
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 8

支持一波,已 star

5年前 评论
小滕

@丁海军 多谢支持 :heart:

5年前 评论
小滕

@aimerforreimu 多谢支持 :heart:

5年前 评论

go get github.com/Qsnh/goa 我拉代码十几分钟不动,有什么办法快点?

是不最后编译成一个可执行文件,不需要其他依赖就能跑?

5年前 评论
小滕

@lovecn 是的,go build编译生成可执行文件就可以直接运行了,不过还需要.env文件模板视图目录和static目录,这些都是静态资源的文件。很慢的话可能是因为你网络的原因。

5年前 评论
panco

没意义,go不是这么用的

5年前 评论
小滕

@panco 是的,不过学了go之后一直不知道干嘛,自己比较熟悉web开发,就捡熟悉的来了

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!