今天开发项目的还没完成的功能点,没什么难的,样式复制粘贴,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();
清爽不少吧。这真的是很基础的东西,不能说有多重要,但知道了更好的写法为什么不这么写呢?
挖坑清单:
- Vue缓存机制、生命周期和钩子函数
- git学习与常用命令记录(最后的整理)
- 和czh开发练习博客demo(建表完成度1/3)
Terence Xie
2018.8.14 周二 23:36
原文地址:https://www.cnblogs.com/WaterApe/p/practiceInTW_22.html