DAY 6 - 22/05/02
오늘 읽은 범위 : 5장. 형식 맞추기
책에서 기억하고 싶은 내용
- 세로 밀집도( p.100 )
- 서로 밀접한 코드 행은 세로로 가까이 놓아야 한다.
- 종속 함수. 한 함수가 다른 함수를 호출한다면, 두 함수는 세로로 가까이 배치한다. 또한 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치한다.( p. 104 )
- 가로 공백과 밀집도( p. 108 )
- 가로로는 공백을 이용해 밀접한 개념과 느슨한 개념을 표현한다.
- 함수와 인수는 서로 밀접하므로, 이어지는 괄호 사이에는 공백을 넣지 않았다.
- 승수 사이에는 공백이 없다. 곱셈이 우선순위가 가장 높기 때문이다. 항 사이에는 공백이 들어간다.
- 정렬이 필요할 정도로 목록이 길다면 문제는 목록의 길이지 정렬 부족이 아니다. 선언부가 길다면 클래스를 쪼개야 한다는 의미다.( p. 110 )
- 팀 규칙
- 팀에 속한다면 자신이 선호해야 할 규칙은 팀 규칙이다.
오늘 읽은 소감? 떠오르는 생각
구글 자바 스타일 문서를 확인해보니 매개변수가 있는 메서드를 특별하게 예시로 들어주지는 않았다.
Horizontal Whitespace( 가로 공백 ) 이 사용되는 예시들은 다음과 같다.
1. if, for, 혹은 catch와 같은 예약어는 해당 줄에서 뒤에 오는 여는 괄호 '('에서 띄운다.
2. else, catch와 같은 예약어를 해당 줄에서 앞에 오는 닫는 중괄호 '}'에서 띄운다.
3. 중괄호 '{'를 여는데에 두 가지 예외가 존재한다.
3-1. @SomeAnnotation({a, b}) - 어노테이션에 공백이 사용되지 않는다.
3-2. String [][] x = {{"foo"}} - 아래 9번 항목에 따라서, 공백이 필요하지 않음
4. 이항 혹은 삼항 연산자의 양쪽에 적용된다. 아래와 같은 "연산자 같은" 심벌에도 사용이 된다.
4-1. 결합형 타입 범위의 & : <T extends Foo & Bar>
4-2. 여러 예외를 처리하는 catch 블록 내의 파이프 : catch(FooException | BarException e)
4-3. 향상된 For문에서의 콜론(:)
4-4. 람다식에서의 화살표: (String str) -> str.length()
하지만, 메서드 참조를 의미하는 두 개의 콜론(::)은 공백 없이 Object::toString과 같이 사용된다.
또한 점 구분자 '.' 은 object.toString()과 같이 사용된다.
5. .:; 혹은 캐스팅에서 닫는 괄호 ')'
6. 주석의 시작을 의미하는 //와 특정 내용 사이에 존재 가능하다. 여러 개의 공백도 허용된다.
7. 주석의 시작을 의미하는 //와 주석 텍스트 사이에 존재 가능하다. 여러 개의 공백도 허용된다.
8. 선언 타입 유형과 변수 명 사이: List <String> list
9. 배열 초기화 시 중괄호 사이는 선택 가능하다. new int []{5, 6}과 new int[] { 5, 6 } 모두 사용 가능하다.
10. 타입 어노테이션과 [] 혹은... 사이
위 규칙들은 줄의 시작이나 끝에 추가 공간을 필요로 한다거나, 금지하는 내용으로 해석하지 않는다.
오직 내부 공간만 다룬다.
궁금하거나, 잘 이해되지 않는 내용
- 없음
'book > cleancode' 카테고리의 다른 글
클린 코드[Clean Code] TIL #8. 오류 처리 (0) | 2022.05.05 |
---|---|
클린 코드[Clean Code] TIL #7. 객체와 자료구조 (0) | 2022.05.03 |
클린 코드[Clean Code] TIL #5. 주석 (0) | 2022.04.28 |
클린 코드[Clean Code] TIL #4. 함수 (0) | 2022.04.26 |
클린 코드[Clean Code] TIL #2. 의미 있는 이름 (0) | 2022.04.24 |