1 项目是用turbo框架(koalition+koa+node),其中koalition是美团基于koa开发的一套框架,koa是基于node的http轻量级框架,node主要用于前端和后端之间的中间层,将后端接口整合到一起,同时也能解决跨域问题(服务端不存在跨域问题)。
2 除了正常二期需求外,还使用了内部开发的离线开发系统。整个功能类似app shell,使用navigator.serviceWorker来完成离线存储,遇到的坑就是这功能必须运行在https协议上,而线下调试的环境都是http的,我先是自己申请了https的证书,后来发现它还需要第三方认证,而这是需要花钱的,所以这条路行不通了,而除了线上环境以外的test或staging环境也都是未认证的https,最后决定使用charles的map local功能,它可以截取浏览器或手机端发来的请求并转发到本地资源,换句话说就是浏览器请求某个url的资源时实际是请求到了本地的资源。我们将协议设置为https而实际请求的资源是我们本地的html,这样就搭建了一个https的测试环境。这里遇到的坑时https的地址必须经过第三方认证的,比如公司线上的地址,如果是自己随意写的地址是不能成功的,这块我还不太明白,可能需要再深入理解下https协议。
3 为方便开发,公司有一套内部容器专用的离线系统,在web使用时需引用相应js文件,然后指定到在portm配置好的json文件路径就完成了内部容器的离线存储功能,其中json配置文件就是配置哪些资源需要离线存储、存储时长以及其他存储的选项。这套系统用起来真的很方便,但其实是因为它把复杂的功能都封装了起来,觉得这里还值得更深入的研究下。
4 项目开发结束后应使用eslint来检查代码是否规范,待整理。
5 代码管理git基本功。pull request时有conflict如何处理: git checkout src; git pull origin des; 在自己分支上拉目标分支(如test)。此时无法拉成功因为有冲突,解决冲突之后 再add 和commit 并push到自己远端分支;然后再回到PR页面去merge即可。