2020-05-18日总结

随笔

今天初次接触前端,vue+vscode进行前端开发,说实话我对前端不排斥,但是我不想现在搞前端。但是公司前端人少,我们写后端的也要写简单的前端页面

我今天只是初步接触vue,还没理清个大概,我同事搞了几天的前端,今天卡在一个动态目录上。(我们都是接触很少的前段)

今天有趣的事情

  1. 对于动态目录的数据库设计,基本都是单表类,用一个parentId(父类id),进行关联,这种数据库设计师最简单的这几方法。

下面是简单的设计

id  主键
catalog_name  目录名称
parent_id  父母目录id
child_count  子目录个数
depth  当前目录深度

我接触无限级目录设计已经有两次了,两次设计都是这种方法,但是在准备中我找到了另一种数据结构。 motify preOrder tree 这种树形数据结构来设计无限级目录。
这种数据结构的优点就是查询速度快,缺点就是开发实现比较困难,需要自己在业务层编写复杂的代码,并组合成多级目录功能。

有空我会好好总结motify preOrder tree,将这种方法吃透,如果这种选择更好,我会将它作为自己的解决无限级目录代码库。

  1. 递归方法的使用

个人感觉递归方法的使用真的可以精简代码,而且也会让编程逻辑更加清晰。在操作多层是就要想到诋递归的思想,其实递归的思想来源于分治思想:如果一个问题能够拆分成多个结构类似的子问题,那就可以使用递归。

递归方法的设计很关键的一点就是能不能找到递归结束条件,在我们平时写递归函数是,第一行代码基本就是递归出口(也就是递归结束条件)。

 public boolean deleteById(String id) {
        if(id.length()>0){
            List<user> ids=findById(id);
            UserMapper.deleteById(id);
            ids.forEach(data->{
                deleteById(data.getId());
            });
        }
        return true;
    }
  1. 使用BeanUtils.copyProperties(fromObject,toObject)

功能:将fromObject的字段值复制到toObject
这个方法很好用,解决我们很多不必要的代码。但是有个小技巧,这两个对象的字段数量可能不一样,需要复制的字段名称要一样,这样才能复制。有了和这个方法,就不需要我们一个一个的get() set() 方法了。

你可能感兴趣的:(#,每日总结)