开发2年后我在想什么

这篇文章是2014年写得,这里一字未改记录初心

2012年毕业后,进入公司开始做android。从开始的迷茫到现在的自我淡定,菜鸟心态使然,以为华丽的转变,其实还是在这条路上攀爬,前面布满荆棘。言归正传,开始这迟到的记录。

我大学是数学专业,进入公司,看着周围的人噼里啪啦敲代码,自己还在看java基础,内心还是比较纠结的。好在我公司领导不错,java基础,android基础给我了时间去了解,甚至给我时间去练习敲代码速度()。回头看,我第一任老大真心对我不错,谢谢你大哥!
刚开始写代码,我是比较小白的,不明白的问题比较多,比如代码是如何编译链接的,android平台是如何运行的。由于缺少基础的计算机开发素养,对各种设计模式,模块化没有什么认识,所以在开始工作的时候,各个方面都落后同时来的新人,你们懂得,那时只能抓紧时间学习来减小这之间的差距了。
那时候知道自己是标准的菜鸟,于是一直在想怎么快速成长,早日除名,呵呵。转眼间已经两年了,期间和同事参与了几个项目的开发,积累了一些实际的开发经验,这中间起起伏伏,于是开贴立文。这篇文字,不想太生硬,不想太有条理,只是杂谈,愿有心人共勉。

不管是做Android开发,还是其他平台开发,我想基本的流程是一样的,我在这里只谈谈我的实际经验

1设计初步

这个流程在我们公司主要分两个部分,产品设计主要有产品经理设计。我们需要做的是在理解需求的基础上做好程序的架构设计。这个需要你在工作中逐渐的积累这块经验。对我来见,从程序员的角度讲,最重要的是程序的架构,以及具体模块的程序结构图(UML)。

程序架构这快,我举个例子。我在公司参与开发一款产品时,由于设计到视频通话,除了通话产品还有其他比较多的附属功能。此时如果使用一个进程来处理这些功能,用户体验不是很好。此时我们根据业务划分,在主进程的基础上单开了两个附属进程去处理几个复杂的功能。视频通话这块单开进程后,效率明显好转。大家都知道android一个进程有一个单独的虚拟机,有自己一份单独的资源空间。我们针对不同业务重开进程,相当于拥有了另一个虚拟机拷贝,后面的性能优化不言而喻了。这只是比较笼统的讲讲,大家有这个概念就好
我在说说UML图的重要性,不管你有多聪明,多伟岸,在做项目时,程序结构图是需要我们认真做的事情。好的UML图可以帮助我们在写代码的时候梳理思路,进行结构化编程。这中间的好处只可意会不可言传,嘿嘿。
有了好的思路,就需要优良的代码去实现了,继续接着
2代码初步
从我的角度讲,这是个比较泛泛的话题。作为一个稍有经验的程序员,都知道好的程序的优良特性,比如低耦合,结构化等等。我们需要去做的只是去做到这点就可以了。藉此而言,我只讲我的方法和经验,和各位互相学习。
@代码中变量,要谨慎定义使用,最好做到每个变量有明确的意义。这块我是吃过去多苦头的。比如说在原有的代码上去迭代新的需求,此时在代码的角度讲,是继续使用老的变量,给它赋予另一个意义。还是重新定义变量。这块并不是绝对的重新定义一个变量就是最好,留着大家慢慢体会。我只是把这个问题提出来,大家思考
@代码注释。也许大神都是没有代码注释的吧,我早期就是这么自诩的,直到被各种批啊,呵呵。简单的地方尽量不要有注释。业务需求的地方要有详细的注释。最重要的事代码注释也要实时更新啊。
@服从android规范。这块需要各位自己领悟吧,我也是菜鸟
@面向对象开发;这是我说的重点,java开发讲一切皆对象。明白了这点我想你的开发水平可以上个档次了。我也是最近这几个月有了这种感受,可能是我太迟钝了,呵呵。这块涉及到我们如何组织代码,如何书写类去解剖我们的业务,用简单的类解决我们的业务。这中间要贯彻结构化,简单化。不要把所有东西,都放在一个类去做所有事情。根据逻辑,用适当熟练的类去演绎我们的想法,嘿嘿。我说的很模糊,大家自己注意就好了,这个我认为是最重要的。
@代码重用;这个涉及到团队代码共享等等,也是比较重要的。
其实今天写这个,明显是有想法,没有具体的思路,有些东西不能在这里体现了,我只能说这些目前总结的这些要点。接着快速的来见这个维护
3产品维护
这个涉及到产品需求迭代,以及我们代码的review了。作为一个小程序员,目前我的重心在代码review上了。
没有一蹴而就的代码吧,其实我们真正的水平就在review的这个阶段。最好可以分析下你的代码为什么要这么写。有没有其他途径去体现。如果公司有大牛,最好去让人家看看。最好的途径就是组内代码review了。关于代码review我以前写过一篇文档去规范这个过程,这个事情需要小组内所有的人积极配合,才有效果。

其实现实是我们在项目中没有过多的时间去做很多的思考,因此我们应该在项目任何时刻都要去主动提醒自己,这样做,是否是最好的,可以是程序低耦合吗?是结构化的吗?只有经过这样的积累。我们才能在后面自动做到这点,呵呵

本来只想杂谈的,没想到一动笔,就来了个123,呵呵。我想谈的进程间通信,数据库组织,多个apk协作,只能算是一个模块知识了吧。现在吧里有很多某个知识的进阶,这类文章。我们只要去认真去读读Api源码,这些东西,基本上都会有一个清晰的把握。今天看到AysncTask的认识,只要看源码就会明白个中三昧了。

Android开发中我们应该要熟练的使用adb命令,logcat机制。还有android对开发人员的帮助机制,比如严苛模式,会检查我们程序中的漏洞等等。我在这里只是随便说说,大家可以多积累啊

写到这里,发现自己想说的,并没有说清楚。除去前面的这些。团队协作,人际交流也许更重要。一个好的团队会是你成长更快,更好。这个我也是有比较直接的体会。因为公司业务的原因,我换过部门,这里就不说了。总之希望作为一个程序员,在做产品的时候一定要不断的提醒自己,加强写好代码的意识,定期的做代码Review。

后面有时间的话,我会把我所了解的一些模块知识整理下,希望可以共勉。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值