일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 데이터모델링
- 파이썬
- clean code
- table full scan
- heapq
- RAC
- 클린 코드
- SQL튜닝의시작
- database
- SQLD
- 클린코드
- SQLP
- 알고리즘
- 리트코드215
- 결합인덱스구조
- 오라클튜닝
- 오라클
- B*Tree인덱스구조
- db
- 리눅스
- intellij
- 조인
- B*Tree
- join
- 친절한SQL튜닝
- leetcode215
- index fast full scan
- B*Tree인덱스
- Oracle
- 로버트C마틴
- Today
- Total
개발노트
Clean Code 클린 코드 란? 본문
1. Clean Code 가 뭔데?
Clean code 깨끗한 코드라는 것은,
(작성자 뿐만 아니라 이외 사람들이) 읽고 고치기 쉬운 코드이다.
추가로, 한 가지에 집중되어 있으며 테스트 케이스가 있는 코드를 말한다.
2. Clean Code 왜 필요하지?
Clean Code 는 빠른 유지보수가 가능하다.
Software 개발에서는 처음 개발하는 것보다 유지보수 업무가 훨씬 많다. 따라서 유지보수 하기 쉽게 만드는 것이 중요하며, Clean Code 를 통해 가능하다.
"Clean Code" 가 만들어진건 어쩌면 많은 소스코드들이 깨끗하지 않기 때문에 나타난 용어이지 않을까?
그러면 소스들이 더러워진 이유는 뭘까?
소스가 더러워지는 가장 큰 이유는 바로 기한이다.
기한을 맞추기 위해 나쁜 코드를 작성하게 되고, 나쁜 코드 위에서 유지보수를 지속적으로 하게 되며, 점점 더 나쁜 코드 위에서 유지보수를 하므로, 속도가 점차 느려진다.
3. Clean Code 는 어떻게 하는건데?
1) 네이밍 잘하기
개발자들이라면 공감할 것이다. 네이밍이 가장 고민스럽다는 것을!!😫
Clean Code 를 위해서 아래 4가지 Naming Rule 을 적용하자
① 읽는 사람마다 해석이 다를 수 있는 흔한 약어는 피한다.
예) abc, ex, xy, hp 등
② 어떤 곳이든 다 붙일 수 있는 만능 용어는 자제하자.
예) Info, Data, Value, Processor, Manager 등
③ 발음하기 어려운 이름은 피하자.
예) genYMD
④ 읽는 사람이 차이를 알 수 있는 이름을 쓰자
예) money vs moneyAmount, nameString vs name 등
2) Clean 한 Method 만들기
① 작게 만들자
Method의 길이는 적을수록 좋다.
들여쓰기 레벨도 최대 2단까지만 있는 것이 가장 바람직하다.
② 한가지만 하자
한 가지 목적을 수행하는 코드가 되도록 추상화를 해야한다.
그리고 일부만 추상화 하는 것이 아니라 모든 코드를 같은 수준(level)로 추상화를 한다. 이는 가독성을 높여준다.
③ 함수의 배치
코드는 위에서 아래로 읽혀야 한다.
④ Method 인수 최대한 적게 쓰기
가장 좋은 경우는 인수가 없는 것이다.
함수 인수의 개수가 2개 이상이되면 이해하는데 시간이 걸린다.
인수가 많이 필요하다면 독자적인 클래스 생성을 고려해보는 것도 좋은 방법이다.
⑤ 함수의 이름은 서술적인 이름을 사용하자
⑥ 이름을 붙일 때는 일관성이 있어야 한다
⑦ 함수 안에서 2가지 동작을 수행하는 플래그(Flag) 인자는 피하자.
차라리 함수를 나누는 것이 좋다.
'Computer Science > Software Enginerring' 카테고리의 다른 글
TDD (Test Driven Development) (0) | 2023.05.04 |
---|---|
SOLID 객체지향 5가지 원칙 (0) | 2023.04.24 |
Refactoring 리팩토링 (0) | 2023.04.24 |
IntelliJ 유용한 단축키 모음 (0) | 2023.04.18 |
IntelliJ IDEA Community 설치 & 프로젝트 생성 (0) | 2023.04.18 |