R049.复盘统计工具类使用频度
不等不靠,有囧有料。攻城狮,是一种精神,亦是一种品质。
坚持做一件事,用心做一件事,是攻城狮精神。做到精进是攻城狮品质。
直播写代码,分析所有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不能混声麦克与音响,影响了录音,折腾了好半天也没好。 直播中,边说边写,就算是之前写过一遍的代码,也写不同的效果,不同的坑 :)
题图:分形图(Fractal)除了自相似性以外,分行具有的另一个普遍特征是具有无限的细致性。