zoukankan      html  css  js  c++  java
  • 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.全局变量和局部变量尽量不要同名,虽然局部变量会覆盖全局变量,但是影响代码可读性。

  • 相关阅读:
    Photoshop色阶、曲线命令图解和编程实现(附源码)
    苹果Mac OS X快捷键大全
    lucene Field部分参数设置含义
    图片管理下载逻辑
    Lucene.Net无障碍学习和使用:索引篇 (转)
    Firebug 调试器开发中的12个技巧
    Lucene.Net 多线程操作建议(转)
    如何在ASP.NET中下载文件
    Lucene.Net 2.3.1开发介绍 —— 简介 (转)
    JS打开图片另存为对话框 (转)
  • 原文地址:https://www.cnblogs.com/wangshicheng/p/15400954.html
Copyright © 2011-2022 走看看