책을 읽기 위해서 필요한 기술
- 자바 입문(문법 기초)
- 내가 사용할 언어에 대한 초급 이상(자바를 내 언어로 생각해봐야 합니다.)
- 한 번이라도 프로그램을 만들어본 적 있거나 구조에 대해 고민을 해본 적이 있는 사람
책을 읽고 난 뒤
묻지 말고 명령하기
이 책은 요즘 재밌게 보고 있는 .Net Dev 커뮤니티에서 한 분이 추천해 주셔서 읽어보았습니다.
https://forum.dotnetdev.kr/t/topic/7322
제목을 보고 웃긴 점도 있었지만 리팩토링과 프로그램 설계 부분에서
초보자도 쉽게 읽을 수 있다는 점에 마음이 끌렸습니다.
올해 들어 다양한 리팩토링, 설계, 디자인 패턴 책을 봤지만 다들 인기 있고 좋은 책이었지,
쉽다고 느낀 적은 없었거든요.. 다른 책을은 2~3번 더 읽고 나서야 조금씩 이해되는 부분이 있었습니다.
이 책은 리팩토링, 설계 부분에서 제가 읽었던 어떤 책 보다 쉬운 느낌이었습니다.
프로그래밍 실력보다는 프로그램을 만들고 난 뒤, 만들면서 구조적으로 고민을 한 번이라도 해본 적 있다면
다른 책 보다 우선적으로 읽고 키워드와 팁을 알아가면 좋겠다는 생각이 들었습니다.
아래는 제가 이 책을 읽으며 중요하다고 생각된 부분을 조금 정리해 보았습니다.
횡단 관심사(Cross-cutting con-cern)
로그 출력과 오류 확인은 App의 모든 동작에 필요한 기능이다.
이 처럼 다양한 상황에서 넓게 활용되는 기능을 횡단 관심사라고 한다.
- 로그 출력
- 오류 확인
- 디버깅
- 예외 처리
- 캐시
- 동기화
- 분산 처리
묻지 말고 명령하기
멤버변수를 직접 제어하는 것이 아니라, 메서드를 통해 명령해서 값을 얻어내는 것이 좋다.
가드 절, 조기 리턴을 사용
메서드가 무거워지고 로직이 정신없어지는 것을 막아준다.
커맨드, 쿼리 분리(CQS : Command-Query Separation)
메서드는 커맨드 또는 쿼리 중 하나만 하도록 설계해야 한다.
메서드 종류 구분 | 설명 |
커맨드 | 상태를 변경하는 것 |
쿼리 | 상태를 반환하는 것 |
모디파이어 | 상태를 변경하고 반환하는 것 |
모디파이어를 쓸 수밖에 없을 때도 있지만 최대한 커맨드와 쿼리로 분리해서 작업한다.
응집도, 결합도
- 응집도 : 클래스에서 기능에 대한 관심사라고 생각하면 되며(데이터와 행위가 같이 있다거나 등), 높아야 좋다.
- 결합도 : 클래스에서 다른 클래스를 참조하는 수준이며, 낮아야 좋다(느슨한 결합)
TDD(테스트 주도 개발)
테스트 주도 개발을 하게 되면 테스트 코드를 만드느라 생산이 저하될 것이라고 생각하지만, 사실은 이슈 및 리팩토링에 도움이 많이 되기 때문에 생산성이 올라간다.
기회가 된다면 나도 해보고 싶은 개발 방법이다.
'리뷰&후기 > 개발자가되고싶다면' 카테고리의 다른 글
[책 후기] 챗GPT API를 활용한 챗봇 만들기 - 이승우 (0) | 2024.04.23 |
---|---|
[컨퍼런스] 2023 .Net L!ve Fall 후기 (0) | 2023.10.25 |
[강의 후기] 리팩터링 구루 - 리팩터링 코스 (0) | 2023.07.01 |
[책 후기] 리팩터링(Refactoring) - 마틴 파울러 (2) | 2023.06.10 |
[책 후기] C#을 다루는 기술(C# In Depth) - 존 스킷 (0) | 2023.05.29 |
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!