个人苍穹外卖随笔
大概花了一个多星期,也是成功把苍穹外卖完成了,不得不说还是学到了很多东西,写下来以供回忆以及进食后人吧…
代码资源这些在 github,欢迎捧场
关于规范
不得不说,苍穹外卖代码极为规范:
- controller层不能直接接触Service层,得用接口来衔接(直接都是直接塞controller里面的)
- 对于SQL语句,比如查询菜品id时语句最好写成返回一整个再提取,便于后序维护和拓展
- 不直接暴露yml文件,而是通过启用一个yml-dev来专门存储地址密码等敏感信息
- 项目结构极好,各种类分类很规范,尤其是DTO,VO,Entity的使用非常规范(我在CSDN写过一篇介绍)
- 总而言之,作为一个入门项目,非常不错
关于数据库
苍穹外卖并没有采用直接在表中建外键来约束一致性,而是通过逻辑外键,也就是额外在后端额外处理,为什么呢?
对于外键,数据库没=每执行增删改都要去检查外键,会对其速度造成极大的影响,所以这种活就给后端来干了。
对于id,其实我个人并不认可其中直接自增的做法,感觉采用uuid或者雪花算法会更好
(ps:被拷打了,雪花算法更消耗内存,一般运用于分布式)
关于结构
个人认为,所有项目都能采用类似的common,pojo,server分层。
- common用来存放一些工具类,常量类,异常类
- pojo用来存放DTO,VO,Entity
- server用来存放controller,service,serviceimpl等涉及到web交互的类
这样的话项目就会非常清晰易懂
关于前端,小程序
平心而论,前端还不错,但是小程序就不怎么样了,并没有实现支付方式的变化,写死了是微信支付,对于不懂前端的想要diy比较困难。
后端关于提交订单类的方法也存在问题,并没有支持更多payMethod!但自己diy一下也能实现。
由于现在小程序审核很严,用个人身份不能申请到微信支付权限,也不能上架(涉及外卖),我手动跳过了支付部分
所以在本地测试一下就得了,假装自己已经部署了罢
总结
总而言之,虽然都说黑马项目狗都不如,但是对于入门者来说苍穹外卖还是非常不错的,能对于项目结构,开发周期,进程有一个初步的认识。
后面会做一下黑马点评什么的。
代码附上,百度地图ak还能用,虽然不知道什么bug导致定位不准就是了。