일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Refactoring
- Python
- 이더리움
- Ethereum
- Kubernetes
- 알고리즘
- fluent python
- 블록체인
- function
- Thread
- BlockChain
- 동시성
- Algorithm
- RabbitMQ
- 코어 이더리움 프로그래밍
- guru
- docker
- IMAGE
- Network
- BAEKJOON
- AWS
- 백준
- 파이썬
- 플랫폼
- rust
- dockerfile
- Fast API
- Container
- 전문가를 위한 파이썬
- 러스트
Archives
- Today
- Total
글쓰기 | 방명록 | 관리 |
Victoree's Blog
[3] 함수 본문
728x90
함수
플래그 인수는 추하다
- 왠만하면 잘못되었을 확률이 큼
join_funding_channel()
- 한 함수에서 두 가지 작업을 하고 있음 (채널 추가 && 채널 추가 여부 확인)
- id 값을 kakao_account_id, talk_user_id 두 가지를 지원하고 있는데, 하나만 지원하도록
- kakao_account_id 인 경우는 함수 밖에서 처리하고 인풋으로 넘기면 되지 않을까..
인수가 3개 이상이 되면,, 캡슐화 시키는 게 나을까요?
- 보통 같이 응집되어 붙어다니는 이유가 있음
- 클래스나 하나의 오브젝트로 감싸는 방법도 좋음 (케바케)
- core나 앱의 utils에 type을 만들어서 관리하는 방법도 있음
- 물고있는 컨넥션이 있을 때는 클래스로 구성해서 분리해도 좋음
- 굳이 특정 값을 들고 있을 필요가 없을 땐 그냥 서비스 레이어에서 관리하는게 좋음
- 장고 미들웨어는 리퀘스트 리스폰스를 어떻게 처리할 지에 대해 관리하기 때문에 미들웨어에서 관리하는 건 생각을 좀 해봐야 함
함수를 작게 만들어라
- 작게 만들다보면 자연스레 한가지 기능만 하는 함수가 됨
- 추상화 수준도 하나로 동일해짐
함수를 어떻게 짜죠?
- 테스트를 짜고 리팩토링(함수 분리, 이름 변경, 중복 제거)을 두 바퀴 정도는 돌아야 한다
- 테스트 코드의 의존성을 줄이자
- 테스트 케이스 더미 데이터를 변경해야하는 일이 자주 발생할 땐, mock을 하던지 테스트 방식을 점검해볼것
번외
유틸성 api 네이밍 방법
- /{module_name}/{method_name}
- /oauth/authorize (카카오 디벨로퍼스 rest api)
- /mcard/register_withdraw_result 또는 /mcard/register-withdraw-competion
- 이 API를 기반으로 동작하는 서버의 입장이 아닌 호출하는 클라이언트 입장에서 네이밍할 것!
compliance monitoring
- 리뷰를 통해서 좀 해결할 수 있음
- 리뷰를 한동안 안하다가 한방에 몇백파일 보는 일이 없도록,, sprint를 따서 feature를 잘게잘게 넣기
728x90
'Pattern > Clean code' 카테고리의 다른 글
[1+2] 깨끗한 코드&의미있는 이름 (0) | 2021.05.11 |
---|
Comments