个人苍穹外卖随笔

个人苍穹外卖随笔

大概花了一个多星期,也是成功把苍穹外卖完成了,不得不说还是学到了很多东西,写下来以供回忆以及进食后人吧…
代码资源这些在 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导致定位不准就是了。