2. 추상화 계층 (2) 클래스, 인터페이스, 마이크로서비스 아키텍쳐(msa)
·
✒️Notes
📚책 정보 - 좋은 코드, 나쁜 코드 (2022) - 톰 롱 (구글 소프트웨어 엔지니어) 지음 📝2장: 추상화 계층 1. null 값 및 의사코드 규약 2. 왜 추상화 계층을 만드는가? 3. 코드의 계층 4. 마이크로서비스는 어떤가? 📍클래스의 이상적인 크기 1. 줄 수 - 300줄 이내 2. 응집력(cohesion) - 한 클래스의 모든 멤버들이 얼마나 잘 속해있는지 순차적 응집력 - A -> B 순서로 요소들이 필요할 때 (한 요소의 출력이 다른 요소의 입력에 필요) - 예) 커피 원두를 갈고 -> 추출이 가능 기능적 응집력 - 한 가지 작업을 위해서 필요한 요소들 모두가 잘 모여 있는 것 - 예) 케이크 만들기 -> 반죽, 케이크 틀, 넓은 접시 등 3. 관심사의 분리(separation of co..
2. 추상화 계층 (1) 계층, API, 함수
·
✒️Notes
📚책 정보 - 좋은 코드, 나쁜 코드 (2022) - 톰 롱 (구글 소프트웨어 엔지니어) 지음 📝2장: 추상화 계층 1. null 값 및 의사코드 규약 2. 왜 추상화 계층을 만드는가? 3. 코드의 계층 4. 마이크로서비스는 어떤가? 📍상위 수준의 문제 ~ 하위 수준의 문제 어떤 디바이스에서 유저가 서버로 메시지를 보낼 수 있는 기능을 만든다고 가정할 때, 상위 수준의 문제 - HTTP를 통해 서버로 메시지 전송 (어떻게?) 알고 있어야 할 하위 문제 (상위 문제에서 도출됨) - HTTP 연결 열기 - 문자열 메시지 보내기 - HTTP 연결 닫기 알 필요 없는 하위 문제 (상위 문제에서 도출됨) - 전송할 수 있는 형식으로 보낼 메시지 문자열 직렬화 (파싱) - HTTP 프로토콜 조작 - TCP 연결 -..
1. 코드 퀄리티
·
✒️Notes
📚책 정보 - 좋은 코드, 나쁜 코드 (2022) - 톰 롱 (구글 소프트웨어 엔지니어) 지음 📝1장: 코드 품질 1. 코드는 어떻게 소프트웨어가 되는가 2. 코드 품질의 목표 3. 코드 품질의 핵심 요소 4. 고품질 코드 작성은 일정을 지연시키는가? 📍주석의 역할 - 주석은 그 코드가 무슨 일을 하는지가 아니라, 그 코드가 왜 거기 있는지를 설명해야 한다 📍코드 퀄리티를 나누는 것은 - 객관적으로 코드의 품질을 평가하려면, 코드를 통해 달성하려는 것(본질적인 목표) 에 대해 생각해야 함 - 본질적인 목표에 도움이 되면 고품질의 코드, 방해가 되면 저품질의 코드 📍코드를 작성할 때 목표로 삼을 4가지 1. 기본적으로 코드가 잘 작동해야 함 2. 코드는 작동이 멈추면 안된다 - 현재는 잘 돌아가지만, 미래..