Symmetry

2008/01/03 09:08
add의 symmetry이름은 remove이다.

젠장! 내가 만들어낸 production code에 난 별생각없이 delete라는 이름을 더 많이 사용한거 같다.

remove와 delete는 미묘하게 의미가 틀리지만, 우리가 이해를 하기에 아주 나쁜 수준은 아니다.

하지만, 우리가 자바를 하면서 애용하는 collection메타포를 보면 add vs remove가 더 어울린다.

symmetry의 사전적인 의미는 무엇일까?

User inserted image

Identifying and clearly expressing symmetry makes code easier to read.
Implementation Patterns

Kent Beck / Addison-Wesley Professional


symmetry의 장점은 반을 이해하면 나머지 반을 이해하기 쉬워서 가독성이 좋아진다. 반대로 symmetry가 깨지면 대칭이 되는 코드를 이해하는데 혼란이 찾아온다. 내가 기대하지 않는 코드의 구현이 되어있기때문이다.

나는 refactoring을 할때 extract method를 자주 애용하는 편이다. 이 refactoring을 진행을 하다가 보면, 어디까지 extract를 할지 고민이 많이 된다.

이때 symmetry를 떠올리자. extract method를 해서 의도가 명확해져서 communication하기 좋은 코드로 발전을 한다면, 코드량이 조금 더 많아 지더라도  extract를 계속하자. extract를 할때는 symmetry를 떠올리면서 이름을 짓는 것이 중요하다.

구현상으로는 symmetry를 지키려 노력을 했지만, 이름에서 symmetry 역시 구현의 symmetry만큼 곰곰히 생각해야 한다.

트랙백 보낼 주소 :: http://www.ologist.co.kr/trackback/818

  1. Local Variable

    2008/01/10 08:32
    삭제
    나는 메소드를 작성할 때 로컬 변수의 사용을 적게 하는 편이다. 메소드가 길어지면, 가독성이 떨어지기때문에 가능한 2개이상 쓰이지 않으면 로컬 변수는 쓰지 않는다.하지만, 로컬변수를 써서 메소드가 길어지는 것을 감수할 수 있는 경우가 있다.로컬변수의 변수명이 코드를 읽을 때 가독성을 도와주는 경우가 있기 때문이다.kent beck의 implementation patterns(chapter6-STATE, P.51)에서 예제를 가져왔다.int top =..
  2. patterns : Most programs follow a small set of laws

    2008/01/10 08:33
    삭제
    켄트벡 엉아의 주옥같은 문구들....Programs are read more often than they are written.There is no such thing as "done". Much more investment will be spent modifying programs than developing them initially.They are structured using a basic set of state and control flow..

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절

  1. 2008/01/03 23:43
    댓글 주소 수정/삭제 댓글
    균형과 대칭의 미는 이미 피카소에서 인정된 사실.. ologist의견에 옳소 외치는 1人
    • 2008/01/05 22:04
      댓글 주소 수정/삭제
      오랫만에 덧글이네요.ㅎㅎㅎ
      대칭의 미는 아름답죠!
  2. anne
    2008/01/04 15:15
    댓글 주소 수정/삭제 댓글
    커피마시고 싶었는데..사실 너무 머리가 복잡해서 쉬고 싶었는데..
    오늘 올로님이 없어서 아쉬워요.
    • 2008/01/05 22:03
      댓글 주소 수정/삭제
      아..이것도 symmetry...!
  3. 2008/01/15 22:06
    댓글 주소 수정/삭제 댓글
    이번에 예습하다가 Guard Clause 70페이지 맨 아래 부분에 인상 깊은 문장이 있었어요. 이것도 대칭 원칙 맞겠죠?

    If-then-else expresses alternative, equally important control flows.
    • 2008/01/16 08:49
      댓글 주소 수정/삭제
      맞습니다..^^
  4. 2008/05/23 04:33
    댓글 주소 수정/삭제 댓글
    걸출한 위치! 많은 감사.
  5. 2008/05/23 05:07
    댓글 주소 수정/삭제 댓글
    우수한 디자인!!
  6. 2008/05/23 05:38
    댓글 주소 수정/삭제 댓글
    중대한 축하!경이롭 위치 위치!
  7. 2008/05/23 06:07
    댓글 주소 수정/삭제 댓글
    걸출한 위치! 많은 감사.
  8. 2008/05/23 06:08
    댓글 주소 수정/삭제 댓글
    블로그를 위한 감사합니다.
  9. 2008/05/23 07:35
    댓글 주소 수정/삭제 댓글
    저에서 유사한 역사는 이었다.
  10. 2008/05/24 01:39
    댓글 주소 수정/삭제 댓글
    유용한 정보. 좋은 디자인.
  11. 2008/05/24 01:54
    댓글 주소 수정/삭제 댓글
    좋은 영역! 걸출한 영역!
  12. 2008/05/24 01:55
    댓글 주소 수정/삭제 댓글
    좋은 영역! 걸출한 영역!

◀ PREV : [1] : ... [86] : [87] : [88] : [89] : [90] : [91] : [92] : [93] : [94] : ... [649] : NEXT ▶

BLOG main image
OOP and Java by ologist

공지사항

카테고리

All (649)
private!! (106)
WEB & IT (140)
Developer (400)