manywaypark's Blog
개발, 검색, 함수

erlang의 one-time assignment를 이용한 간단한 리팩토링에 관해서 설명한다.

erlang에서의 변수 특성:
  1. erlang은 변수에 값(value)를 한번만 할당(assign)할 수 있다.
  2. 한번 값이 할당된 변수는 이전과 동일한 값을 할당하지 않으면 에러가 난다.

확인:
(emacs@desktop)54> Foo = 1.
1
(emacs@desktop)55> Foo = 1.
1
(emacs@desktop)56> Foo = 2.
** exception error: no match of right hand side value 2

리팩토링은 보통 코드의 결과는 그대로 유지하면서 내부를 개선하는 것으로 정의된다.

변수 특성을 이용한 리팩토링 절차:
  1. 리팩토링할 함수를 정한다.
  2. 함수의 결과값을 변수에 저장한다. (적절한 인자를 줄 수도 있다)
  3. 함수 리팩토링 & 컴파일
  4. 같은 변수에 새 함수의 결과값을 대입해본다.
  5. 에러 체크.

간단한 함수의 경우는 이 방법이 별 필요가 없을 수도 있지만, 수백 수천개의 list element들을 결과로 리턴하는 경우에는 꽤나 유용하다.

각각 다른 변수(Before, After)에 대입해서 =:= 연산자로 비교할 수도 있겠지만, 그냥 같은 변수에 대입해 보는 것이 조금 더 편하다. (자연스런 REPL loop + history 기능 활용)

물론 여기서 설명한 것은 간단히 빨리 테스트해보아야할 경우를 위한 것이다. 실제 제품개발에는 eunit같은 unit test tool을 적용해 조직화된 테스트셋을 구성해야한다.

happy hackin'

1 
분류 전체보기 (306)
잡담 (20)
함수형 언어 (65)
emacs (16)
java (18)
tips & tricks (154)
사랑 (1)
가사 (0)
독서 (4)
mobile (6)
비함수형 언어 (2)

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

04-26 12:04