Readable Code (1) : 읽기 좋은 코드를 작성하는 사고법 (Day2)

Readable Code (1) : 읽기 좋은 코드를 작성하는 사고법 (Day2)

추상

강사님이 최대한 더럽고 시간 복잡도가 높은 최악의 코드를 골라오셨고, 우리는 이번 시간을 통해 이 코드를 읽기 좋은 코드로 거듭나기 위한 순서를 따라갔다.

 

1. 직관적으로 변수이름을 바꾸기를 실행하자.

예를 들어, for loop에서 단순히 i, j로 두던 것을 row, col로 바꾸는 등의 refactoring을 진행했다.

Refactoring Variable

#       for (int i = 0; i < 8; i++) {

#           for (int j = 0; j < 10; j++) {

#               board[i][j] = "□";

#            }

#        }

        //수정 사항: 변수 이름 직관적으로 짓기

        for (int row = 0; row < 8; row++) {

            for (int col = 0; col < 10; col++) {

                board[row][col] = "□";

            }

        }

 

 

2. 잘 쓰여진 메서드는 주제가 하나다.

한 가지를 실행하는데 집중한다. 코드를 읽고 이 메서드가 하는 일이 여러 개라면 작은 메서드로 나누는 게 좋다.

기본적이지만 처음엔 어려웠던 부분인데 다시 짚고 넘어가봐서 좋았다.

 

3. 메서드 선언부

- void 대신 충분히 반환할 값이 있는지 고민해보는 습관을 가지자. 반환값이 있다면 테스트도 용이해진다. 물론 void가 더 깔끔한 순간도 많으나, 한번쯤 고민해보자.

- 구체화된 타입을 반환받는다.

- 의미가 명확한 변수 이름을 사용한다.

_사용하는 입장에서도 더 편하게 쓸 수 있고, 후손 개발자 입장에서도 어떤 것을 넣어야하는 변수인지 알기 쉽다._

 

 

4. 추상화 레벨

method를 추출한다는 것 자체가 외부 세계와 내부 세계의 경계를 만든다는 뜻이다. 하나의 세계 안에서는 추상화 레벨이 동등해야 한다.

추상화 레벨이 맞지 않아 일어나는 문제가 꽤나 잘 들어난다.

추상화 레벨이 맞지 않는 상황이 나타나면 클린코드라 하기 어렵다.

 

자세한 사항은 개인 블로그에 기재하였습니다.

https://velog.io/@dhlee47-l/Readable-Code-%EC%9D%BD%EA%B8%B0-%EC%A2%8B%EC%9D%80-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%9E%91%EC%84%B1%ED%95%98%EB%8A%94-%EC%82%AC%EA%B3%A0%EB%B2%95-Day2

댓글을 작성해보세요.

채널톡 아이콘