일반적으로 코드를 더 읽기 좋게 만들고 싶습니다. . 그것은 보통의 기능에 코드의 비트를 추출하는 좋은 생각이 길거나 중첩 기능을 피하고, 제공하는 코드 조각의 목적을 명확히 이름 자체를-설명 : 이제
loop(expr0) ->
case expr1 of
true ->
A = do_something(expr2);
false->
A = do_something_else(expr3)
end,
loop(expr4(A)).
do_something(E) ->
case E of
true -> ...;
false -> ...
end
do_something_else(E) ->
case E of
true -> ...;
false -> ...
end
을, 캐주얼 독자는 것을 알고있다 함수가 인 경우, expr1이 거짓 인 경우 다른 문자는입니다. 좋은 명명 규칙이 많은 도움이됩니다. 주석으로도이 작업을 수행 할 수 있지만 코드가 오래되어 결코 유지하기가 쉽지 않습니다. 나는 또한 실제 함수보다 읽기 쉬운 짧은 함수를 찾는다. 이러한 긴 함수에는 주석이 인라인 된 경우에도 마찬가지입니다.
귀하의 기능이 무엇인지 명확히 밝히 셨다면 코드를 짧게 할 수 있습니다. 짧은 코드는 읽고 유지하기가 더 쉽지만 "똑똑한"구조를 사용하면 너무 짧아 지거나 사용자가 원하지 않는 것과 반대되는 경우가 있습니다. 당신은 기능 머리에 패턴 매칭을 사용하여 시작할 수 있습니다 : 다음
loop(expr0) ->
case expr1 of
true ->
A = do_something(expr2);
false->
A = do_something_else(expr3)
end,
loop(expr4(A)).
do_something(true) -> ...;
do_something(false) -> ....
do_something_else(true) -> ...;
do_something_else(false) -> ....
, 당신은 주요 기능의 반복 피할 수
loop(expr0) ->
A = case expr1 of
true -> do_something(expr2);
false-> do_something_else(expr3)
end,
loop(expr4(A)).
do_something(true) -> ...;
do_something(false) -> ....
do_something_else(true) -> ...;
do_something_else(false) -> ....
(제외하고, 변수가 중첩 문에서 범위는 항상 싫어 기능입니다)
그리고 나는이 코드 조각을위한 것이라고 생각합니다. 더 많은 컨텍스트를 사용하면 중복성을 줄이기 위해 일부 추상화를 수행 할 수도 있지만 추상화 할 때는주의해야합니다. 과용하는 경우 코드를 다시 가려서 유사한 코드를 제거하여 얻을 것으로 예상되는 유지 관리 이점을 잃게됩니다.
꽤 가려 보입니다. 좀 더 많은 코드를 제공해 주시겠습니까? :-) –
들여 쓰기로 코드 서식 지정 – 0xAX
'expr0'은 바인딩되지 않습니다. 이것은 완전한 발췌 문장이 아닙니다. –