2013-08-16 1 views
1

클린 코드 (제 3 장, 함수 당 하나의 추상화 수준)에서 (상단 및 하단 레벨의 하이 레벨 기능)에 대해 뭔가가 있습니다.
coffeescript에 함수 선언이 없기 때문에 coffeescript를 사용할 때 어떻게해야합니까?클린 코드의 스텝 다운 규칙

예 :

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

BuyTheTicket =()-> 
    //some thing 

watch =() -> 
    //some thing 

나는 이런 식으로하고 싶지.

+0

'F를 = (x) -> ...'함수 선언으로 간주합니까? 그리고 당신은이 * Stepdown Rule이 말하는 것에 대해 좀 더 명쾌하게되기를 원할 것입니다. –

+0

스텝 다운 규칙 : "우리는 모든 기능을 다음 수준의 추상화 단계에서 따라야합니다." 이것은 선언되지 않은 다음 레벨 함수를 사용할 수 있음을 의미합니다. – user2666750

답변

7

CoffeeScript는이 규칙에 실제로 영향을 미치지 않습니다. 이 규칙은 선언과 관련이 없지만 커피 스크립트 에 선언이 있습니다. @muistooshort 말했듯이, 여기에 커피 스크립트 함수 선언이다 :

functionName = (arg1, arg2) -> 
    functionBodyLine1 
    functionBodyLine2 

그 괄호는 선언에 선택적 인수가없는 경우. 그것은 완벽하게 괜찮 및 스텝 다운 규칙을 다음과

highLevel = -> 
    doSomethingAlmostAsHighLevel1() 
    doSomethingAlmostAsHighLevel2() 

doSomethingAlmostAsHighLevel1 = -> 
    doSomethingALittleLowerLevel1() 

... 

참고하여 편집에 대해 : 여기에 행동 커피 스크립트의 스텝 다운 규칙의 예입니다. 샘플에 어떤 문제가 있습니까?

는이 책에서 언급하지만, 삼촌 밥은 나에게 분명히 두 가지 기능을 할 때되지 않음 - 추상 같은 수준이 - 같은 낮은 수준의 기능을 사용하여, 그들과 같이 주문해야 :

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

그래,이 부분에 대해 오해가있는 것 같아! 삼촌 밥 소싱에 대해 – user2666750

+0

+1 감사합니다. –