如何成为Android高手 #笔记#
大致扫了下国土工作室的如何成为Android高手这个pdf
当然靠这个pdf成为Android高手是不太可能的,但里面的学会懒惰、精通android体系和设计模式等、编写可重用和可扩展代码、编写高效代码觉得说的还不错。重点需要掌握设计模式和ood设计的几个原则以及日常应用中注意一些高效的写法
?
pdf中第二页介绍对于开发应用需要遵守的一些原则
1、学会懒惰2、精通Android 体系架构、MVC、常见的设计模式、控制反转(IoC)3、编写可重用、可扩展、可维护、灵活性高的代码4、高效的编写高效的代码5、学会至少一门服务器端开发技术
虽然不能说总结的很好,但每一点都还是非常赞同的
1 需要懒惰
世界是由懒人创造出来的,只有存在偷懒的想法,才能不重复造轮子甚至发明新的轮子从而提高效率。很多人编程了几十年一直抱怨每天做的事,年复一年写的代码都一样呢,那么你想过去造一些轮子吗.
?
自己也整理了一些开发中经常需要的工具函数,源码见http://code.google.com/p/trinea-java-common/或https://github.com/Trinea/JavaCommon?,包含了http、字符串、json、list、map、数组、object、简单的缓存等常用工具,并且单测覆盖率都在95%左右
?
2 精通Android 体系架构、MVC、常见的设计模式、控制反转(IoC)
这个就不用说了
一直觉得没有开始android开发的同学应该先看下体系架构,知道自己是在哪一层开发。可以见Android体系架构介绍
MVC这个最基础的就不说了,常用设计模式可以见http://trinea.iteye.com/category/199431
控制反转这个最初在spring中了解,大大简化了配置以及解耦了关联
?
3 编写可重用、可扩展、可维护、灵活性高的代码
这里的好处跟1类似,相当于写代码时候就可以同时考虑造轮子,为以后调用准备。主要讲了设计模式的几个原则
3.1 开闭原则(OCP)?
即软件实体对扩展开放,对修改关闭。使得代码可以在不修改的情况下很方便的扩展
3.2?里氏代换原则(LSP)
这个比较有意思,刚开始还理解错了,他的意思是使用父类的地方都可以用子类替换。引申就是说类最好从抽象类继承而不是从具体类继承。为什么“正方形不是矩形”呢,具体可以参见http://blog.csdn.net/brookes/article/details/1896758
3.3?依赖倒转原则(DIP)
这个原则说的是要依赖于抽象而不是具体。
3.4?接口隔离原则(ISP)
简单的说就是接口功能单一化。不要将过多的功能放在一个接口中。这点在java源码中随处可见
3.5?合成/聚合复用原则(CARP)
因为过多的继承造成代码复杂性增高,最终继承树结构不够清晰。所以更多的使用组合代替继承
3.6?迪米特法则(LoD)
意思就是一个对象要尽可能少的去了解其他的对象,或者对象让尽可能少的暴露信息让其他引用类去熟悉
?
4、高效的编写高效的代码
这里说的高效的写法无外乎不做不必要的事和减少对象的创建。小的细节包括:
避免建立对象
使用本地方法
使用实类比接口好
用静态方法比虚方法好
不用getter 和setter
将成员变量缓存到本地
使用常量
谨慎使用foreach
避免使用枚举
避免使用浮点数
当然不一定所有的都要考虑,有时候好的扩展和可理解性优先于这么点性能优化。重点加粗了几个可以着重注意的