读别人的项目悟自己的代码

对于读项目源代码来说,可能对大多数人是件困难的事。首先,第一个障碍:看到项目,就已经放弃!  如果有十个人,可能有5个人以上会是上面这种情况,分析其想法:这么多的代码,我要怎么读啊!我要读好久啊!算了,还是看小Demo吧,所以这样,他们也就只是把这个项目导入到eclipse中,点了几下鼠标,然后就没有下文了。  解决办法:其实他们终止的原因很简单,就是嫌麻烦,那好吧,告诉你,这点麻烦都能对你造成影响,其实你的开发之路也可以终止了。任何东西,你要学到它,你就必须花时间、花精力、还要有面对困难的准备。想一步登天,有可能,除非你是天才,但毕竟天才太少了!对于开发,不是学习1+1,所以,先摆正心态吧,那要具备怎样的心态呢?那就是:有面对困难的准备,也有解决苦难的信心。  心态问题解决了,那就是读代码的技巧了,很多人拿到一个项目不知道怎么入手,干脆就胡乱的一通看,看到一定时候发现,实在进行不下去了,又开始重新梳理自己的思路。这样是很浪费时间的,其实对于读一个项目,最好按照以下步骤进行(
个人意见,仅供参考
): 1、使用这个应用或者游戏,直到熟悉它的使用流程和功能
 2、根据自己的体验分析代码实现(整体)
3、如果有条件和原作者请教项目思路  
4、从最先启动的Activity开始,弄懂每个Activity功能如何实现以及它的布局实现  
5、遇到不懂的代码,首先找搜索引擎(一般都能解决)。还不行就可以请教他人了 
 6、对新学到的知识点,一定要总结下来,并且定期的去回顾

7、最重要的一点:
我认为要自己动手写,那怕是重新写一遍这个项目,或者自己设计一个类似的,再或者只写这个项目中的一部分。 为什么要自己动手呢?大家都知道coder这个东西,那怕你理论学得再好,不动手,那也是毫无意义的!所以,动手写一下,你会遇到问题,你就会解决问题,这样,你才能学到更多。这就是经验·······
8、在白板上画出整个项目架构,说明对项目各模块的包装,设计模式,性能优化等等。

高级程序员呢,上面的问题会问一部分,但是主要是看他对安卓本身的理解,比如如下。1.为什么会有fragment这个东西,他是干嘛的?能解决什么问题?用view能做的事情为什么还要用fragment? 2.用到开源库了吧。用的啥啊?用的slidemenu?OK 他怎么写的啊?view绘制流程什么样啊?touch事件怎么分发的啊?他为什么加到decor view上啊?等等基于开源库的相关于framework层的实现3.listview用过吧,他怎么实现的啊?4.MVC mvvm他俩啥区别啊?哪个更适合安卓架构的开发啊?为啥呢?5.OOM肯定都遇到过吧?为什么会产生OOM?GC的机制是什么样的?别说大图片加载导致oom,那只是oom的一种,本质原因是啥?怎么避免?说到这个会问handler啊内部类啊为什么会导致内存泄漏什么的。等等吧。 然后还会问一些后台的相关知识。
————————————
总结下来,基础程序员我看中的是你对技术的热情,以及你做过什么。而高级程序员我看中的是你对安卓本身的理解。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值