목록Reading/Clean Architecture (3)
Day 개발 기록
좋은 소프트웨어의 규칙에 관한 내용이다. Clean Code로 부터 시작하는 소프트웨어의 원칙을 설명한다. 함수 & 데이터 구조를 클래스로 배치하고 클래스들을 서로 결합하는 방법에 대해 알아본다. SOLID 법칙 SRP : 단일 책임 원칙 : 각 소프트웨어의 모듈 변경이유는 하나 일 것 OCP : 개방-폐쇄 원칙 : 기존 코드를 수정하지 않고 새로운 코드를 추가하는 방향으로 LSP : 리스코프 원칙 : 상호대체 가능하게 설계할것. 구성요소간 서로 치환이 가능하도록 한다. ISP : 인터페이스 분리 원칙 : 각각의 인터페이스는 분리한다. DIP : 의존성 역전 원칙 : 저수준 코드 ← 고수준 으로 의존 해서는 안된다. 세부사항이 고수준의 정책에 의존하는 방향으로 설계할 것. 1. SRP 하나의 모듈은 하나..
구조적 프로그래밍 기능적 분해 . 모듈을 증명 가능한 더 작은 단위로 재귀적으로 분해할 수 있다. 객체지향 프로그래밍 캡슐화 데이터와 함수가 응집력 있게 구성된 집단을 서로 구분 짓는 선을 그을 수 있다. 구분선 밖에선 데이터는 은닉되고, 일부 함수만이 외부에 노출된다. →그러나, OO 언어는 오히려 C가 표현했던 완전한 캡슐화를 약화시켰다. ( 사용자가 멤버변수의 존재를 알게 된다. ) 상속 어떤 변수와 함수를 하나의 유효범위로 묶어서 재정의 하는 일이다. → OO 언어가 고안 되기 전부터 상속과 유사한 기법이 사용되었다. OO언어가 완전히 새로운 개념을 만들지는 못했지만 데이터 구조에 가면씌우는 일에 편리한 방식을 제공했다. 다형성 1.함수를 가리키는 포인터 응용한 것이 다형성이다. → OO로 다형성..
클린 아키텍쳐 - 소프트웨어 구조와 설계 원칙 로버트 C. 마틴 저서를 읽고 정리 글을 올릴 예정 입니다. 소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화 하는 데 있다. 개발자들의 잘못된 통념 : 지저분한 코드를 작성하면 단기간에는 더 빠르게 갈 수 있고, 장기적으로 볼때만 생산성이 낮다. → 제이슨고먼의 TDD(테스트 주도 개잘) 실험 결과 TDD를 적용한 날이 적용 안한 날보다 10% 가량 빠른 작업을 냈다. → 즉, 빨리가는 유일한 방법은 제대로 가는 것이다. 잘 모르던 때에는 눈앞에 보이는 것들을 바로 만드는 습관이 있었다. 그리고 특히 TDD 같은 경우도 하면 오히려 시간 낭비 일것이라 생각했는데 제이슨 고먼의 실험에서도 그렇고 오히려 시간이 덜 든다..