我的Android进阶之旅------>真正在公司看几天代码的感触

  

仅以此文来回顾这一周我的工作情况,以及由此而触发的感想。

=============================================================

   来到新公司5天了,这5天就看了一个关于视频播放的应用,感触颇多。

  • 原本以为一个播放视频的应用应该架构不是很大,读了公司的代码后才发现自己之前确实没有写过如此大的架构的应用,自己之前学习的android都是皮毛,几乎可以说毫无架构的概念可言。自己以后得真正的学习好架构知识,得有个大局观才行。
  • 公司的代码都没有一行注释,对于一个重新接触一个架构如此大的应用新手来说,确实有点吃不消。因此得在以后的工作中将注释工作做的好一点,因为维护的成本大于开发的成本。
  • 意识到了面向接口的好处,因为整个应用都是面向接口编程的。自己之前写的都是小程序,完全看不到面向接口编程真正的好处,这次接触到大应用后才发现面向接口的好处。个人感觉接口是一个公司的巨大资源
  • 意识到自己编写代码的封装性不是很好,看到公司代码的封装后感慨自己代码的级别真低。得真正学习如何编写好的Java代码,可以参考:http://blog.csdn.net/gaozhlzh/article/details/6358744
  • 掌握了真正如何去读一份不是自己编写的代码。因为代码众多,如何学习阅读别人的代码是很重要的。这里转载一下网上看的读代码的方法:http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html
  • 要想快速并高效地阅读源码,一定要有好方法,不然看着会挺费劲,当然,用什么方法取决于具体的情况。我就把自己总结的方法给大家show一下,互相交流交流:1、一边阅读代码一边写注释。这是我用过的最好的方法,对代码理解得更深入,看一些重要代码或者特别难懂的代码时挺有用。更何况,注释也是一种文档嘛。2、一边阅读代码一边绘制UML。这个方法适用于类之间的关系较复杂和调用层次较深的情况,我一般都是先绘制顺序图,然后为顺序图中的类绘制关系图。3、通过Debug来跟踪程序的主要执行过程,这样就可以分清主次了,阅读的时候更有针对性。4、类的快速阅读。先弄清楚它在继承链中的位置,看看它的内部状态,也就是成员变量,一般来说,类的对外接口都是对成员变量的访问、加工、代理等,然后看看它的对外接口,也就是公有成员函数,识别核心的一个或多个函数,这时候你应该可以大概了解这个类的职责或作用了。可能这个类是某个设计模式中的一个组成部分,所以,设计模式的掌握对代码的快速阅读也是很有帮助的。5、带着问题去阅读。比如想了解android中的消息机制,那么看看Looper、Handler、MessegeQueue这几个类就可以了,其他的不要去看,要不然就跑题了。 下面列几个阅读源码时所处的情景,在特定场景下用哪些方法:
         不太熟悉业务逻辑,还不是很清楚它是干啥的,可以用3、5。
         代码量很大,有几十万行,甚至百万行,可以用2、3、5。
         你无法看见程序的运行过程,比如没有用户界面,也有可能是无法运行的,可以用3、5。
         设计复杂,用了大量的设计模式,调用链很深,可以用1、2、3、4、5。
         时间有限,没有那么多时间让你看源码,可以用3、5。

====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址http://blog.csdn.net/ouyang_peng

===================================================================================


 

转载于:https://www.cnblogs.com/ouyangpeng/p/8538191.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值