2012-09-28 3 views
1

my previous question 뒤에 대답 (@Andy H)은 관련 문제가 명령문의 순서라고 말했습니다. 따라서 일반적으로 은 "before-after statement dependencies"를 갖는 "correct"/ "right"입니까? 나는 다음과 같은 작업 코드다른 명령문의 순서에 따라 명령문을 작성하는 것이 좋은 생각입니까?

class Article < ActiveRecord::Base 
    acts_as_list ... 

    include MyModule 
end 

이 다음과 같은 코드가 하지 작업

class Article < ActiveRecord::Base  
    include MyModule 

    acts_as_list ... 
end 

를 않는 경우, 예를 들면, 계속하지 않는 몇 가지 "나쁜"이유가 있나요 클래스의 구현? 즉, 일반적으로 은 다른 명령문의 순서에 따라 명령문을 작성하는 것이 좋습니다.

+1

'acts_s_list' 동작을 묶어서 모듈에 추가하지 않는 이유는 무엇입니까? – apneadiving

+0

@apneadiving : 클래스의 일부 메소드 (예 : '<=>'및 '열거 가능')의 맞춤 구현에 의존하는 모듈을 포함하는 경우가 있지만 원칙적으로 잘못된 것은 아닙니다. – tokland

답변

2

"좋은"대 "나쁜"의 문제가 아니라고 생각합니다.

코드가 위에서 아래로 실행되는 경우가 있습니다. 당신이 경우 유일한 해결책은 statement_b 다음 statement_a 전에 statement_b을 넣어 추가 행동에 의존 statement_a에서 일부 코드 ...

0
  1. 이있는 경우

    그래서 : 예, 그것은 허용하지 않습니다. 개념적으로 순서는 중요하지 않습니다. 고정 된 명령을 강제 실행하는 구현입니다. 좋지 않아.

  2. 일반적으로 Ruby와 같은 비 지연 언어에서는 명령문 순서가 중요합니다. 그러나 그것은 동일한 "종속성"이 x = 1; y = 2 * x에있는 것과 상태 및 부작용 (바보 같은 예 : x = []; x << 1 if condition1?; x << 2 if condition2?; x)이 포함 된 것이 아닙니다.

관련 문제