• cuowu


    1.接口实现类建议使用Impl结尾,可以比较直观的看出是个实现,实现接口的方法加上@Override,这样可以准确判断是否实现成功。另外,如果在接口中对方法签名进行修改,其实现类会马上编译报错。

    2.RandomDP类中定义的private static final Random r = new Random();如果这个类后续会有多线程访问,建议使用ThreadLocalRandom类,Random在多线程并发时,会有线程阻塞问题,性能低。

    3.OutputPerturbDP实现类的方法getC没有处理逻辑,直接返回了0.0,如果是一个默认实现,可以在它实现的接口类中使用default 关键字修饰方法,这样在增加其他实现类时,就不需要在重写这个方法。

    4.VerticalLRMode类中有只有当前类中使用的但是声明为public的变量,变量和方法的作用域尽量小,如果是private的,后续如果不需要可以放心删除,如果是public的就需要慎重,随着工程代码量越来越大,这个问题会越来越突出。

    5.VerticalLRParameter类的方法obtainPara中,使用了大量的字符串,并且其他Parameter类中也有使用,如果不小心修改了某个值,问题会非常隐蔽,建议定义到Constant类中,所有类中共用。

    6.RandomForestJavaModel类中含有大量重复的字符串,比如”numTrees“和”feature_opt“,应该定义成常量而不是复制多次。 打印日志时,不要自己处理字符串你的拼接

    7.logger.info(String.format("HasLabel: %s, label name: %s", trainData.hasLabel, labelName));即使日志级别不是info也会先进行字符串拼接的操作, 推荐 logger.info("HasLabel: {}, label name: {}",trainData.hasLabel,labelName); 让日志框架去做替换。

    8.一些不用的属性和import提交代码之前删除掉,代码看上去会更整洁,而且在创建对象时,无用的属性会浪费空间。

    9.单元测试中使用断言Assert来判断返回值是否等于预期值

    10.全局变量和局部变量尽量不要同名,虽然局部变量会覆盖全局变量,但是影响代码可读性。

  • 相关阅读:
    奖券数目
    用jQuery和ajax实现搜索框文字自动补全功能
    简单的文件上传功能实现(java)
    示例演示公告通知标题无缝向上滚动,文字段落无缝向上滚动,简单的wangeditor富文本编辑器,简单的音乐播放demo
    SSM框架中注解含义及应用场景小结
    数据库优化以及SQL优化小结
    javaWEB中前后台乱码解决问题小结
    线程同步的方法
    MySQL的简单使用
    springMVC运行流程图及运行原理
  • 原文地址:https://www.cnblogs.com/wangshicheng/p/15400954.html
Copyright © 2020-2023  润新知