基于go的二维码签到系统


公司最近在搞go语言学习小组,于是3个人一起组队,做了一个简单的签到系统, 见链接:

https://github.com/suoluoji/signIn


0.模块组成

db模块、go-server模块,html文件模, 二维码制作

db模块负责和数据库的交互,封装起来,做一些简单的insert/update工作

go-server模块:本来想用 https://github.com/go-martini/martini 这样的web框架,组内人有不同意见,于是保留

html文件模块:一些页面相关的东西在里面

说明:这个里面有很多东西可以改进的地方那个,比如db从配置文件中读取,而不应该写在代码中;webserver模块的性能测试,可以看看go的web性能;db模块可以封装的更好点等等,后续在慢慢改进吧

1. db模块介绍

1.1 db driver选择
go相对与其它语言的,感觉driver模块并不是特别成熟,许士伟在《go语言编程》中说七牛的整体框架都基于go搭建的,真希望有天他们能开源出来,哈哈,题外话,暂时略过。
mymysql与go-mysql-driver性能比较 这篇文章中详细比较了几个方面,可以看出go-mysql-dirver的对于使用者并不是特别的友好(自我感觉),主要一点就是select的scan操作比较繁琐,这点mymysql的查询结果直接支持map操作要好很多,当然,最后还是选择了go-sql-driver,受这篇文章影响较多,下来可以详细研究下两者的实现方式,在做具体的分析

1.2  代码介绍及pkg的封装
在dao中定义了一个U serInfo的struct,有Username, Phone, Id,这里之所以大写研究过go的应该清楚,如果struct中的变量名是小写开头的,在模块外是例外,当然test不算的;
同行做了一个简单的封装,把 *sql.DB隐藏在UserDB中,在模块外是不可见的。

为了测试这个模块,引入了testing的功能,对 GetUser/ SaveUser/ SaveSigninLog几个功能做了简单的测试,事实证明,函数确实有点小的问题,  dao_test..go代码如下:
 
封装的pkg的几个步骤如下:
go build dao
go test  dao
go install dao
这样,在我们的pkg目录下就会发现有dao.a文件生成(这点真是麻烦。吐槽一下 。


更新了好久竟然没有更新完毕,好吧,最近比较忙,今天又要开始使用celery了,去了解下rabbitmq 和redis的一些使用吧






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值