`
songsong
  • 浏览: 11314 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

程序 && 数学 && 星际 && 传奇

阅读更多
经过三年不停得编程(都感觉自己快成机器了),回想很多编程的习惯,应该也算是工作中习惯,很多来自数学、星际、传奇

1、写程序最重要的一点,认真负责
数学,是一门严谨的学科,如稍有偏差,结果都是错的
编程也同样,对每行代码都应该认真对待,很多新手都喜欢急攻,因为疏忽,就在那里debug了一天
对于新手来说,大部份错误是在于不够认真仔细
写程序,还要负责,写得每一行代码能够清晰表达功能,千万不可养成偷懒得习惯,只要实现眼前的功能,而不去考虑程序的健壮性、完备性、重用性、易读等等,这样偷懒是没法提高水平的。
但是从另一方面来,做为一名优秀的程序员,应该学会如何偷懒(某人又要BS我了),让程序更佳自动化,很多工作可以交给程序来完成,如自动化构建,自动化部署等,还有让代码重用,代码经常被重用,那开发的效率是不用说的,把自己开发过的代码整理成代码库,那开发就像搭积木一样简单。
解数学题也是一样,想拿高分,那就得负责,理清楚每一步的思路,可不要偷懒哦
对生活的态度也是这样,我觉得该认真地方还是要认真,不过有些琐碎小事没必要了,那样活得也太累了,呵呵

2、养成好的习惯,让编程更轻松、更自然
写程序有很多习惯,如空闲的资源不用时要释放,依赖接口不依赖实现,代码要按java规范写、数据要先先进行有效验证。
代码一定要有规范,代码注意缩进拉、变量要预先定义,变量方法命名要有含义,如果代码写得很乱,那调试程序是件多么痛苦的事情,而且出错的机率也更多了,这一点任何一名程序员对于来说是很容易做到的事情,但是往往在实际开发当中,依然有不少朋友,还是抱着随便的态度,认为做到这些规范很浪费时间,其实适而其返,光是花在排错都远远不止这点时间
编写单元测试也极为重要,自己的开发环境独立出来,减少了沟通的成本,运用好单元测试,让程序自动化,不依赖于手动测试方式,还可以让多个开发任务同时进行。开发环境越复杂,开发难度也就越大。
同样一个疑问:写测试很费时?
举个工作中的例子,开发一个Java Socket Client程序要和另一端C++写的Server交换数据,如果自己不先搭个Server环境,如何跑自己的Client,那只能两边一起调,出错了,谁也不知到是哪边的错,花了不少时间沟通,如果自己用Java写一个Server来模拟,那样调试Client不是更有效率吗。
另一个例子,应用要跑在第三方浏览器中,但是第三方浏览器可能会存在一些bug,那样不能单纯依靠第三方浏览器,应先用一些测试去保证每个版本的浏览器没问题,这些事情都不能省,到时遇到问题了,找半天才知到是第三方的错,那就冤了
把复杂的问题拆分成若干个简单问题,尽可能减少对环境的依赖,有一个良好的解题风格等等,这些都源于以前学数学。
如果你的数学题写得很乱,那你的程序也好不到哪去。呵呵。数学里思考方式已在脑中根生蒂固了,所以做程序的一定要学好数学呀

3、思路很重要。
记得高中数学老师说过,这样一句话:做数学题先要准确,然后再求快,最后要做到解题思路最好
一道数学题通常有10种以上的解法,一个好的思路胜过几万行代码。
哪一种是最有效的,最好的呢,靠直觉,然后会写一些简单测试验证一下,确定后再开始动手,不要因为一个错误思路浪费了更多的时间。
面向对象编程,已经有很多书介绍了它的重要性了,还要学会发散思维。

4、合理安排工作计划,先做什么,再做什么,最后做什么,统筹方法
先易后难。以前读书的时候做卷子做多了,先挑容易的做,难的题目放到最后。
在写程序时,遇到没有思路的时候可以先换换做其它。
星际里经常提到的多线操作,在控制前方战场时,又偷袭敌方分矿,又能兼顾后方发展。考验你的思维是否够快
多线工作,让自己的多个任务时间进行。我一般来说喜欢让两个任务同时进行,一件快做完的任务和一件刚开始的任务放在一起,快做完成的任务,通常是做些集成测试、完善功能、修改Bug,刚开始的任务是做一些设计,很容易搭配。和打星际一样,精神一定要集中,否则容易出错。

5、不断改进自己的开发方式,让开发更有效率
在网游经常提到FM,也就是要反复杀同一怪,让自己的练级效率越来越高。
玩传奇做得最多的一件事情就是烧猪。开始只会站角引怪烧猪,后来发现法师放火墙的位置和道士引怪的技巧都影响着练级的效率,甚至还观察出每天哪些时段猪洞刷新比较慢的,避开这些时段。就这样不断改进,练级的效率也就越来越高。
每次开发完成后,都要想着不能再好了吗?总是发现有不少地方可以改进,开发效率也就越高。
开发过程中要注意不断重构,虽然项目一开始架构就定下来了,但是随着代码量不断增加,如果不及时重构,很可能代码越写越乱,相到了项目中后期,排错越来越困难,修改功能越来越困难,增加新功能越来越困难......
这些都是因为前期设计未能考虑到的,可以通过重构,来保证程序的灵活性。
站在终端使用者或调用者角度考虑问题,有很多细节功能是不可能写在需求分析中的,这时我们开发人员要更多考虑使用者是否方便。功能不断被优化,越做越好。

6、团队配合
以前玩传奇冲过两次新区,前一次缺乏配合,矛盾也越来越多,最后大家不欢而散,后一次我们目标达成一至,发挥各自所长,虽然人少了些,但实力强多了,让我感觉到团队力量是巨大的
现在必竟不是单打独斗的年代了,团队配合是必不可少的。团队中,尽可能使用一致的代码风格,程序易读,保持良好的沟通,这些都是XP(极限编程)的经验。

7、追求完美
那些研究理论的数学科学家,哪个不是力求完美的?
写程序追求完美,可能吗?追求完美是需要成本的,企业做开发,都要谈成本,不能一味追求完美程序,但也不能让劣质的代码泛滥。
劣质的代码泛滥,会让用户的体验更差。如果在用户使用细节上做调整时,需要对代码做出很大的改动,那样很可能把这样的改进放弃,结果会造成整个项目是按照需要来做,但是一些给用户使用的便利性很差,因为改起来麻烦呀。
如果是一个灵活的设计,这样增加一些用户便利性的功能是很容易做到的,只需要做小小的调整即可满足,每个细节都能做到位,用户体验也很好。高质量的代码并不是毫无意义的。做项目开发,这个力度一定要把握好。
什么是高质量的代码呢?对于J2EE开发,面向对象程度越高质量越好,其它自己体会吧

这几点不仅仅是在编程上,做其它事情也一样,这些都为将来的成功奠定基础。

http://zoday.spaces.live.com

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics