优雅代码
吴键
这个作者很懒,什么都没留下…
展开
-
dubbo有哪些不好看的代码
拿Dubbo源码为案例,来说说什么样的代码是优雅的。以下案例所用Dubbo源码版本2.6.4。我先声明下哈,Dubbo是个好框架,我只是在鸡蛋里挑骨头,不是在指责它不好。1.反向思维,尽快结束原则我认为是方法或者函数最有指导价值的一个思想,放在第一个说。要达到反向思维,尽快结束目的,我总结下3种方式① if判断反写,尽快return或者throw(最简单,最实用)② 减少不必要的els...原创 2020-05-06 22:35:14 · 152 阅读 · 0 评论 -
优雅代码 - 业务层代码命名
优雅代码汇总篇不是谈帕斯卡,骆驼命名等问题。而是说说业务模块和技术模块的一些命名优劣。以订单模块为例,我会给出OrderService和OrderDao中一些基本的接口定义。下面先列出,我认为不太友好的服务接口定义方式:// 我先给出DAO的定义,这个DAO的定义没有问题的,主要看下面的OrderService的定义public interface OrderDao { // 根...原创 2020-05-05 16:44:56 · 1404 阅读 · 0 评论 -
优雅代码 - 说说this
优雅代码汇总篇不是想说this的用法特点,而是想说对私有方法调用时,希望可以加上this关键字。有助于后期代码的阅读。当然,这只是我的个人习惯和观点。说说为什么,来看看代码。// Dubbo 源码,DefaultFuture.setCallback// invokeCallback是一个私有方法,但是我第一眼看这个方法,无法直接明白那行代码在调用一个私有方法,我会考虑它可能是本类的方法,或者...原创 2020-05-05 16:44:14 · 178 阅读 · 0 评论 -
优雅代码 - 善用Enum
优雅代码汇总篇Enum真的是个好东西,香。用enum + spring实现策略模式在实际的项目中,一定会碰到很多需要需要横向扩展的场景,比如:技术方面的,Dubbo的负载均衡策略,协议策略,序列化策略等等。业务方面的,支付策略(支付宝,微信,余额),登录策略(用户名密码,验证码)。这些场景都是在一定范围内可以枚举,并且需要有横向扩展的能力,需要符合开闭原则。Dubbo用了自己的SPI,目的...原创 2020-05-05 16:43:20 · 261 阅读 · 0 评论 -
优雅代码 - 其他案例分析
优雅代码汇总篇一些随机抽取的案例案例1(没有必要的hash浪费)// Dubbo 源码,SimpleDataStore.get// 如果containsKey为true,则会出现2次hash操作(containsKey一次,get操作再一次)。浪费public Object get(String componentName, String key) { if (!data.co...原创 2020-05-05 16:42:10 · 141 阅读 · 0 评论 -
优雅代码 - 减少累赘的代码
优雅代码汇总篇Java足够严谨,但是不够简洁,想要把Java代码写的优雅,不要写费代码,不要拖沓。看案例案例1(适当使用三目运算)// Dubbo 源码,URL构造方法public URL(String protocol, String username, String password, String host, int port, String path, Map<String...原创 2020-05-05 16:41:21 · 221 阅读 · 0 评论 -
优雅代码 - 反向思维尽快结束
优雅代码汇总篇要达到反向思维,尽快结束目的,我总结下3种方式① if判断反写,尽快return或者throw(最简单,最实用)② 减少不必要的else,能不用则不用③ 在循环中多使用break,continue等流程控制方式案例1(if反写,多用流程控制语句)// Dubbo 源码,RegistryDirectory.destroyUnusedInvokers// 这个方法干了啥?...原创 2020-05-05 16:40:31 · 205 阅读 · 0 评论 -
优雅代码汇总篇
开篇废话这么多年一直在写Java代码。在编码规范和代码优雅问题上一直都有自己的一套理论,脑中有大量有型的案例。习惯在周末的时候独自在家大批量的重构项目中的代码,看到不规范的代码就有要修改它的冲动。对代码有洁癖,也喜欢重构。一个周末重构上百个类,真的挺爽的。重构的多了,觉得挺没意思,因为感觉都在重复同样的工作,都不用动脑子,重构的过程感觉是在休息和偷懒。。。从理性上,我觉得把代码写好看,注意是要...原创 2020-05-05 16:36:48 · 1202 阅读 · 0 评论