성장에 목마른 코린이

TIL 220727 (클린 코드 page 12 - 15) 본문

Today I Learned

TIL 220727 (클린 코드 page 12 - 15)

성장하는 코린이 2022. 7. 27. 07:32
728x90

오늘의 계획

1. 오전 10:00 - 12:00 + 저녁시간 활용해서 이력서 2군데 제출하기 / 기업 분석

2. 오후 12:00 - 1:00 책읽고 중요한 내용 기록하기!

3. 오후 1:30 ~ 6:30 Socket I.O를 이용해 채팅기능 구현해보기

4. TypeScript 노마드코더 강의 듣고 기록하기!

책에서 읽은 중요한 내용!

테스트 케이스가 없는 코드는 깨끗한 코드가 아니다.

아무리 코드가 우아해도, 아무리 가독성이 높아도, 테스트 케이스가 없으면 깨끗하지 않다. (page 12)

 

깨끗한 코드의 특징은 많지만 그 중에서도 모두를 아우르는 특징이 하나있다.

깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다.

- 마이클 페더스 Michael Feathers

 

켄트 백이 제안한 단순한 코드 규칙:

1. 모든 테스트를 통과한다.

2. 중복이 없다.

3. 시스템 내 모든 설계 아이디어를 표현한다.

4. 클래스, 메서드, 함수 등을 최대한 줄인다.

 

깨끗한 코드는 읽으면서 놀랄 일이 없어야 한다고 워드는 말한다.

코드를 독해하느라 머리를 쥐어짤 필요가 없어야 한다.

읽으면서 짐작한 대로 돌아가는 코드가 깨끗한 코드다.

 

TypeScript 강의

타입스크립트는 함수를 쓸때마다 타입을 지정해줘야한다.

Call Signatures: 함수를 구현하기전에, 타입을 만들 수 있고, 함수가 어떻게 작동할지 서술해둘 수 있다

하지만 Call Signature를 사용하면, 이미 어떤 타입을 쓸지, 어떻게 작동할지 서술해두었기 때문에

위의 예시처럼 꺼내서 사용하면 된다.

오버로딩: 함수가 서로 다른 call signatures를 가지고 있을 때 발생시킨다.

이건 매우 소수의 함수만 이런식으로 할 수 있어 매우 나쁜 예시로써,

아무 의미가 없지만 오버로딩의 핵심을 보여준다.

이건 Next.js 를 사용하면서 실제로 겪을만한 예시입니다.

이번 예시는 다른 두가지의 call signature가 다른 개수의 파라미터를 가질때

어떻게 해야하는지 보여줍니다.

위의 예시에서 보여주다시피 2개의 call signature가 2,3개의 파라미터를 가지는데,

c는 존재할수도 있고, 존재하지 않을 수도 있기 때문에

?를 넣어줘서 c는 선택적 사항이라고 알려줍니다.

오늘의 회고

요즘 늦게 자고 늦게 일어나는게 좀 반복되네요 ㅠ

운동을 안하다가 하다보니 근육통도 있고, 생각보다 컨디션 유지하는게 쉽지 않습니다!

그래도 계속 꾸준히 하려다보면 적응할거라고 믿습니다 ㅎㅎ

Comments