개발 관련 공부/클린코드16 클린코드 11장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 11장 시스템 도시를 세운다면? 도시가 잘 돌아갈 수 있는 이유 중 하나는 적절한 추상화와 모듈화이다. 큰 그림을 이해하지 못할지라도 개인과 개인이 관리하는 구성요소는 효율적으로 돌아간다. 시스템 제작과 시스템 사용을 분리하라 소프트웨어 시스템은 (애플리케이션 객체를 제작하고 의존성을 서로 '연결'하는 준비 과정과 (준비과정 이후에 이어지는) 런타임 로직을 분리해야 한다.) Main 분리 시스템 생성과 시스템 사용을 분리하는 한 가지 방법. 생성과 관련한 코드는 모두 main이나 main이 호출하는 모듈로 옮긴다. 즉 애플리케이션은 객체가 생성되는 과정을 전혀 모른다. 팩토리 객체 생성 시즘을 애플리케.. 2022. 9. 16. 클린코드 10장 10장 클래스 클래스 체계 변수가 먼저 나오고, 그다음에 함수가 나온다. 변수 순서: static->public->private->비공개 인스턴스 함수 순서: 공개함수->자신을 호출하는 비공개 함수(추상화 단계가 순차적으로 내려감) 캡슐화 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫다. 클래스는 작아야 한다. 큰 클래스 하나보다는 작은 클래스 여럿으로 이뤄진 시스템이 더 좋다. 클래스 이름은 해당 클래스 책임을 기술해야 한다. 간결한 이름이 떠오르지 않는다면 클래스 크기가 너무 커서 그렇다. 단일 책임 원칙 단일 책임 원칙은 클래스나 모듈을 변경할 이유가 하나뿐이어야 한다는 원칙이다. (모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함) 책임=변경할 이유 를 파악하려.. 2022. 9. 16. 클린코드 9장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 9장 단위 테스트 TDD 법칙 3가지 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위 3가지 법칙을 따르면 개발과 테스트를 빠르게 수행할 수 있다. 단 이렇게하면 테스트 케이스가 너무 많이 나와서 관리가 힘들 수 있다. 깨끗한 테스트 코드 유지하기 지저분한 테스트 코드를 내놓느니 차라리 안하는게 낫다. 테스트 코드가 복잡할수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸린다. 테스트 코드는 실제 코드 못지 않게 중요하다... 2022. 9. 16. 클린코드 8장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 8장 경계 때로는 사내 다른 팀이 제공하는 컴포넌트를 사용한다. 어떤 식으로든 이 외부 코드를 우리 코드에 깔끔하게 통합해야만 한다. 외부 코드 사용하기 Map 같은 경계 인터페이스를 이용할 때는 클래스나 클래스 계열 밖으로 노출하지 않도록 주의한다. 또한 map 인스턴스를 공개 api의 인수로 넘기거나 반환값으로 사용하지 말자. 그러면 map 인터페이스가 변하더라도 나머지 프로그램에는 영향을 미치지 않는다. 경계 살피고 익히기 때로는 우리 버그인지 라이브러리 버그인지 찾아내느라 골치를 앓는다. ...곧바로 우리쪽 코드를 작성해 외부 코드를 호출하는 대신 먼저 간단한 테스트 케이스를 작성해 외부 코드를.. 2022. 9. 16. 클린코드 7장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 7장 오류 처리 오류 처리는 중요하다. 하지만 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다. 오류 코드보다 예외를 사용하라 if 문으로 오류를 하나하나 잡기보다는, try-catch로 묶어서 처리하자 Try-Catch-Finally 문부터 작성하라 예외에서 프로그램 안에다 범위를 정의한다는 사실은 매우 흥미롭다. 어떤 면에서 try 블록은 트랜잭션과 비슷하다. 미확인 예외를 사용하라 아주 중요한 라이브러리를 작성한다면 모든예외를 하나하나 잡아야 하지만...일반적인 애플리케이션은 의존성이라는 비용이 이익보다 크다. 확인된 예외: 컴파일 과정에서 에러가 나므로 .. 2022. 9. 15. 클린코드 5장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 클린코드 5장 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다. 팀으로 일한다면 팀이 합의해 규칙을 정하고 모두가 그 규칙을 따라야 한다. 형식을 맞추는 목적 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 코드 형식은 의사소통의 일환이고 의사소통은 전문 개발자의 일차적인 의무이다. 적절한 행 길이를 유지하라 일반적으로 큰 파일보다 작은 파일이 읽기 쉽다. 🔎 신문 기사처럼 작성하라 신문을.. 2022. 9. 15. 이전 1 2 3 다음 반응형