java
EmindCC
这个作者很懒,什么都没留下…
展开
-
#华为云·寻找黑马程序员#【代码重构之路】我是如何将8行代码缩减成1行的
最近公司在大力提倡clean code, 而clean code 不仅是新写的代码要做,老旧的代码也要适当重构,精简我们的代码,毕竟代码还是要给人看的。 个人比较喜欢重构,当然,手术级的重构没做过,但是小小补补还是可以的。在浏览代码时,看到项目中有不少可以改进的地方,于是就选择性地做了一些简单的重构 下图是我的一个重构提交记录,也是本次分享的主题。成功的将8行代码精简为1行 这2段demo,是很...原创 2019-07-25 17:12:51 · 261 阅读 · 1 评论 -
#华为云·寻找黑马程序员#【代码重构之路】如何优雅的关闭外部资源
1、背景 在Java编程中,如果打开了外部资源(文件、数据库连接、网络连接等),我们必须在这些外部资源使用完毕后,手动关闭它们。因为外部资源不由JVM管理,无法享用JVM的垃圾回收机制,如果我们不在编程时确保在正确的时机关闭外部资源,就会导致外部资源泄露,紧接着就会出现文件被异常占用,数据库连接过多导致连接池溢出等诸多很严重的问题 2、传统的资源关闭 为了确保外部资源一定要被关闭,通常关闭代码被写...原创 2019-07-25 17:28:02 · 160 阅读 · 0 评论 -
#华为云·寻找黑马程序员#【代码重构之路】如何“消除”if/else
1. 背景 if/else是高级编程语言中最基础的功能,虽然 if/else 是必须的,但滥用 if/else,特别是各种大量的if/else嵌套,会对代码的可读性、可维护性造成很大伤害,对于阅读代码的人来说就是一场灾难。 本系列博客的目的不是消除if/else,而是如何“写好”if/else 2. 方法 根据if/else的使用方式和场景,大概有如下解决方法 多态 表驱动 职责链模式 卫语句...原创 2019-07-25 17:34:17 · 335 阅读 · 0 评论 -
#华为云·寻找黑马程序员#【代码重构之路】使用Pattern的正确姿势
1、问题 在浏览项目时,发现一段使用正则表达式的代码 这段代码,在循环里执行了Pattern.matches()方法进行正则匹配判断。 查看matches方法的源码,可以看到 每调用一次matches方法,都会创建一个Pattern对象,而且这段代码还是在for循环里,如果外层函数又被频繁调用,就会出现很明显的性能问题。 创建Pattern实例的成本很高,因为需要将正则表达式编译成一个有限状...原创 2019-07-25 17:44:02 · 241 阅读 · 1 评论 -
#华为云·寻找黑马程序员#【代码重构之路】日志打印语句中字符串的拼接问题
这几天看代码,在使用slf4j打印日志时,有的debug日志使用了参数化信息拼接字符串形式 logger.debug("参数为:" + i); 此种情况下,如果日志级别为INFO,仍要进行一次字符串拼接的操作 为了节省资源,现在来重构下:我们可以先检查是不是开启了Debug信息记录功能 if (logger.isDebugEnabled()) { logger.debug("参数为:" ...原创 2019-07-25 17:48:07 · 389 阅读 · 0 评论