• 项目经验总结


    1,每个代码行数要尽量少,易于理解,对于比较长的代码,要尽量根据业务进行分解。

    如下面代码:

    View Code
    @Override
        public Domain addDomain(Domain domain) throws ServiceException {
            if(domain.getName()==null || "".equals(domain)){
                dosometing();
            }
            if(domain.getXXX()){
                dosometing();
            }
            ...
            
            if (StringUtil.isStringAvaliable(domain.getIdCardNo())) {
                domain.setBirthday(xx.parseBirthday(domain.getIdCardNo()));
            }
            
            domain.setXX(xx);
            
            return domainDao.addDomain(domain);
        }

    分解后应该为:

    View Code
    @Override
        public Domain addDomain(Domain domain) throws ServiceException {
            validate(domain);
            fillPrperties(domain);
            return domainDao.addDomain(domain);
        }

    分解后应该为验证,填充字段。填充字段又可以再分,填充不同的业务,这里有根据身份证号自动填充生日。。。

    2,对于查询给出的vo里面的属性应该都可以进行查询,有时候每个模块都会定义一个实体类,但是查询的时候为:

    findXX(Domain);

    但是实体类里面的不是每个字段都可以进行查询,就应该单独写一个vo类作为查询类,否则接口开放出去,调用者会认为每个字段都可以进行查询,

    而实际上确实不可以。

    3,for循环里面做查询可能会出现效率问题

    View Code
    for(Domain domain:list){
                domain.setXXField(domainDao.findByDomainId(domain.getXXId()));
            }

    有的时候为了查询一个关联数据的字段,而进行查询,如果list很多,或者被查询表数据巨多,从很多条数据查询一条数据可能会有问题,如果list又很多,则会变得很慢,可以

    对这个字段做冗余,也可以查询list的时候就关联出来。

    4,循环删除数据时,可改用in

    5,if(xx.isXX==1){}

    可改写为if(isLogOut(xx)){}

    用方法来包装一个直接判断,可以更直接,更能突出是什么意思。

    6,方法名可以很长,能表达意思就行,但是方法体应该尽量短,尽量根据业务抽取方法。

  • 相关阅读:
    php对接网易云信视频直播
    python基础--1.数据操作
    pytest自动化7:assert断言
    pytest自动化6:pytest.mark.parametrize装饰器--测试用例参数化
    pytest自动化5:pytest-html插件--生成html报告
    pytest自动化4:fixture之yield实现teardown
    pytest自动化3:fixture之conftest.py实现setup
    pytest自动化2:测试用例setup和teardown
    pytest自动化1:兼容unittest代码实例
    排序
  • 原文地址:https://www.cnblogs.com/xz1367/p/2973097.html
Copyright © 2020-2023  润新知