清洁代码中的降压规则

use*_*750 3 coding-style function-declaration coffeescript

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

例:

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

 BuyTheTicket = ()->
     //some thing

 watch = () ->
     //some thing
Run Code Online (Sandbox Code Playgroud)

我想这样做.

Dan*_*lan 8

CoffeeScript并不会真正影响此规则.该规则并没有什么关系的声明,但即使那样,CoffeeScript的具有声明反正.正如@muistooshort所说,这是一个CoffeeScript函数声明:

functionName = (arg1, arg2) -> 
  functionBodyLine1
  functionBodyLine2
Run Code Online (Sandbox Code Playgroud)

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

highLevel = ->
  doSomethingAlmostAsHighLevel1()
  doSomethingAlmostAsHighLevel2()

doSomethingAlmostAsHighLevel1 = ->
  doSomethingALittleLowerLevel1()

...
Run Code Online (Sandbox Code Playgroud)

关于你的编辑的注意事项:这很好,并遵循降压规则.你的样品有什么问题?

书中没有提到,但是Bob叔叔向我澄清说,当两个函数 - 在同一抽象层次 - 使用相同的低级函数时,它们应该按如下顺序排列:

highLevel1 = -> lowLevel()
highLevel2 = -> lowLevel()
lowLevel = -> ...
Run Code Online (Sandbox Code Playgroud)