2019.10月总结

转眼已经11月份了,写下最近学到的一些知识以及这个月需要学习的知识,虽然出来实习后时间可能比较少,写博客的频率比较低,但是一个月还是必须要总结一下的:

1. DO、DTO、VO、POJO的区别

参考阿里巴巴代码规范:

  • DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。
  • DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。
  • BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。
  • VO( View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。
  • POJO( Plain Ordinary Java Object):在本手册中, POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。
  • Query:数据查询对象,各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。

领域模型命名规约:

  • 数据对象:xxxDO,xxx即为数据表名。
  • 数据传输对象:xxxDTO,xxx为业务领域相关的名称。
  • 展示对象:xxxVO,xxx一般为网页名称。
  • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。
2.代码规范

代码一定要规范,这一点可以参考阿里巴巴代码规范,总结的还是很详细的,通读一遍,会收获许多,最近我也是一直嫌弃自己的代码怎么可以这么丑,而且无章可循,就比如说

  • 注释,一般接口、类、枚举类的属性、类属性、类方法这些都是需要注释的,不然不好维护;
  • 能简洁就简洁,比如说能使用lambda表达式那种就使用那种,使人看起来很舒服;
  • 避免踩坑,这里就要靠经验,比如说不要在ArrayList.foreach里面进行add和remove操作,会报异常,应该使用迭代器;
  • 注意时间复杂度,SQL语句编写要规范。
  • 谷歌编码规范
  • 晓风轻技术小站
3.Git的学习

对于Git的学习还是实操比较好,可以参考官方文档。crison也跟我们培训了Git的常规使用以及原理;

  • Git的分支操作其实就是基于链表来实现,链表切换分支可以达到O(1)的时间复杂度,切换分支时就把Head指针指向哪个分支;

  • Git不保存文件的内容,Git只存储变更记录。

  • git init --bare 跟 git init 的区别:
    git init --bare 只是new 一个裸露的.git文件,不能编辑文件的内容,只有.git文件
    git init 的话除了有.git文件外,还可以记录文件内容

  • Git的远程仓库也可以在本地,不一定只在远端;

  • .git文件包含以下内容:
    在这里插入图片描述

4.中台战略思想

我个人理解的中台就是说把一些公共的东西抽取出来,不要做重复的东西。大中台,小前台,简便开发。
可以参考以下文章:
阿里中台思想
ThoughtWorks洞见

5. Mybatis-Plus 的常规使用

最近由于业务驱动,持久层的框架是Mybatis-Plus,花一波时间再去好好了解以下,真的,官方文档就足够,学什么都是如此,可以站在巨人的肩膀上学习。

使用这些主要是进行单表的简单操作,其中还包含一些lambda表达式。使用lambdaQuery相对更好一点,不用硬编码,以后比较好维护。
在这里插入图片描述

6. PostMan的使用
  • 适当建立工作区
    在这里插入图片描述
  • 建立收藏夹,以后方便进行测试
    在这里插入图片描述
  • 适当使用变量
    在这里插入图片描述
    这样在路径中就可以通过{{url}}、和{{token}}来获取值,这样显示的就很清楚。
    在这里插入图片描述
7.深拷贝和浅拷贝
  • 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝
  • 深拷贝: 对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。

BeanUtils.copyProperties是一个浅拷贝方法,复制属性时,我们只需要把DTO对象和要转化的对象两个的属性值设置为一样的名称,并且保证一样的类型就可以了。如果你在做DTO转化的时候一直使用set进行属性赋值,那么请尝试这种方式简化代码,让代码更加清晰!

  • org.springframework.beans.BeanUtils.copyProperties(source, dest) 将source复制给dest
  • org.apache.commons.beanutils.BeanUtils.copyProperties(dest,source) 将dest赋值给source

使用org.apache.commons.beanutils.BeanUtils对复杂对象的复制是引用,这是一种浅拷贝,org.apache.commons.beanutils.BeanUtils下的BeanUtils对象拷贝性能太差,不建议使用。

spring下的BeanUtils也是使用 copyProperties方法进行拷贝,只不过它的实现方式非常简单,就是对两个对象中相同名字的属性进行简单的get/set,仅检查属性的可访问性。

对于以上两种最好写一个工具类来进行赋值,不然某天改代码的话会很麻烦。

TODO List
  • Docker(命令、原理、用途)
  • K8s(原理可参考文档)
  • Linux(一些不常用的命令也要会)
  • Java8(Lambda表达式)
  • Kafka

路漫漫其修远兮,吾将上下而求索,感觉还是很多东西要学哈😂,师父领进门,修行还是得靠个人,有幸的是公司很多大牛可以教你,不懂就问,收获颇丰富。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值