为了账号安全,请及时绑定邮箱和手机立即绑定

搞不定抽奖系统的技术不是一个好程序员(2)

标签:
Go 设计 架构

11月2日,抽奖系统开发的第二天。

昨天做的系统设计,总还是觉得有些地方不太完善,但也说不上来有什么地方不对劲,越想越是没头绪。算了,还是不想设计的问题了,继续开发的工作吧。技术对自己的设计多少还是有些不够自信啊。

第二天的任务是把抽奖系统的项目代码搭建起来。这也是非常关键的基础性工作啊。正所谓,好的开始就是成功了一半。

以前用PHP或者Java都有成熟的框架,而且框架都会有严格的要求,或者会自动生成项目基础代码,只要按照框架要求来搭建项目就好了,再把一些公共的类库引入进来也就差不多了。

可是现在,Go语言开发,没有积累呀,一切都要重头开始。

还好免费课《iris+xorm Go语言开发球星库》有很详细的介绍,也是一个很完整的项目了。

那么,这里也是可以参考借鉴了。

首先是项目的代码目录搭建

这里就要充分的考虑到项目代码的构成,目录结构只是代码结构的一个归类整理,好的目录结构,也就可以让项目代码更加清晰明了,减少歧义。

好吧,下面就来考虑这个代码结构的问题。

配置文件,放在 /conf 目录。

公共类库代码文件,放在 /comm 目录。

数据源的封装类,放在 /datasource 目录。

数据库操作的类库,放在 /dao 目录。

数据操作的封装类,放在 /services 目录。

数据模型类,放在 /models 目录。

Web应用相关的就都放在 /web 目录。

然后,在Web应用里面,还有很多东西,所以,就可以都放在 /web 目录下面了。比如: 

  • 业务逻辑处理类 /web/controllers 

  • 公共静态资源文件 /web/public

  • URL路由规则设置 /web/routes

  • 页面模板文件 /web/views

  • 业务中间件 /web/middelware

  • 模板上的实体对象 /web/viewmodels

  • 业务逻辑中的一些公共代码封装 /web/utils

还有,Go程序需要有一个 func main() 主函数,这个主函数的代码也放在 /web 目录下面吧,方便部署的时候, go build main.go 生成的可执行程序,连同 /web/public 和 /web/views 这些文件,一起打包部署到线上去。

在主函数中,会要做很多关于启动的初始化相关的事情,这些事情还挺多的,单独封装提取出来,放在 /bootstrap 目录里面。

这么一整理,感觉做一个项目,也确实是不简单,还没有写一行代码,单独一个项目的代码框架,已经有这么多的目录规划出来了。

下面再整理下这些目录结构:

  • /bootstrap

  • /comm

  • /conf

  • /dao

  • /datasource

  • /models

  • /services

  • /web

    • /controllers

    • /middleware

    • /public

    • /utils

    • /routes

    • /views

上面这些目录结构应该就差不对多了,可能后面根据需求还会有些增加,比如:test 目录放测试代码,有遇到,需要了再来处理就行了。

核心代码开发

这里要准备的东西有点多啊,一天25个小时也是搞不定啊 :( 

像 /comm 里面的公共类,处理时间格式化、生成签名、加密解密、字符串过滤、数据类型转化、文件路径验证、Md5、随机函数等,都是非常基础的代码。这些公共方法几乎每个项目都要用到,从0开始真是力不从心啊。

像 /datasource 里面对数据库、对redis的初始化、执行方法封装,也是需要有针对性的封装才好,原生裸的类库用起来还是有些重复代码。

上面 comm, datasource 还是很通用的核心代码,更多的是关于业务的数据处理, dao, services 这些核心代码,工作量不是一点点大啊。

技术心声

做到这里,技术感觉有些绝望了,后悔这个规划太草率,后悔当初答应做这个项目了。

但是,这个时候找产品、找运营也是帮不上忙了,找老板,也没法说半途而废啊。不是自己约的炮,被他们逼得,也一样是下不了台啊。

技术的无力感像窗外的雾霾一样,在无限蔓延中。

时间还在滴答流淌,技术手中的键盘也一直在劈啪作响。今天的夜很长,也有点冷。

老师总结

现在做技术开发的很多,但是靠谱的人依然很少。

靠谱,从开始的规划,从做事的每一天,从承诺的结果中一点一滴积累而来。

而靠谱的技术开发,学习和实践的积累非常重要,尤其是面对一个新的领域,要快速学习掌握,要站在巨人的肩膀上成长,才能有更快的速度和高度。

很多基础性的工作,哪怕是业务相关的代码,也是有很多可以参考学习的地方。在需要的时候临时去找、临时去学,其实已经慢了一步,如果能够在当前,在现在,在工作,在学习之余,有更多的尝试和探索,有更多的实践和积累,那么,新的任务、新的领域,就是新的机会,就是一个更好证明自己才是最靠谱的机会。

学习《Go抽奖系统》实战课程,不仅有实战的经历,连项目代码都免费咯。

上一篇《搞不定抽奖系统的技术不是一个好程序员(1)

下一篇《搞不定抽奖系统的技术不是一个好程序员(3)

点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
1.7万
获赞与收藏
2252

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消