浅析开发效率
每个研发都会追求高质量、速度快的完成开发,经过观察,我们发现每个研发人员的快发效率是有很大差异的,下面我们从几个方面简单讨论下开发效率的一些影响因素
1.工具
一个研发人员对工具的使用,往往能够表现出他的专业性,比如摄影师善长摄影设备的使用、程序员对键盘的熟练、司机对驾驶汽车的感觉。作为一个研发人员,工具对研发效率有着不容小觑的影响,主要有下面几点
- 1.工具类型的选型,比如IDE工具目前如IDEA,Eclipse,MyEclipse,VS等
- 2.工具的特性,比如如何借助ide进行代码重构,代码生成,debug等
- 3.工具的熟练度,比如快捷键的使用,效率是大大高于鼠标的效率
比如本人常用的工具如下:vim,idea,chrome,sublime,macdown,postman,钉钉
2.语言
每个语言,都有自己的使用场景,选对语言很重要。如何才能知道是否选对了语言呢,这个就要考验研发团队的技术丰富度了...
程序员使用自己擅长的语言时,开发效率是不擅长语言的3-5倍,同样的,对语言的熟练度也会大大影响研发效率,比如做java开发的,对java.lang,java.util,java.io等核心api的熟练度
3.质量与测试
我们都知道代码重构,但是有时候却容易忽视代码的质量,或者是代码的Test Case写的不够充分。程序员自己在测试时,经常陷入一个误区,就是使用正确的数据,正确的逻辑去测试,但是对于边界、异常的考虑却不够充分,这方面不多说了,产品喊我去修改bug了...
常见的测试方法
- 单元测试
- 集成测试
- 系统测试
- 验收测试
- 白盒测试
- 黑盒测试
4.重构
一个老鸟,代码写多了,对于代码的坏味道,就会有一种直觉,这时候就应该拿出重构的利器,对自己写的代码进行重构,关于重构的技巧,相信每个程序员的理解都不一样,这方面没有捷径,只能看个人修养与学习,可以参考关于重构的相关书籍
比如代码的坏味道,下面的几种味道,了解哪些呢?
- Duplicated Code
- Long Method
- Large Class
- Long Parameter List
- Divergent Change
- Shotgun Surgery
- Feature Envy
- Data Clumps
- Primitive Obsession
- Switch Statements
- Parallel Inheritance Hierarchies
- Lazy Class
- Speculative Generality
- Temporary Field
- Message Chains
- Middle Man
- Inappropriate Intimacy
- Alternative Classes with Different Interfaces
- Incomplete Library Class
- Data Class
- Refused Bequest
- Comments
5.业务
或许每天写的代码都是crud,但是当你不断的深入,当业务达到一定的熟练度后,你会发现写代码的效率大大提高。有些程序员或许会对这些业务毫不在乎,但是牛逼的大神,往往不仅仅代码写的6,也同样是业务专家!!!
比如做电商,是否能够抓住电商的核心领域模型
比如做crm,是否能够抓住crm的核心领域模型
比如做库存管理,是否能够抓住库存的核心领域模型
6.设备
当你是一个程序员时,你应该拥有的设备如下,如果还没有...好吧,大家都被一个字约束了...穷!!!
- mac
- 显示器24寸 * 2或者更多
- 机械键盘一个,键盘的寿命非常长的,买个好的键盘,绝对超值...
- 腰枕
- 午睡床
- 神器鼠标
- 好的隔音耳机...戴上耳机,世界都是我的了...
如果目前还不能很好的实现键盘盲打...说明写的代码量还远远不够!!!
7.专注度
写5分钟代码,看一下手机微信,假程序员!!!写程序是需要高度投入的,但是现在手机的繁荣,让我们时不时的低头look下手机,效率从何谈起。下次可以试试,将手机屏幕反过来,你会发现...世界如此美好,双手敲击键盘的美妙。
总结
没有捷径,只能日日撸,实在不行,还得夜夜撸...烙铁,你今天撸了吗_