8月14-1月6
体会总结:
1.微服务,最大的特点就是独立自治,为每一个不同功能的项目都可以创建一个服务,在实际开发中这些项目也可以分配给不同的开发人员进行并行开发,提高开发速度
2.注册中心,若是服务之间不需要功能的调用,那么这注册中心不要也罢,可是是要的,比如定单调用库存的服务,所以需要一个注册中心来实时感知这些服务的位置,这样别的服务想要调用它的时候,只需要从注册中心获取地址列表,然后给对方发送请求就行
3.配置中心,这点是很有必要的,无论是我们以前的单体应用还是现在的微服务,如果每次修改配置文件,然后打包上传然后重启服务,这都是极其麻烦的,使用配置中心,将配置搬到配置中心中来然后每次修改配置后,服务自动更新用到最新的配置
4.远程调用,这里在springcloud中用的feign,(1)导依赖 (2)前提还要先把服务注册到注册中心,我们这里用的nacos很方便,只需要记得配置注册中心的地址,以及配置应用的名字,(3)还要记得在启动类上加服务发现注解与开启远程调用注解,(4)写接口,以指定调用哪个服务的哪个请求,参数在传输过程中都是以json进行传输的,接收时只需要参数类型声明为兼容该json的类型即可,类型没必要完全相同
5.网关,所有的请求都发给网关,由网关代理发给其它服务,接下来我们就可以在网关处做很多统一功能设置,由于前端后端跨域,我们这就做了一个跨域处理,统一配置跨域,这样我们就不用在微服务的各个位置进行跨域的配置,后面还会在网关中用到各种强大的功能
6.springboot2.0, 这里好像除了一些配置及依赖我们没有体会到springboot的啥变化,实际上相对于spring5,springboot2.0引入的一个最大的变化就是React (反应式编程)给我们带来web开发中的webflux,这个可以非常容易的给我们创建一个高性能高并发的web应用,只是现在还没用到,除了个跨域的处理但是也看不出来啥区别
7.springcloud, 现在除了feign的远程调用功能,其它内容都还没涉及
8.Mybatis plus, Mybatis Plus Generator:同样为苞米豆开发,比Mybatis Generator更加强大,支持功能更多,自动生成Entity、Mapper、Service、Controller等 当然这里我们直接用的开源项目renren-generator生成的,他就是针对前者的一个改版
他还提供了一些很有意思的插件,比如SQL性能监控、乐观锁、执行分析等这里也还没使用到
记住:MP的宗旨是简化开发,但是它在提供方便的同时却容易造成代码层次混乱,我们可能会把大量数据逻辑写到service层甚至contoller层中,使代码难以阅读。凡事过犹不及,在使用MP时一定要做分析,不要将所有数据操作都交给MP去实现。毕竟MP只是mybatis的增强工具,它并没有侵入mybatis的原生功能,在使用MP的增强功能的同时,原生mybatis的功能依然是可以正常使用的
9.Vue 这里就不多说,双向绑定,用过的都说好,之前用过angular已经觉得挺好用了,现在用vue感觉学习使用门槛更低
10.阿里云对象存储 这里 用的是根据一些配置信息发送请求申请开通,拿到权限然后根据别人的接口文档SDK来进行操作,后面很多
地方使用别的第三方服务的流程也是这样
11环境,这里使用linux+docker docker内安装各mysql,redis等,只是这里创建linux虚拟机的时候用的一种快捷方式 vagrant,直接
vagrant init centos7 就可以创建一个虚拟机,启动虚拟机直接vagrant up就启动了,连接直接vagrant ssh 就好了,关于逆向工程项目
renren-generator 可以生成前后端各种文件,这样可以看到一个趋势,后面crud程序员将慢慢不再需要做了,要做的主要是高并发功能
12.开发规范,与前端交互的对象定义VO,服务服务之间传输的参数定义TO,然后@data可以自动生成get set @Slf4j可以让我们轻松记录日志 等等,规范提高了代码的质量,遍历了代码阅读与编写