ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2022-01-22일 노개북 클린코드
    Book/Clean Code 2022. 1. 22. 21:44

    오늘 읽은 부분 1장 : 깨끗한 코드

    점점 기술이 발전하고 프로그래밍 언어가 점점 추상화되면서 늘어난다 하더라고 코드 만은 사라질 수 없다. 코드가 고객이 요구하는 사항들을 명시하는 도구이기 때문이다.

     

    나쁜코드

    아직 직장을 다니거나 프로젝트한 경험이 많지 않아 다른 사람의 코드를 볼 기회가 많진 않았지만 확실히 잘짠 코드와 내가 짠 코드를 보면 왜이렇게 추상화 되어있는지 내가 짠 코드인데 다음에 보면 이해가 되지 않는 경우가 많아 다시 코드보면서 복습하려고 하면 코드를 이해하는데만 많은 시간이 걸린 경험이 있다. 저자는 이 나쁜코드로 한 회사가 몰락했다는 이야기를 할정도로 좋은 코드를 강조한다.

    기한안에 완료하려면 나쁜코드를 짜면 안된다!

    이 말이 학부인 나에겐 완전히 이해가 되지 않지만 여러명과 협업을 하면서 제품계발을 할 때 좋은 코드를 짜는 것이 습관화 되어있다면 더욱 생산속도가 높아지는것은 당연하겠다 라고 생각한다. 나의 실력을 위해 또 남을 위해 회사를 위해 클린 코드를 작성해야하는 이유가 생겼다.

     

    깨끗한 코드

    그렇다면 좋은 코드 깨끗한 코드라는 것은 무엇일까? c++창시자인 비야네 스트롭스트룹은

     

    우아하고 효율적인 코드, 오류처리, 한가지에 집중

    라고 표현을 했다. 

    보기 즐거우며 효율적이어야 하고 세세한 사항 까지 꼼꼼하게 처리 하며 각 함수와 클래스와 모듈은 주변 상황에 현혹되거나 오염되지 않은 채 한 길만 걸어야 한다라고 요약해 볼 수 있겠다.

     

    그래디 부치는

     

    가독성

    을 강조하였다.

    사실 나도 이 가독성을 지키며 코드를 짜려고 한다. 변수하나하나 함수 하나하나 클래스명 하나하나 읽기 쉬워야하며 다음에 볼때도 직관적이면서 바로 이해가 되게 하려고 부던히 노력을 한다. 이 가독성이라는 것이 그만큼 중요하기 때문이다. 반드시 필요한 내용만 담고 사실에 기반되게 코드를 짜야한다

     

    데이브 토마스는

     

    가독성 + 다른사람이 고치기 쉬운 코드

    라고 하였다.

    읽기 쉬운코드와 고치기 쉬운 코드는 엄연히 다르다. 테스트 케이스가 없다면 그건 깨끗한 코드라고 할 수 없을 것이다.

    요즘 자바 스프링을 공부하면서 테스트 코드를 짤 일이 많아 졌는데 흔히 단위 테스트라고 하는 테스트를 하면서 내가짠 로직이 정상적으로 잘 작동하는지 처음부터 일일이 디버깅하면서 보는 것이 아니라 직관적이고 간편하게 오류를 찾을 수 있었다.

     

    론 제프리스는

     

    중복을 피해라 표현력을 높여라 작게 추상화해라

     

    라고 하였다. 한 메서드가 여러 기능을 하면 여러개로 쪼개고 표현력을 높이고 인터페이스나 추상 클래스등을 이용해라

     

     

    워드 커닝햄은 

     

    짐작했던 기능대로 수행하는 코드

    일으면서 짐작한 대로 돌아가는 코드가 깨끗한 코드이고 명백하고 단순해 마음이 끌리는 코드가 깨끗한 코드 이다라고 한다.

     

     

    이 책에선 계속 이 깨끗한 코드를 작성하는 방법들에 대해 설명한다고 한다. 매우 기대가 된다. 이미 대충은 읽긴 했지만 다시한번 나에 것으로 만들고 싶고 무의식적으로 어느순간 깨끗한 코드를 짜고 있을 나를 상상하니 기분이 좋닿ㅎ

    'Book > Clean Code' 카테고리의 다른 글

    2022-01-30일 노개북 클린코드  (0) 2022.02.07
    2022-01-28일 노개북 클린코드  (0) 2022.02.07
    2022-01-26일 노개북 클린코드  (0) 2022.01.26
    2022-01-24일 노개북 클린코드  (0) 2022.01.24
    2022-01-21 노개북 클린코드  (0) 2022.01.21

    댓글

Designed by Tistory.