摘要
正如雅克·B(JacquesB)所写,并非所有人都同意罗伯特·C·马丁(Robert C. Martin)的“清洁代码”。
您发现发现的开源项目“违反”了您所期望的原则,很可能仅包含其他原则。
我的观点
我碰巧监督了几个非常符合Robert C. Martin原理的代码库。但是,我并不是真的声称它们是正确的,只能说它们对我们有效 -而且“我们”实际上是至少
- 我们产品的范围和架构,
- 目标市场/客户期望,
- 产品要维持多长时间,
- 我们使用的开发方法,
- 公司的组织结构和
- 我们开发人员的习惯,意见和过去的经验。
基本上,这可以归结为:每个团队(无论是公司,部门还是开放源代码项目)都是唯一的。他们将有不同的优先次序和不同的观点,当然他们将做出不同的权衡。这些折衷及其产生的代码风格很大程度上取决于品味,不能被证明是“错误”或“正确”的。团队只能说“我们这样做是因为它对我们有用”或“我们应该更改它,因为它对我们不起作用”。
就是说,我相信,为了能够在多年内成功维护大型代码库,每个团队都应就他们认为适合上述方面的一组代码约定达成一致。这可能意味着采用罗伯特·C·马丁(Robert C. Martin),另一位作者的做法,或者发明自己的做法。这可能意味着正式记录下来或“以示例方式”记录下来。但是它们应该存在。
例
考虑“将代码从一个长方法拆分为几个私有方法”的实践。
罗伯特C.马丁说,这种风格的允许限制每个方法的内容,以抽象的层次上-作为一个简单的例子,一个公共方法很可能只包含调用私有方法一样的verifyInput(...)
,loadDataFromHardDisk(...)
,transformDataToJson(...)
最后sendJsonToClient(...)
,这些方法将有实施细节。
- 有些人喜欢这样,是因为读者可以快速了解高层步骤,并可以选择要阅读的详细信息。
- 有些人不喜欢它,因为当您想了解所有细节时,您必须在类中四处走动以遵循执行流程(这是JacquesB在撰写有关增加复杂性的文章时可能指的)。
教训是:所有人都正确,因为他们有权发表意见。