程序项⽬实训
⽂章⽬录
⼩程序项⽬培训实践周记
第⼀周周记
  第⼀周实训很快就过去了,这⼀周是整个实训的开始,我们知道了整个实训要完成的项⽬—⼩程序订餐系统,于是,我们这组便开始进⾏项⽬。
  我们整理项⽬资料,然后对各⾃的特长分好⼯,我主要负责⼩程序部分后端的任务。我觉得不管个⼈完成什么任务,都要对这个项⽬有所了解,同时还要处理好信息对等,互相需要沟通好,如有需求变化及时更改,有问题则⼀起探讨。出现问题要多百度多⾕歌,或在⽹上相关视频来学习,实训是⼀个学习的过程,这样会让⾃⼰学的更多。
  在这⼀周⾥,我们组先是完成了数据库的设计与建⽴,然后是建⽴和搭建云服务器。只能建⽴个⼈,在公众平台注册就可以了,可以关注我们没名字点餐,哈哈,不过现在还没有任何功能.
  然后是搭建云服务器,我买的是腾讯云的学⽣套餐,只要10元⼀个⽉,linux云服务器,着实把⾃⼰坑了⼀把。因为从来没有⽤过CentOs,不过不得不说,会⽤之后发现⽐windows快捷好⽤多了,不愧是linux,爱了爱了。为了搭建好运⾏环境,上⽹查了很多资料,弄了⼀天终于是搭建好了。
  这⾥贴上⼤佬的教程:
  做好这些之后,我们便开始分⼯完成⾃⼰的任务。对于⼩程序后台的编写,我是⽤springboot作为后端,我并没有学过springboot,只是了解过⼀些。那为了搭出这个后台,我上⽹查资料,了⼀些视频来学习。Springboot很快就搭建好了,但是⼩程序与springboot后台之间的数据交互这是⼀个⿇烦,⼩程序还没有做出来,并且根本不知道怎么数据交互,最后通过查资料,了解了数据交互的真相,并且通过postman这个软件来模拟前端进⾏测试,于是,我完成了后台的初步搭建。
第⼆周周记
  第⼆周实训,我们接着第⼀周的完成程度来继续做我们的项⽬。第⼀周我们只是基本把后台写完了,但是前端的⼩程序还没有怎么开始,于是,第⼆周,我还有负责⼩程序前端的⼈便着重开始⼩程序的制作。
  我是写后端的,为了让⼩伙伴能使⽤我的接⼝,我暂时⽤了内⽹穿透,并且把我的功能接⼝给了⼩伙
伴,⼩程序前端⽤的都是json格式的数据,但⼩程序的好处就是前后端格式不⽤特意转化,我后端只需要把数据封装进Map⾥,并且返回Map,前端就能直接使⽤我Map⾥⾯的数据。⽐如菜单列表,我把list封装进map⾥,并设置⼀个key,然后前端通过key直接就能使⽤这个list。这种前后端分离,并且不⽤特意转换数据格式省去了很多功夫,于是前后连接很容易就实现了。
之后就是登陆功能,登陆功能⽐较⿇烦,如果要使⽤登录的话,后台必须⽤前台传来的code到服务器换取个⼈标识openid和session_key,这样才能识别不同的顾客。不过通过百度,这个问题还是解决了。
  然后就是判断⼀个⽤户是否在登录状态。这个⽐web前端⿇烦,因为⼩程序没有cookie,不能把登录状态存⼊cookie,但办法总是有的,⼩程序虽然没有cookie,但是有storage,可以本地存储信息,再有就是redis,竟然可以限时缓存,就是设定数据存在的时间,就像session⼀样。于是,我就可以把数据先存⼊redis⾥,设定⼀个时间限制,然后再把redis⾥的数据存⼊⼩程序⾥的storage⾥⾯,判断登录状态就是判断storage⾥的数据在redis⾥是否存在,如果还存在,那么就还在登录,如果不存在,则需要重新登录。退出登录就把storage和redis⾥⾯的对应的数据删除就好了,再判断那⾃然就不存在了。
  登录过程我们还⽤了第三⽅短信验证接⼝,实现了⼿机号码登录功能。
  这个时候的⼩程序已经有点东西了,相信下⼀周功能就能基本完善了
第三周周记
  第三周的实训,对于项⽬的制作,已经接近尾声了。
  这周我们主要做⼩程序的购买,订单查询,还有评论功能,这些都不难,充其量就是数据库的增删查改,我们后端使⽤springboot以及mybatis架构。并且后端api已经都写好了,只需要调⽤就好了,但是页⾯的制作,还有js的编写,以及⼀些莫名出现的bug,还是花了三四天时间。
  对于⼩程序的购买功能,有个传递的结构参数就是购物车⾥商品信息,需要传递到⽀付页⾯和订单页⾯,⼩程序的app.js⾥⾯可以存储全局变量,于是我们在⾥⾯设置了⼀个结构体,当加购完成后就把数据传⼊这个全局变量,这样需要的页⾯就可以调⽤了。
食谱美食菜谱小程序
  还有⼀个问题就是,我们数据库的评论表没有时间字段,这导致前端不能显⽰评论的时间,于是,我想出了⼀个办法,就是在评论的时候,在字符串后⾯加上当时的时间,然后显⽰评论的时候,对从数据库取出的评论字符串进⾏处理,这让我知道了wxs⽂件,之后这个问题很好的解决了。不得不说,这个办法对于这种情况实在是太妙了。
  很快,这⼀周就过完了,⽽我们的⼩程序也全部完成了,虽然还有⼀些⼩bug,不过⼀个基本的雏形还是有的,想想还是有成就感的。