清洁代码中的降压规则

时间:2013-08-16 06:05:45

标签: coding-style coffeescript function-declaration

在清洁代码(第3章,每个功能的一个抽象级别)中,有一些关于 Stepdown Rule (接下来是高级别和低级别的高级别功能)的内容。
   我使用coffeescript时应该怎么做,因为coffeescript中没有函数声明。

的示例:

 seeAMovie = ()->
     BuyTheTicket()
     watch()

 BuyTheTicket = ()->
     //some thing

 watch = () ->
     //some thing

我想这样做。

1 个答案:

答案 0 :(得分:8)

CoffeeScript并不会真正影响此规则。该规则与声明没有任何关系,但即使这样做,CoffeeScript 确实仍然有声明。正如@muistooshort所说,这是一个CoffeeScript函数声明:

functionName = (arg1, arg2) -> 
  functionBodyLine1
  functionBodyLine2

如果没有参数,那么这些括号在声明中是可选的。以下是CoffeeScript中的降压规则示例:

highLevel = ->
  doSomethingAlmostAsHighLevel1()
  doSomethingAlmostAsHighLevel2()

doSomethingAlmostAsHighLevel1 = ->
  doSomethingALittleLowerLevel1()

...

关于你的编辑的注意事项:这完全没问题,遵循降压规则。您的样品有什么问题?

书中没有提到,但鲍勃叔叔向我澄清说,当两个函数 - 在同一抽象层次 - 使用相同的低级函数时,它们应该这样订购:

highLevel1 = -> lowLevel()
highLevel2 = -> lowLevel()
lowLevel = -> ...