노마드코더 개발자북클럽 Clean code TIL 3 : 3장. 함수
오늘 TIL 3줄 요약
switch를 사용해야한다면
추상 팩토리에 숨겨라여러 섹션으로 나뉘어진 다는 것은
여러 일을 하고 있다는 뜻.부수효과를 일으키지 마라.
이는 남몰래 거짓말하는 것이다.
TIL (Today I Learned) 날짜
2025. 05. 26
오늘 읽은 범위
3장. 함수
기억하고 싶은 내용을 써보세요.
오류
오류 처리도 한 가지 작업이며
오류를 처리하는 함수는 오류만 처리해야한다.
함수에 키워드 try가 있다면
catch/fianlly로 끝나야한다.새 오류 코드를 추가하는 대신 기존 오류 코드를 재사용한다.
오류 코드보다 예외를 사용하라.
명령과 조회 구분하기
함수는
뭔가를 수행하거나
뭔가에 답하거나
둘 중 하나만 해야 함.
둘 다하면 혼란을 일으킨다.
반복(중복)
소프트웨어에서 중복은 악의 근원이다.
많은 원칙과 기법이
중복을 제어하고 없애기 위해 탄생했다.
...DB에서
중복을 피하기 위해 정규식을 사용한다.
...OOP에서
- 코드를 부모 클래스로 몰아서 중복을 없앤다.
...구조적 프로그래밍에서
- 함수는 return 문이 하나여야한다.
- 루프 내에서 break, continue를 쓰지 말 것.
goto는 절대로 쓰지 말 것,
*
처음 작성한 함수가 뒤죽박죽이더라도
다듬으면서 항상 단위 테스트를 통과하게한다.
*
대가 프로그래머는
시스템을 구현할 프로그램이 아니라
풀어나갈 이야기로 여긴다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
상당히 빡빡한 기준을 가지고 있으며
한 가치 원칙을 고수하다가
다른 원칙을 무시해버리는 상황이 잘 발생할 것 같다.
특히, 추상적인 작업, 개념을 Class화하는 것은
두려운 작업임.기준 없이 2개, 3개정도의
함수 인자는 막연하게 괜찮다 생각했는데
될 수 있으면 0개로 유지하라는 덕에
혼난 기분이 든다.나도 도메인 특화 언어를 작성하고 있는 프로그래머다.
이 사실에 자부심을 가지자!
나는 시스템이라는 이야기를 풀어나가고 있다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
- 추상화의 수준과 정도는 어떻게 알 수 있을까.
- java의 public, protected, default, private 접근 제한자.
클래스를 같은 패키지 내에서만 사용할 것인지
른 패키지에서도 사용할 수 있도록 할 것인지 결정.
클래스, 필드, 생성자, 메서드 별로 부여될 수 있는
접근 제한자가 다르다.
default = public 선언을 하지 않았을 시 부여되는 접근 제한자.
같은 패키지 내에서는 제한 없이 사용.
다른 패키지에서는 사용 제한.
protected = default 접근 제한과 마찬가지로
같은 패키지에 속하는 클래스에서만 필드와 메소드를 사용할 수 있음.
단, 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면
필드와 메소드를 사용할 수 있음.
public = 같은 패키지뿐 아니라 다른 패키지에서도 제한 없이 사용 가능.
다른 개발자가 사용할 수 있는 라이브러리 클래스가 이에 해당됨.
private = 동일한 패키지이건 다른 패키지이건 상관없이
생성자를 호출하지 못하도록 제한.
클래스 내부에서만 생성자를 호출하여 객체(인스턴스)를 만들 수 있음.
오늘 읽은 다른사람의 TIL
- sykim202202
SRP(Single Responsibility)
객체 지향 프로그래밍에서 단일 책임 원칙이란
모든 클래스는 하나의 책임만 가지며,
클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다.
OCP(Open Closed Principle)
개방-폐쇄 원칙은
'소프트웨어 개체는 확장에 대해 열려 있어야 하고,
수정에 대해서는 닫혀 있어야 한다'는 프로그래밍 원칙이다.
AOP(Aspect Oriented Programming)
관점 지향 프로그래밍은
어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고
그 관점을 기준으로 각각 모듈화하겠다는 것이다.
댓글
댓글 쓰기