直到解决方案已经做好了合并的准备为止,如此来支持更快速的动态的实验。
你可以以类似的方式来打造自己的项目,目标是相同的:在编写、管理和支持项目的整个期间,增加低成本的互助,同时尽可能减少代价高昂的合作。
与维护不同,在编写代码时,你是在创造新的东西而不是在修改或是修正已有的东西。编写和构思一个项目除了是一门科学之外还是一种艺术形式,其他人会看到实现的情况并会对代码的质量作出判断,而你的名字将会永远和它连在一起。
因此工匠要努力确保代码的干净和美观、应用编程接口(API)的悦目,以及文档和测试用例能够给用户带来是在使用坚实的产品进行工作的这种感受。
在这种心态下工作,对于心灵来说是一种奖赏,也是在制作开源软件时能感受到诸多享受的原因:你不再受困于回应最后期限、客户以及其他的外部需求,而是按照自己的时间来,享受制作一些美好事物的乐趣。
他接着谈到了分支(forking)的价值所在,以及其如何通过在参与者之间启用低成本的互助来降低合作的高成本,这些参与者能够在无需批准的情况下推进项目。这种分支把需要的合作搁置起来,
编写新的项目不仅仅是意味着生成代码:项目的创建和构思包括了编写有着精美风格的让人乐于阅读的代码、在适当的时候为验证项目中的功能创建测试代码,以及制作详尽的有帮助的文档。
技艺
工艺(craft)一般是指艺术行业或是职业需要特殊的技能来手工制作一些东西,通常是小规模生产的物理器件。就软件工匠关注的更多的是质量而非数量这一意义而言,你可以延伸这一定义,把它应用在软件上。
对于工匠来说,