一位经验丰富大师说的。
1.重构,伴随着整个软件开发过程,大到软件需求评审会上的需求变更,小到一时灵感对变量的命名,重构不挑食,重构无处不在。
【举了两个工作中实际遇到的例子来说明】
如果发现想要使用某个方法,但它位于其它类中,就可以想是否可以提取父类或者接口,然后把通用的方法提取到其中,再对其进行继承或者实现,那样就可以方便地调用方法了
……
甚至,发现某个变量、方法和类的名字不合理,为了取一个更好的名字,冥思苦想,最后连自己都被纠结了进去,这个过程也算重构。
2.从现在起,开始考虑代码质量。
代码质量提高的目标:优雅、清晰、维护性强、没有坏的味道,如果让人第一眼看到就有种拍案叫绝的冲动,那么就再好不过了。
提高代码质量的方式有很多种,利用工具、经常看一些大师级的代码、团队codereview、重构、深入OO思想以及掌握常用的设计模式等等,都是很不错的方法。
【举了一个工作中实际遇到的例子来说明】
3.时时刻刻考虑程序的健壮性和异常,即使过单行道的时候都会向道路两边看看再过去。
在此,我们不争论java中的checked异常是否真的有必要,不争论“用户名不存在”这一事件是异常还是正常的use case,也不争论发生了checked异常是业务逻辑的责任还是发生了unchecked异常是程序员的责任,我们讨论通过异常来提高程序的健壮性。
【举了一个工作中实际遇到的例子来说明】
4.代码就像你的左脚,测试就像你的右脚。
你可以先迈左脚,再迈右脚。然后一直走下去。
也可以先迈右脚,再迈左脚。然后一直走下去。
只要你不是一直单脚跳着前进,你都会走得很稳,而且没有人看得出区别来。
上面这句经典的话当然不是我的原创,但是我知道,测试很重要,非常的重要!
【举了一个工作中实际遇到的例子来说明】
5.虽然软件开发是一个团队活,但是独立开发一些比较有价值的小工具,感觉也不错。
【利用我工作中开发的一款小工具来说明】
6.学习需要坚持,特别是看别人的代码。
当你拿到一个10万行的源代码时,前10天肯定很痛苦的,要是你能找到切入点一步步跟着源代码的运行流程看下来熬过前10天基本上就能豁然开朗了。
1.重构,伴随着整个软件开发过程,大到软件需求评审会上的需求变更,小到一时灵感对变量的命名,重构不挑食,重构无处不在。
【举了两个工作中实际遇到的例子来说明】
如果发现想要使用某个方法,但它位于其它类中,就可以想是否可以提取父类或者接口,然后把通用的方法提取到其中,再对其进行继承或者实现,那样就可以方便地调用方法了
……
甚至,发现某个变量、方法和类的名字不合理,为了取一个更好的名字,冥思苦想,最后连自己都被纠结了进去,这个过程也算重构。
2.从现在起,开始考虑代码质量。
代码质量提高的目标:优雅、清晰、维护性强、没有坏的味道,如果让人第一眼看到就有种拍案叫绝的冲动,那么就再好不过了。
提高代码质量的方式有很多种,利用工具、经常看一些大师级的代码、团队codereview、重构、深入OO思想以及掌握常用的设计模式等等,都是很不错的方法。
【举了一个工作中实际遇到的例子来说明】
3.时时刻刻考虑程序的健壮性和异常,即使过单行道的时候都会向道路两边看看再过去。
在此,我们不争论java中的checked异常是否真的有必要,不争论“用户名不存在”这一事件是异常还是正常的use case,也不争论发生了checked异常是业务逻辑的责任还是发生了unchecked异常是程序员的责任,我们讨论通过异常来提高程序的健壮性。
【举了一个工作中实际遇到的例子来说明】
4.代码就像你的左脚,测试就像你的右脚。
你可以先迈左脚,再迈右脚。然后一直走下去。
也可以先迈右脚,再迈左脚。然后一直走下去。
只要你不是一直单脚跳着前进,你都会走得很稳,而且没有人看得出区别来。
上面这句经典的话当然不是我的原创,但是我知道,测试很重要,非常的重要!
【举了一个工作中实际遇到的例子来说明】
5.虽然软件开发是一个团队活,但是独立开发一些比较有价值的小工具,感觉也不错。
【利用我工作中开发的一款小工具来说明】
6.学习需要坚持,特别是看别人的代码。
当你拿到一个10万行的源代码时,前10天肯定很痛苦的,要是你能找到切入点一步步跟着源代码的运行流程看下来熬过前10天基本上就能豁然开朗了。