世界童军运动(Scout Movement)的口号“留下一个比你现在看到的更好的世界”完美的适用软件开发活动。通常它是用来鼓励程序员将以前的程序员留下的烂摊子清理干净,但这个道理是双向适用的。所有的软件开发人员都有责任为以后的程序员留下一个更适合他们工作的代码环境。我们有责任去教育他们,即使我们可能永远不会和这些学生见面。
Reg Braithwaite先生曾在 文章里谈到如何选择在项目中使用什么样的技术、工具或编程语言。程序员在做这些决定时必须考虑环境背景:我们将和谁一起工作,我们将要做什么,为什么会选择这样的技术路线。
而我优先考虑的不是当前项目,也不是将和我一起开发的这些人。我优先考虑的是将来的那些我未曾谋面的程序员,那些将会研究我的代码的程序员。
我希望他们不但能修改我的代码或增添功能,而且能从其中学到一些东西,就像是我从现在读到的代码中学到的。
这是一个难以捉摸、很难实现的目标。通过代码传教,你需要把读者带回到当时的环境。如果你使用很老的技术,这反而会带来麻烦。我们必须考虑到所处的编程文化,这是难点。对此我没有建议提供,按你们认为正确的方法做吧。
重要的是你要有愿望去传教,去分享你的知识。如果你可以使用函数式的Javascript技术来条理化你的逻辑,你就有责任这样做。如果你看到一个方法能把一个复杂的Ruby方法变成一个简单算法和数据结构,那么你就一定要这么做。这样做并不是简单的代码更整洁了,更是因为你能让将来的程序员变成一个更好的程序员。
因为这些,我认为,作为程序员关键的一点就是去扩展我们的视野。学习函数式编程,学习各种语言,学习陈述式编程,学习微控制器和界面交互,学习从未听说的所有东西,用编程来教育自己。
[英文原文:
It is our responsibility to teach]&