今天开发项目的还没完成的功能点,没什么难的,样式复制粘贴,JSON表单配一配,接口调一调,基本就完成了。不过中间在写后台的一些接口时,发现被自己之前写的一些方法给坑了。为什么这样说呢,因为在之前的几个工具方法里,都把一些本该是变量的值都给写死了!导致代码的复用性极差,如果我不修改工具方法的话,就要多写一个95%都一样的方法,这简直是不可接受的。在意识到这个问题之后我就着手对我自己之前写的一些工具方法做了重构。

  例如根据时间给JSONArray排序,我之前将JSONArray的getDate方法里的key值给写死了...这应该在方法的参数中传入更好,因为这个key值只是对应某一个特殊的JSONArray才能取出Date的,所以为了实现代码的复用性,必须将key值作为参数传入方法。又比如升降序问题,如果仅仅因为升降序,就将排序方法写两遍或者在一个方法里写两个超级大的几乎一模一样的代码块,这也是不可以接受的。我的做法依旧是在参数列表中,传入一个整形,0代表降序,1代表升序,然后在需要修改符号的位置使用三目运算符来进行比较,这样我认为是比臃肿的代码块好的多的写法。

  最近在写代码的时候,发现三目运算符真的需要好好使用,精简代码行数,看着清爽很多。所以现在刻意的修正自己写代码的习惯,有些if-else是十分罗嗦的,用三目运算符一行就可以解决了,if-else一般能给你整出4行来。例如,需要返回一个非空JSON字符串,如果为空返回null,之前我看同事的代码写的是

if(json == null)
return null;
else//也许会省略这行
return json.toString();

  看着十分罗嗦对吧,修改一下,是用三目运算符是这样的

return json == null ? null : json.toString();

  清爽不少吧。这真的是很基础的东西,不能说有多重要,但知道了更好的写法为什么不这么写呢?

  挖坑清单:

  1. Vue缓存机制、生命周期和钩子函数
  2. git学习与常用命令记录(最后的整理)
  3. 和czh开发练习博客demo(建表完成度1/3)

Terence Xie

2018.8.14 周二 23:36

  

最新文章

  1. Rabbitmq安装与配置
  2. IOS 基础-define、const、extern、全局变量
  3. ef第一次启动较慢
  4. Java求职面试准备之常见算法
  5. oracle的to_number、to_char、to_date用法
  6. MIPI D-PHY 简写收集
  7. vim highlight whitespace at end of line and auto delete them
  8. JDBC笔记
  9. 基于visual Studio2013解决算法导论之006最大堆排序
  10. 《深入浅出 Java Concurrency》—锁紧机构(一)Lock与ReentrantLock
  11. 利用JAVA API远程进行HDFS的相关操作
  12. Nginx 原理解析和配置摘要
  13. JVM介绍&自动内存管理机制
  14. Android的SharedPreferences(首选项)保存键值对
  15. bzoj5342 CTSC2018 Day1T3 青蕈领主
  16. NPOI 图片在单元格等比缩放且居中显示
  17. java基础编程练习
  18. Confluence 6 修改站点的标识图片
  19. Servlet实现session读写
  20. innobackupex 相关语法讲解【转】

热门文章

  1. Java项目排查cpu负载高
  2. 一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator多线程遍历
  3. Swift_错误处理
  4. 【2017年最新】 iOS面试题及答案
  5. 暂存,本人博客有bug,正在全力修复。
  6. 02.将python3作为centos7的默认python命令
  7. Python入门(案例)
  8. 解决 LLVM 错误提示 may only occur zero or one times!
  9. Active Job 基础
  10. 一个java新手配置IIS服务器的血泪史