일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- codecov
- dictionary
- ORM
- Query
- Programmers
- Gunicorn
- Git
- TDD
- algorithm
- stack&que
- stateful
- utils
- Python
- Stack
- was
- Bruteforce
- HTTP 완벽 가이드
- stateless
- SQL
- ws
- AWS
- Unit Testing
- Django
- Q objects
- 백준
- pytest
- postreSQL
- combinations
- greedy
- permutations
- Today
- Total
해피 코딩!
pycon - 우아하게 준비하는 테스트와 리팩토링 - 한성민님의 발표를 듣고 본문
클린코드
클린 코드는 코드의 잠재적 문제를 해결하여 생산성을 높입니다.
Guard Clause
는 Indent를 줄여줍니다.- Guard Clause 자료 1
- Gaurd Clause 자료 2
- 쉽게 말하면 인텐트를 줄이는데 else를 사용하지 않고 if 만 통해서?
None Object
는 코드의 복잡한 조건을 간단하게 만들어줍니다.- 최대한 get을 활용하여, None obj를 비교하는 형태로 코드를 작성하면 코드의 양이 줄어들며 가독성이 늘어납니다.
None Obj
를 작성하는 가이드라인을 보는것을 추천합니다.- 찾아도 안나오는데 찾으신 분들 댓글 부탁드립니다.
Bool, Object에서 None, False를 체크할 경우 'Not'
Syntax Sugar
를 사용하세요.Syntax Sugar
는 인간 친화적인 직관적인 코드라고 이해하면 됩니다.Syntax Sugar
의 반대는Syntax Sort
인데, 클린코드에서는Syntax Sugaring
을 지향합니다.
짧은 조건은 삼항 연산자를 사용하세요.
단순한 형태의 If, Switch는 Dict accessing 형태로 사용하세요.
함수 이름은 snake_case로 지정, 행동(Action)을 이름의 가장 앞에 명명하세요.
주석이 필요한 복잡한 로직은 함수로 분리하고, 함수 명을 주석 대신 사용하세요.
3줄 이상의 라인이 중복된 코드는 함수로 분리하세요. (그 이하는 인라인 함수 혹은 인라인 유지)
주석이 없는 클린 코드가 제일 좋은 코드임을 명심하세요.( 주석이 달리지 않아도 이해할 수 있는 코드)
클래스와 함수에 너무 많은 기능을 주지 마세요. 많은 기능이 묶인 함수면 코드 기능별로 함수를 분리하세요.
함수에 부여되는 인수가 4개를 넘지 않도록 주의하세요.
복잡한 조건은 캡슐화를 하고 직관적인 이름을 명시하여 쉽게 만들어주세요.
.py 파일에 두 개 이상의 클래스를 정의하지 마세요. (클래스 별로 파일을 분리하세요)
테스트 그리고 리팩토링
특정 조건에서만 발생하는 버그로 인해, 일부는 동작하고 일부는 동작하지 않는다면 사람이 검수로 버그를 발견하기도 힘들어집니다.
후기
Clean Code
: 클린코드에 대한 이해가 부족하였는데 해당 영상과, ppt 내에 있는 코드를 보면서 쉽게 이해할 수 있었습니다. 앞으로 코드를 작성할 때 주의해야 할 사항을 해당 내용을 참고하여 작성을 할 것입니다.
TDD
: 각각의 내용을 블로그에 정리한 바가 있기 때문에 복습의 느낌으로 들을 수 있었다.
블로그에 내용을 정리하기 위해 이해가 안가는 각각의 단어를 찾아보게 되어서 발표 내용을 이해할 수 있었습니다.
'TDD' 카테고리의 다른 글
단위 테스트 활용 방법: JUnit 참조 가이드 를 읽고 (0) | 2020.12.02 |
---|---|
단위 테스트의 활용 (0) | 2020.12.01 |
TDD란 (0) | 2020.12.01 |
클린 코드를 위한 테스트 주도 개발 4장 (2) | 2020.12.01 |