클린 코드 5장 - 형식 맞추기

French Marigold·2023년 11월 20일
0

클린코드

목록 보기
5/13

형식을 맞추는 목적 (96p)

  • 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. ⭐️⭐️
  • 그러므로 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다.

적절한 행 길이를 유지하라 (96p)

  • 쓸데없이 코드의 길이를 많이 늘리지 마라. 코드의 길이가 늘어나면 이해하기 어렵다.
  • 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다.

적절한 행 길이를 유지하기 위한 방법들 (98p)

  1. 신문 기사처럼 작성한다.
  • 신문은 보통 최상단에 기사를 몇 마디로 요약하는 표제가 나온다. 첫 문단은 전체 기사 내용을 요약한다. 세세한 사실은 숨기고 커다란 개요를 보여준다. 쭉 읽으며 내려가면 세세한 사실이 조금씩 드러나게 된다. 코드도 그렇게 짠다.
  • 코드의 이름은 간단하면서도 설명이 가능하게 짓는다. 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지 구분할 수 있을 정도로 신경 써서 짓는다. 코드가 아래로 내려갈 수록 의도를 세세하게 묘사한다.
  1. 개념은 빈 행으로 분리하라
  • 서로 다른 개념을 다룬 코드끼리는 빈 행으로 분리시켜 코드의 가독성을 높여야 한다. 코드를 서로 떨어뜨려 놓지 않으면 코드 가독성이 심각하게 떨어진다.
  1. 서로 밀접한 코드는 가까이 붙여놓자.
  • 서로 밀접한 개념은 가까이 둬야 한다. 연관성이 깊은 개념이 서로 멀리 떨어져 있으면 코드를 읽는 사람은 소스 파일과 클래스를 여기저기 뒤지게 된다.
  • 의미 없는 주석으로 괜히 변수와 변수 사이를 띄워놓지 말 것. 1) 변수는 변수를 사용하는 위치에 최대한 가까이 선언한다. 2) 인스턴스 변수는 클래스 맨 처음에 선언한다. 3) 한 함수가 다른 함수를 호출한다면 두 함수는 가까이 배치한다. 그리고 가능하면 호출하는 함수는 호출되는 함수보다 먼저 배치한다. 큰 개념을 담은 함수를 더 위에 배치하고 작은 개념을 담은 함수를 더 아래에 배치한다.
    // 큰 개념을 담은 함수를 더 위에 배치
    private func setTabBarSettings() {
         setTabBarElements()
         setTabBarColor()
         setTabBarImage()
         setTabBarName()
    }
    
    // 작은 개념을 담은 함수를 더 아래에 배치
    private func setTabBarElements() {
         viewControllers = [home, motivation, achievement, deviceBlock, setting]
    }
        
    private func setTabBarColor() {
         let appearance = UITabBarAppearance()
         appearance.configureWithOpaqueBackground()
         appearance.backgroundColor = .white
         tabBar.backgroundColor = .white
         tabBar.tintColor = .systemOrange
    }
        
    private func setTabBarImage() {
         guard let items = tabBar.items else { return }
            
         items[0].image = UIImage(systemName: "house.fill")
         items[1].image = UIImage(systemName: "shared.with.you") 
         items[2].image = UIImage(systemName: "trophy.fill")
         items[3].image = UIImage(systemName: "exclamationmark.octagon.fill")
         items[4].image = UIImage(systemName: "gearshape.fill")
    }
        
    private func setTabBarName() {
         home.title = "홈"
         motivation.title = "동기부여"
         achievement.title = "나의 성취"
         deviceBlock.title = "디지털 디톡스"
         setting.title = "설정"
    }
    4) 코드가 개념적으로 유사할 경우, 서로 가까이 배치한다. (비슷한 동작을 수행하는 함수일 경우, 비슷한 개념으로 엮인 변수일 경우, 서로 가까이 배치한다.)

가로 형식을 맞추라 (106p)

  • 한 행당 코드의 가로 길이는 120자 정도가 적당하며, 가로 길이가 그 이상이라면 줄여야 한다.
  • 간단한 함수를 실행할 때에도 들여쓰기를 제대로 하자.
private func writeBooks() { writeSentences() } (X)

private func writeBooks() { 
		writeSentences() 
} (O)

팀 규칙 (113p)

  • 팀 규칙에 해당하는 요소들
    • 어디에 괄호를 넣을지
    • 들여쓰기는 몇 자로 할지
    • 클래스와 변수와 메소드 이름은 어떻게 지을지 등
  • 팀에 속한다면 팀 규칙을 반드시 따라서, 소스파일을 개개인이 따로 짜낸 것처럼 만들지 않는다.
  • 한 소스 파일에서 봤던 형식이 다른 소스 파일에도 쓰이리라는 신뢰감을 독자에게 줘야 한다.
profile
꽃말 == 반드시 오고야 말 행복

0개의 댓글