程序员效率指南

## 1. 区分需求的轻重缓急

新手程序员最大的问题就是,在面对一堆需求的时候,不知道哪一个才是重要的,学会分辨重要的需求是需要一定的经验的,这需要在实践的过程中积累。于此同时,需求也有是否紧急的区分,合理安排顺序有利于提高工作效率,减少自身压力。

通常来说,关于需求轻重缓急的问题也可以和需求方沟通,但是主要注意的是,需求方不一定真正理解自己所提出的需求,也不一定能够给出正确的安排。

## 2. 学会发现伪需求

并不是所有的需求都是有现实意义上的必要性的,这种无意义的需求被称为伪需求,但又总会有一些这样的需求提上来。

例如,需求方要求你给一个列表做搜索功能,然而你发现这个列表的元素个数绝对不可能达到两位数,那么这用十个手指头就能数过来的列表,真的有必要做搜索功能?

对于伪需求,我们要做的就给出理由,并拒绝掉。

## 3. 深入理解需求意图

很多需求方在提需求的时候,是不会明确的表达真实需求的,而是把自己当成了设计师,自作主张的告诉开发者要做什么,甚至怎么做。

  这种需求都不是真实的需求,只是需求方从真实需求的基础上,提出的自己对于这个问题的理解,以及解决方案。因此在接受需求的时候,开发者必须主动弄清原始的需求是怎样的。

  这样做至少我认为有两个好处,一个是不会被需求方带到坑里去,另外我们自身可以从原始需求上得到更多的信息,在设计层面留下足够的扩展性。


## 4. 提高项目决策效率

对于一些项目会议,容易出现冗长的胶着的讨论,大家对一些问题看法不一,然后会议就没有一个终结的时间。因此,对于一个团队,必须有一个决策人,在必要的时候终止讨论,并给出结论。

民主还是专制?在项目开发上来看,让一个优秀的首领决断,比争论不休更有意义。

## 5.  不要重复造轮子

这是一个聊得挺多的话题,这里就一笔带过。

  其实个人也不是说不喜欢造轮子,平时练习造轮子挺好,项目开发上来造轮子,百害而无一利(除非你能超越其他轮子)。

## 6. 使用配置代替编码

用配置代替编码,有另外一个意思——用代码来写代码。

其实这种思想非常常见,例如很早之前的百度空间(现在已经凉了),就给出了自定义模板的功能,我们只需要拖动一些界面元素,就能配置出自己风格的空间来。这里面就是用到了用配置代替编码的思想,开发者并不需要为每一个博客样式写一遍代码,只需要提供配置的信息,即可生成对应的博客样式。

具体在实际项目开发中,这种方式能大大减少代码量,并且降低出bug的概率。

## 7. 不要浪费时间在修bug上

这句话的意思不是说有bug不修,而是说尽量不要让代码出bug,如果出现bug也能快速定位问题。

  《UNIX编程艺术》里面有强调一个KISS原则——Keep It Simple, Stupid,意思就是事情能够简单办好,就不要把它弄复杂。

  对于一份代码,它可以是简单到明显看不出问题,也可以是复杂到看不出明显的问题。

  日志系统有必须要对系统的运行状况进行记录,如果能直接从日志中就能定位问题的话,减少了很多调试上的麻烦。

  在代码bug这个话题上,有一个比较特别的类别,就是系统限制问题引起的bug。也就是说,你的代码本身逻辑没有问题,只是数据一直增长,导致达到了系统的限制,而导致代码不能正常工作。

  例如,腾讯QQ之前的用户QQ号码是用32位int类型存储的,因此它会有一个上限,在之后的一段时间内,腾讯不得不对数据库进行升级,使用64位int来存储。

  为了减少系统限制类的bug,开发者有必要做出一些努力,例如良好的内存管理,以及对系统规模的恰当估算等

  不过现在计算机基本上都是64位了,在大部分情况下,各位完全不用纠结是用int32还是int64的问题,用int64就好了。

## 8. 扩展性问题

由于需求总是容易变化的,因此面对变化的需求,程序员也需要做一些预案。

  例如,参数能做成可配置的,就不要写死。如果一个变量可能存在多个,但是需求暂时只描述了单个,那么还是用数组,说不定哪天就需要支持多个了,现在就支持多个并不会增加太多成本。

  扩展性问题需要紧紧跟随真实需求,程序员也需要有一些产品思维,在设计上预留出可能的方向,不要在变化来临时手忙脚乱。


## 9. 性能问题

性能问题是程序员都喜欢讨论的一个问题,也是一个学术意义上非常重要的问题,但是,在项目开发中,却通常是一个不用太在意的问题。

项目的开发,是成本导向的,我们需要用低成本来满足项目需求。

项目上线之后,首先要看效果,效果不行的话,自然没什么用户,因此也没性能优化什么事。

性能优化的时机,不是在项目开发,而是在项目维护。等哪天用户量上来了,系统负载越来越高,先加机器,再花点时间研究下性能问题,岂不美哉——至少又做成了一个项目。

性能优化有时候会带来一些负面效果,最常见的就是破坏代码结构,所以如果不是必须,就别去做性能优化。

另外有一种情况,就是代码写得太渣拖慢了速度,修改这类代码不叫性能优化,而是叫修bug。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352