撇开题目不谈,我个人认识一些非常有才华的开发人员,他们可以一帆风顺地创建极好的软件。正是这些天赋人士,使得外行人对我们这个行业充满了很高的期望。但我要说的一个可悲的事实是:并非每个人都是忍者/大师/明星开发者。
我就不是这些闪耀的新星,我只是一名平庸的开发者。如果你也不是天才玩家,那么本文将指导你如何在这个行业中生存下去。
最简单的事情——只要google一下
我记不了很多东西。像标准库中的函数和方法、参数位置、软件包名称,样板代码等等,都在我脑容量之外。
所以,我必须使用google搜索。我每天都这样做。我也一直在重复使用旧项目的代码。有时我甚至从StackOverflow或Github复制粘贴答案。是的,我的开发其实可称之为:StackOverflow驱动开发。
但我并不孤单。许多其他开发人员也这样做。有一个受众面很广的twitter讨论就是由Ruby on Rails的创建者所启动的。
那么,为什么一开始会认为这种行径是不好的呢?因为它有若干缺点:
- 会导致你复制到糟糕的设计决策或易受其他人攻击的代码
- 会形成一种依赖心态:要是我们不能google到内容,那么只能向人求助了
- 没有网就不能工作
但是,我不认为这些是大问题。它甚至可以作为是你的秘密武器。我有一些建议可用于减少其负面影响。
生存指南:
- 使用IDE来获得自动完成和建议,所以你不必google编程语言的基础内容;
- 记住你曾解决过这个问题的地方(而不是如何解决的)。这样你便可以随时在那里找到解决方案;
- 所有粘贴到项目中的代码你稍后都应该进行分析、重构和审查。这样我们在快速提供解决方案的同时也不会损坏项目。
一切保持简单明了
我们说什么,机器就做什么。即便是错的,它们也毫不迟疑。所以,软件开发中的主要问题不是机器,在于开发人员的心智能力。而这玩意提升的空间是非常有限的。所以,我们——作为平庸的开发人员——不能将有限的脑力浪费在创建复杂的抽象、模糊算法或不可读的长代码块上。你需要保持一切简单明了。
但是,我们怎么判定代码是简单还是复杂?我们使用WTFs / Minute方法来衡量代码质量。
本问参考:http://www.codeceo.com/article/i-am-mediocre-developer.html