워밍업 클럽 2기 BE 클린코드&테스트코드 2주차 발자국
Readable Code: 읽기 좋은 코드를 작성하는 사고법 수강 후 작성한 2주차 발자국입니다.
2주차 강의 정리
좋은 주석
우리가 리팩토링할 때 정말 큰 난관 중 하나는 히스토리를 전혀 알 수 없는 코드다.
후대에 전해야할 의사결정의 히스토리를 도저히 코드로 표현할 수 없을때 주석으로 상세하게 설명한다.
자주 변하는 정보는 최대한 지양해서 작성한다.
관련 정책이 변하거나 코드가 변경되었다면 주석도 함께 업데이트한다.
우리가 가진 모든 표현 방법을 총동원해 코드에 의도를 녹여내고, 그럼에도 불구하고 전달해야 할 정보가 남았을때 사용하는 주석
변수와 메서드의 나열 순서
변수는 사용하는 순서대로 나열한다.
인지적 경제성
메서드의 순서
객체는 협력을 위한 존재이다
공개 메서드를 상단에 배치하는것을 선호
공개 메서드끼리도 기준을 가지고 배치하는 것이 좋다
상태변경 >> 판별 ≥ 조회
비공개 메서드는 공개 메서드에서 언급된 순서대로 배치한다
중요한것은 나열 순서로도 의도와 정보를 전달할 수 있다는 것
패키지 나누기
패키지는 문맥으로써의 정보를 제공할 수 있다.
대규모 패키지 변경은 팀원과의 합의를 이룬 시점에 하자
알고리즘 교체하기
재귀를 사용한 DFS도 결국 Stack이다.
→ 스레드마다 생기는 스택 영역에는, 함수를 호출할 때마다 frame이 쌓인다.
→ frame은 지역 변수, 연산을 위한 정보 등을 담고있다.
→ 스택 영역은 결국 크기가 제한되어 있다.
IDE의 도움 받기
코드 포맷 정렬
ctrl + alt + l
코드 품질
Sonarlint
포맷 규칙
.editorconfig
2주차 강의, 미션 회고
강의를 듣고 미션을 수행는 내내 강의를 처음부터 다시 돌려봐야겠다..는 생각이 계속 들었다. 강의는 들었어도 이걸 실제로 적용하려니까 머리가 백지장이 되어버렸다. 지금까지 지뢰찾기 게임을 리팩토링하며 여러가지 스킬들을 배웠는데 내가 놓쳤던 점은 그냥 이런 개념이 있구나,, 받아들이기만 했다는 점이다. 이제는 그냥 받아들이지만 말고 왜 이 개념을 여기에 적용할 수 밖에 없는지, 적용 전과 후가 어떻게 달라졌는지,,까지 사고의 흐름도 완벽하게 파악해야겠다고 생각했다. 이제 다음주부턴 테스트코드 강의 시작이다. 1주차와는 다른 마음가짐으로! 강의 듣고 더 열심히 해야겠다..
댓글을 작성해보세요.