我曾经有一年一个人开发一个富客户端App,目前它已经在盈利了。但我记得在刚开始的时候我的技能就像生锈的钝刀,主要是因为代码的问题,而这里我们仅仅讨论代码的问题,架构、结构以及交互的问题我们暂且都放一边。
当时我在这个项目上花了太多的时间,以至于很难抽出身来思考这个问题——从另一个角度来看深埋在地下的设计缺陷。所以我的问题就是我怎样走出自己的局限,以新的的方式看待并让它变得更好?我的几个朋友给了我下面几个建议:
一. 学习新语言或者程序库
- 找到一个有类似技术问题的人,然后跟他聊聊,个人开发者团队用这个办法是很有效的。
- 先做下别的项目,也许一周过后你突然有了什么新点子。
- 查看相似的项目或者产品,比如存在的开源产品,但不要直接复制人家的代码。
- 学习一种新语言、程序库或者框架,这些技术也许会让你轻易洞察出你有困难的问题,然后找到解决办法。
- 读一本好的设计或者语言/架构方面的书。
二. 大声地把代码读出来
坐下来对一段代码、一个模块、一个特性自己大声地朗读和解读,当你发现你自己说的听起来有问题、很蠢,就把它记下来然后想办法去解决。
三. 缩小范围再找bug
看看你经常修改的源代码控制文件,哪一部分代码是最难处理的,哪一部分代码产生了最多的bug, 哪种类型的变化会引起整个代码的连锁反应,一旦缩小了范围,你开始寻找那里为什么会出问题,然后可以看一些系统的分类设计问题的书,比如 Martin Fowler的Refactoring, Herb Sutter的C++ Coding Standards, Robert Martin的Clean Code 等。
当然如果别人能帮你看下代码更好,但总不如你自己想来的有用,因为你比任何人都知道它的问题可能出现在哪里。
四. 跟用户们交流一下
跟用户们交流一下,然后看他们觉得哪里有问题,不管是UX还是速度问题,然后想着怎么让这个系统更流畅,不管是API还是其他的测试驱动开发,很多时候,你会发现只用把这些API放进代码,不用做很大的转变。
Via arstechnica