加载中…
个人资料
梁斌
梁斌
  • 博客等级:
  • 博客积分:0
  • 博客访问:436,851
  • 关注人气:1,097
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

rush

(2012-11-25 22:53:16)
标签:

杂谈

    三国武将基本有两个路子,一个是中医路子,一个是西医路子。前者靠直觉,靠天赋打仗,比如关羽,张飞,只讲究输入输出。没有系统的高等教育经历,另外是马超,赵云这种受过高等教育。讲究内在道理。
    我呢,因为种种原因,不得不rush,并不是我喜欢。rush了好多年了,总结一些自己的经验,供大家参考,批判吸收。

    准备工作
    我每次在rush之前,都要思考每一个细节,而且思考很久,因为rush的时候全是直觉,不能想,一想就玩了。有时我老看到我坐在沙发上,呆呆傻傻的,都不敢叫我,一旦叫我,一准会惊了我。
    比如出个实战点的题目,在一个N长的数组中存在若干空格,也可能没有空格。从解决这个问题就应该思考成本问题,怎么做最省,能不能用O(1)空间复杂度的方法去掉这些空格,能不能不使用mov的方法。再想如果递归来做如果N很大怎么办,实现的时候还会遇到哪些困难,有什么现成的可靠的代码可以利用,如何测试确保正确等等。

    第二件事就是计划时间,这个工作大致多久能完成,给自己一个压力,一个极限,去挑战一下,一定要逼自己。

    开始rush
   一般必须做到以下几点:
    1)轻易不要去编译,写足够多了,再编译
    2)编译提示错误,不要看内容,只看行号,直接去错误行号,靠直觉改错(这个必须练,老程序员一般能做到)
    3)变量名命名一定要一致,好记,比如,所有l,n的音全部是l或者n,全部带卷舌的sh的,都是s等等。
    4)结构体的成员名一定要背得(有些编译器有上下文提示,这个其实不好,看上去快,其实不如背的快)
    5)模块分段测试,比如用gtest的工具,代码要碎化,尽可能切碎,彼此依赖关系简单。
    6)一开始不要考虑通用性,会降低效率,一个splite函数就写多份,每个地方的需求都有可能变化,独立变化,彼此不影响(这一点很多码农会来吐槽的,认为写通用函数,有feel,但这不利于rush)
    7)循环体第一层用i,第二层j,第三层k,固定死,不要有得是i,j,k,有得是j,k,l,有得是l,m,n
    8)全部函数(除了main),都写成 bool function(type arg1, type arg2, type&result1, type&result2)这种的,每个函数的返回值表示是否执行成功,arg是传入参数,result是返回结果。但返回成功的时候,语义是可以继续,返回失败,表示炮灰了,后面正确性不保障,必须报错退出,无他。
    9)变量名不要太长,太长不适合rush,比如 user_id简写为uid,比如password简写为pwd,我最近发现汉子简化是对的。。
    10)rush的时候,如果来电话了,这时容易走火入魔,之前最好静音,这就是为什么有时朋友联系不到我的原因,都是练功紧要关头。
    11)边写代码边看时间,比如给自己30分钟,基本上编码的过程,起码要看表10次,要和高考的感觉一样。
    12)一次rush的时间不宜太长,30分钟,就可以休息下,发发微博,出去上上厕所,找人聊聊天,放松
    

   系统测试
   写完交付前需要系统测试,这个是保障人品的,如果交出去的东西不合格,人品坏了,rush白费了。
   这个没有什么经验,就是按需测试,尽可能全面

   上线和总结
   上线后观察情况,总结下一次的功能点,继续rush

    写博客也很辛苦,最后推销下我最近rush的一个东西,希望大家喜欢:http://duxiaqu.com/



    




 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有