现在的位置: 首页 > 综合 > 正文

我总结的编程思想

2014年09月14日 ⁄ 综合 ⁄ 共 1757字 ⁄ 字号 评论关闭

1.模块化编程。它能把复杂度降到最低

2.对于一些类的使用,请按照标准用法,不要随便改动,哪怕两段代码的位置

3.英语好,至少能提高一倍的开发效率

4.陷入思维误区,不是去分析现象背后的原因,而是盲目试错

5.主线程进行UI操作,子线程用于处理耗时长的任务

6.我的编程风格:分治

7.有些问题不要过早的优化,有些功能会随着你程序的完成而自动完善

8.有些东西还是按照约定俗成的东西去写,这样不容易出错,比如内存管理之后 nil一下

9.对于使用一个类越来越得心应手了,当你把整个流程搞清楚,所有的细节会自动浮出水面

10.

在注释中说明一段代码存在的原因,而不是行为

$('#item').html(''); //清空item的内容

  这样的注释有意义么?用自然语言重新描述一次代码的行为,除了徒增维护时的工作量外没有任何价值。你应该说明为什么这样做,以供别人看到这段代码时明白你是怎么想的,并决定如何修改或者对待这段代码。

$('#item').html(''); //先清空容器的内容,否则可能导致内容重复

11.不要为了学习而学习,根据问题去学习,比如:我发现我在找资料的时候,很多英文看不懂,那么我就应该想想去怎么翻译好英文。但是有很多人是看多别人学习设计模式,而跟着学习设计模式,这样的效果可想而知。

12.什么东西需要掌握它的本质,什么东西只需要学会使用,这个一定要搞清楚,不能盲目去学习,也许对于别人来说本质的东西,对于你来说就只要学会使用,所以现阶段对我来说本质的东西有:h264的内部结构,如何消除马赛克, NSObject类,为什么要这么抽象,这个类有哪些属性和职责。。。而比如linux,tcp,udp的具体实现,对于我来说不一定是最本质的东西,因为我想要更好的做好应用层的开发,为用户带来更好的用户体验。

13.在没有编程之前先把思路在脑海里过滤一遍,把解决方案和思路确定好,然后再去实现,发现不对,再停下来思考,确定了方案,再编码实现...

14.感觉很多问题不使用google也能解决的很好,而且理解的更透彻,比如ffmpeg里面的pts,dts,time_base,去找资料理解了这些概念,同步方案自然就出来了。

15.如何做测试

16.做新的事情或者新的项目,学会去掌握一些行业的惯用法。

17.对于一些隐性的BUG,让它能够频繁的重现,远比解决BUG更重要。

18.每个版本写一个read me文件,记录每个版本增加的功能,修改的地方。

19.没有扎实的基本功,任何技巧都没有太多的意义,打羽毛球感悟。

20.思维是一种习惯,它们的好坏之分在于,有些人没有习惯,做事全凭感觉,有些人有坏的习惯。

21.其实真正花时间的不是解决bug,而是找出bug,所以测试才显得那么重要。

22.有时候建立一个对象传递参数是一个麻烦的事情。比如c#里面,创建一个线程,或者一个定时器,好像没有专门用来传递参数的东东,今天看到一个好方法,原来可以自己创建一个线程类继承系统的线程,那么你想建几个成员变量都可以,这样想传多少个参数都可以了。

23.好的技术资料还是在官网

24.java的垃圾回收机制只能处理内存资源,还有一些其他的资源需要自己处理,比如网络资源,文件资源。

25.调试的速度等于打印信息的有效程度和你思考的深度。(打印调试法)

26.学会debug,你就不需要打印了。

27.方法应该实现它应有的功能,比如一个停止播放视频的接口,你不能写个代码把音频也关了。

28.代码审查的存在的原因就是不管你代码怎么写,都会存在很多的问题,因为没有一样东西是完美的。

29.java垃圾回收机制,代码的管理机制,把分散的代码,集中起来管理。

30.设计模式就是解决软件工程中固定问题的方法(比如软件需求变化大),就相当于我们用什么照明?灯泡,这就是一种生活的设计模式。

31.面向对象的三大特性:封装,继承,多态。

32.通过从ios转向android,我明白转平台的时候,如果能请教某个这个领域比你熟悉,厉害的人,能走很多弯路,比如学习安卓的布局,如果没有人教,你可能很长时间在做线性布局。

33.不管是重构还是写代码都一点点的测试进行,不要跨度太大。

34.调试的时候多思考。

35.把变量的作用域控制到最小。

36.还有什么比理解原理更重要的。(摄像机搜索,广播和组播)

抱歉!评论已关闭.