패턴 그리고 객체지향적 코딩의 법칙













  6점  문우식 지음/한빛미디어


이 책을 읽으면서 나초보씨와 나고수씨의 오고가는 훈훈한 대화속에 알쏭달쏭한 패턴들이 자리잡혀 갑니다. 흔히 어떤 패턴을 공부하려면 제목 싱글턴 패턴은 이럴 때, 이렇게, 이런 방식으로 쓰인다라는 식으로 정리가 되어 있는 책들이 많은데,

 

소설처럼 대화에 코드내용을 묻어나게 하고, 적절한 C++코드와 나초보씨가 짠 코드를 우선 보여주고, 리팩토링을 하는 코드가 담겨져 있습니다.

리팩토링을 하면서 패턴을 적용하고, 나고수씨의 노하우도 알게 되고, 나초보에 해당하는 저는 얻을게 많은 것 같습니다.

 

물론 익숙하지 않은 C++코드이지만, 객체지향 언어를 하는 사람은 문안하게 때려  맞춰 볼 수 있고, 너무 어렵지 않게 그 속에서 어떻게 해결할 것인가를 같이 고민하게 합니다.

다만 패턴이다 보니 확 이해 안가는 부분이 있어서 다시 한번 읽어야 할 듯 합니다.


초보자에게는 약간은 어려운 얘기 같은 듯...

 

 

깨끗한 코드를 작성하기 위해서는,

-       다른 개발자들에게 API를 제공한다는 마음으로 개발하라.

-       남이 봐도 쉬운 코드를 만들어라.

-       역사적인 이유를 만들지 말아라.

-       자신의 코드만 보지 말아라.

-       기존의 코드와 통일성 있는 코드를 작성하라.

-       커뮤니케이션 하라.

-       항상 ‘1년 뒤에 이 소스를 본다면?’ 이라고 생각하라.

-       리팩토링하라.

 

진정한 개발자는 개발을 즐긴다. 코드는 개발자의 생각을 표현해 내는 최종 매개체이다. 자신의 가치를 높이기 위해서는 이 표현의 속도를 높여야 한다. 정해진 시간에 많은 일을 할 수 있다면 여러분은 더 많은 일과 경험을 쌓을 수 있을 것이다. 시간에 쫓기기보다는 시간을 관리할 수 있을 정도까지 퍼포먼스를 끌어 올려야 한다.

 

컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 만들수 있다.

좋은 프로그래머는 사람이 이해할 수 있는 코드를 만든다.

-       마틴 파울러

 

조악한 테크닉에 의존하지 말자.

-       개발팀에는 조악한 테크닉보다는 팀웍이 필요하다는 결론이 나온다. 현실에서는 모두가 같은 수준에서 제품을 개발할 수 없는 사실이 분명히 존재한다. 그러므로 소스 코드는 통일된 형태로 모든 개발자가 가장 쉽고 빠르게 볼 수 있는 형태로 작성되어야 한다. 끊임없이 공부를 해야 이해할 수 있는 소스보다는 모두들 쉽게 이해할 수 있고 누구든지 쉽게 개발할 수 있어야 진정 가치가 높은 소스이다.

  1. 2008/01/04 10:01 [Edit/Del] [Reply]
    다른 개발자들에게 API를 제공한다는 마음으로 개발하라.

    요게 팍 마음에 와서 닿는군요~
  2. 2008/01/04 13:21 [Edit/Del] [Reply]
    역시 산골소년님과 함께 멋진 버리^^님.......

    그런데 ‘역사적’인 이유를 만들지 말아라. 라는 말에 뜻이 무엇인가요?
    큰 실수가 일어나지 않도록 조심하라는 얘기인가요?
    알려주세요.^^
    • 2008/01/05 05:08 [Edit/Del]
      저는 완전 갈길이 멀죠..
      책에도 역사적인 이유가 자세히는 안나와서
      저도 딱 이해는 안된 부분인데
      책의 예에서는 조직 개편이나 다른 프로젝트에 투입되는 따위의 이유로 소스의 책임이 바뀔 수 있는데 그 때 어쩔수 없어서, 혹은 내 책임이 아닌 소스로 미루는
      그런 이유때문에 ugly한 코드가 결코 생겨서는 안된다는 뜻 같아요~
  3. seattle
    2008/01/04 18:14 [Edit/Del] [Reply]
    남이 봐도 쉬운 코드를 만들어라.. 이거네요 이거..

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret

Refactoring

Posted at 2007/06/18 21:47// Posted in 나만의 작업
마틴 파울러의 Refactoring에서 나온 좋은 문구

more..


마틴 파울러의 리팩토링 분류방식

펼쳐서



Eclipse 3.2를 활용한 리팩토링 - (1)      Eclipse 3.2를 활용한 리팩토링- (2)
Eclipse의 refactoring 기능을 잘~ 못쓰는데
날짜별, 시간별 history도 있군요. 역시나... 이게 있으면 맘편히 refactoring 해도 되겠군요.

나쁘고 건강하지 않은 코드의 속성
중복
같은 역할의 코드가 중복되는 경우를 의미

뚱뚱
일반적으로 프로그램 요소가 지나치게 한곳에 집약되어 있거나 너무 많은 의미를 포함하고 있거나 이질적인 요소들이 같이 모여 있는 경우를 의미

홀쭉
프로그램 요소의 의미나 기능이 지나치게 빈약하여 독립적으로 존재할 필요가 없는 경우를 의미


리팩토링
수정 -> 테스트 -> 수정 -> 테스트...
소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것
퍼포먼스 최적화는 종종 코드를 어렵게 만든다. 하지만 필요한 퍼포먼스를 얻기 위해서는 그렇게 해야 한다.

리팩토링은 소프트웨어 디자인을 개선 시킨다.
리팩토링은 소프트웨어를 더 이해하기 쉽게 만든다.
리팩토링은 버그를 찾도록 도와준다.
리팩토링은 프로그램을 빨리 작성하도록 도와준다.

기능을 추가할때 리팩토링을 하라
버그를 수정해야할때 리팩토링을 하라
코드 검토를 할때 리팩토링을 하라

리팩토리링은 그냥 지금 고치면 된다.

더 참고 URL : 리팩토링 간단한 정리




  1. 2007/06/19 15:53 [Edit/Del] [Reply]
    전 다른 사람이 코딩한 것을 봤을때, 중복도 용서가 되고, 뚱뚱도 용서가 되고, 홀쭉도 용서가 되지만 알수없는 기이한 코딩에 대한 주석이 없을때의 슬픔은 ㅠㅠ


    주석 달고 삽시다!

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret