锐力易思▼ 2017▼ 编码 工具类 递归 重构 排序

049.复盘统计工具类使用频度

不等不靠,有囧有料。攻城狮,是一种精神,亦是一种品质。
坚持做一件事,用心做一件事,是攻城狮精神。做到精进是攻城狮品质。

直播写代码,分析所有java文件,统计apache.commons静态方法使用频度。
内容涉及了递归,重构和一些思考与讲解,重点想展示整个‘总分总’的编码过程。

@史荣久 / 2017-04-23 / CC-BY-SA-3.0

观看视频

内容摘要

  • 前置判断,可读性好,有阻断效果,能减少括号层次。建议多使用。
  • try-catch-return,看业务场景,可以忽略还是需要处理。
  • 编码中能用(字符串处理)语法分析的不用正则,目标导向的事,尽量用正则。
  • 代码中的短路语句和开关,能减少括号的嵌套层次。
  • 多出短路语句或循环嵌套,应该考虑重构成方法了。
  • 多线程下的if语句是通过while来表达的。
  • 多线程下,多个原子操作的组合,不是原子操作,需要划定边境,进行资源保护。
  • 循环都可以用递归做,反之未必。递归容易爆栈,注意数据结构。
  • TreeMap本身可以进行排序
  • 写Comparator时,偷懒时可以负数/0/整数,但写工具类,必须按文档写-1/0/1
  • mapreduce/forkjoin模式,非常适合词频统计,注意并发并行的联系。
  • lang3.StringUtils.getJaroWinklerDistance 计算相似度。

参考资料

欢迎围观

if (you.accept(MoilionCircle.SPIRIT)) {
    if(you.haveADL()){
        MoilionCircle we = you.search(MoilionCircle.SLOGAN);
        we.welcome(you);
    }
    if(you.share(this)){
        We.thank(you);
        We.mayFind7Moilion();
    }
}

制作花絮

就是复盘了一下 014.内测.统计工具类使用频度,因为原计划讲工具类使用的, 结果看完统计结果,发现没什么好分享的,倒是统计代码本身的形成过程还有些想法。

插曲较多, 其中PulseAudio不能混声麦克与音响,影响了录音,折腾了好半天也没好。 直播中,边说边写,就算是之前写过一遍的代码,也写不同的效果,不同的坑 :)

《049.复盘统计工具类使用频度》 直播写代码,分析所有java文件,统计apache.commons静态方法使用频度。内容涉及了递归,重构和一些思考与讲解,重点想展示整个‘总分总’的编码过程。
题图:分形图(Fractal)除了自相似性以外,分行具有的另一个普遍特征是具有无限的细致性。