본문 바로가기
반응형

개발자35

[노개북] 클린코드 23일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 깨끗한 코드를 구현하면 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다. 시스템 제작과 시스템 사용을 분리하라. 우선 제작(construction)은 사용(use)과 아주 다르다는 사실을 명심한다. 시작 단계는 모든 애플리케이션이 풀어야 할 관심사(concern)다. => 관심사 분리는 우리 분야에서 가장 오래되고 가장 중요한 설계 기법 중 하나다. 의존성 주입(Dependency Injection, DI) 사용과 제작을 분리하는 강력한 메커니즘 하나가 의존성 주입이다. 의존성 주입은 제어 역전(IoC)기법을 의존성 관리에 적용한 메커니즘이다. => 한 객체가 맡은 보조 책임을 새로운 객체에게 전적으로 떠넘긴다. => 새로운 객체는 넘겨받은 책임만 맡으므로 단일.. 2022. 2. 16.
[노개북] 클린코드 22일차 - 노마드 코더 🤢 리팩터링 전 코드 문제 라인 -> 7번째 클린코드 140p. [null을 전달하지마라]를 바탕으로 리팩터링 했습니다. null을 전달하면 NullPointerException이 발생한다. => null 처리를 if문으로 하기는 했지만 Optional로 처리를 하면 더 클린 하게 할 수 있다. 😄 [1차 리팩토링 후] 진리 1. null을 전달하지마라 여전히 코드가 더럽기는 하지만 우선 null을 그냥 넘겨주는 것을 Optional이라는 함수로 처리했습니다. => 만약에 찾는 레스토랑이 null이면 Exception 강제 발생 => 아니라면 찾은 레스토랑의 정보를 바탕으로 다른 Exception 처리 하지만 여기서 28번째 라인을 보면 레스토랑 내 음식 중복검사까지 하는 걸 볼 수 있습니다. => 하나.. 2022. 2. 12.
[노개북] 클린코드 21일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 변경하기 쉬운 클래스 깨끗한 시스템은 클래스를 체계적으로 정리해 변경에 수반하는 위험을 낮춘다. OCP(Open-Closed Principle) 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다는 객체 지향 설계에서 핵심 원칙 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다. 변경으로부터 격리 요구사항은 변하기 마련이다. 따라서 코드도 변하기 마련이다. 상세한 구현에 의존하는 클라이언트 클래스는 구현이 바뀌면 위험에 빠진다. 그래서 우리는 인터페이스와 추상 클래스를 사용해 구현이 미치는 영향을 격리한다. 상세한 구현에 의존하는 코드는 테스트가 어렵다. 시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아진다. 결합.. 2022. 2. 10.
[노개북] 클린코드 20일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 클래스는 작아야 한다! 함수는 물리적인 행 수로 크기를 측정했다. 클래스는 다른 척도로 사용한다. 클래스가 맡은 책임을 센다. 클래스 이름은 해당 클래스 책임을 기술해야 한다. 실제로 작명은 클래스 크기를 줄이는 첫 번째 관문이다. 클래스 설명은 만일("if"), 그리고("and"), -(하)며("or"), 하지만("but")을 사용하지 않고서 25 단어 내외로 가능해야 한다. 단일 책임 원칙(Single Responsibility Principle, SRP) 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다. SRP는 '책임'이라는 개념을 정의하며 적절한 클래스 크기를 제시한다. => 클래스는 책임, 즉 변경할 이유가 하나여야 한다는 의미다.. 2022. 2. 10.