我已经读过罗伯特·C·马丁(Robert C. Martin)的一本名为《清洁代码》的书。在本书中,我看到了许多清理代码的方法,例如编写小的函数,仔细选择名称等。这似乎是迄今为止我所读过的最有趣的有关干净代码的书。但是,今天我的老板不喜欢我看完本书后写代码的方式。
他的论据是
- 编写小函数很痛苦,因为它迫使您进入每个小函数以查看代码在做什么。
- 即使主循环超过300行,也可以将所有内容放入主大循环中,以使其读取速度更快。
- 仅在必须复制代码时编写小型函数。
- 不要使用注释名称编写函数,而是将复杂的代码行(3-4行)放在注释上方;同样,您可以直接修改失败的代码
这与我读过的所有内容背道而驰。您通常如何编写代码?一个主要的大循环,没有小的功能?
我使用的语言主要是Javascript。由于我删除了所有小的明确命名的函数并将所有内容放入一个大循环中,因此我现在真的很难阅读。但是,我的老板喜欢这种方式。
一个例子是:
// The way I would write it
if (isApplicationInProduction(headers)) {
phoneNumber = headers.resourceId;
} else {
phoneNumber = DEV_PHONE_NUMBER;
}
function isApplicationInProduction(headers) {
return _.has(headers, 'resourceId');
}
// The way he would write it
// Take the right resourceId if application is in production
phoneNumber = headers.resourceId ? headers.resourceId : DEV_PHONE_NUMBER;
例如,在我读过的书中,注释被认为是无法编写干净的代码,因为如果您编写小的函数,它们就会过时,并且经常导致未更新的注释(您修改代码而不是注释)。但是,我要做的是删除注释,并使用注释的名称编写一个函数。
好吧,我想要一些建议,哪种方法/做法更适合编写简洁的代码?
isApplicationInProduction()
功能!您必须具有测试,并且如果您的代码与生产时的行为有所不同,则测试无用。就像有意在生产中使用未经测试/未发现的代码:这没有任何意义。