인프런 워밍업클럽 2일차
Readable Code: 읽기 좋은 코드를 작성하는 사고법(링크)
이 글은 위의 강의중 제가 중요하다고 생각한 부분과, 저만의 의견을 덧붙여서 정리해보았습니다.
모든 내용과 정확한 내용을 보고싶다면 위의 강의를 수강하여 들으시는 것을 제안 드립니다.
논리 사고의 흐름
정리 시스템에서 중요한 과제는 최소의 인지적 노력으로 최대의 정보를 제공하는 것이다.
정보를 제공하는 것은 공통된 특징을 추상화하고 범주화하여 정리 시스템을 만드는 것이다.
인지적 경제성 : 최소한의 인지로 최대한 성능을 내는 것
핵심은 뇌의 메모리를 적게 쓰는 것이다.
1. Early return
if-else 절을 사용할 때 두 조건을 동시에 기억해야 하기 때문에 코드 분석하기 복잡해진다.
if 조건을 참일 경우 리턴함으로써 else 를 사용하지 않아도 된다.
2. depth 줄이기
여러 depth를 메소드로 분리하여 줄이는 방법
보이는 depth를 줄이는 것이 아니라 사고 과정의 depth을 줄여야 한다.
무작정 1 depth로 만드는 것이 정답이 아니다.
3. 사용할 변수는 가깝게 선언
4. 공백라인
복잡한 의미 단의를 공백으로 분리
5. 부정어는 자제한다.
!연산자는 머리 속에서 한번 더 생각해야 하기 떄문에 복잡해진다.
부정할 경우 대표할 수 있는 경우 메소드 이름을 변경하고, 대표할 수 없다면 메소드 명에 부정어구를 추가한다.
6. 해피 케이스와 예외처리
예외
값의 유효성을 체크할 경우 외부 세계에서 값이 들어올 경우 접점에서 검사한다.
사용자 입력, 객체 생성자, 외부 서버등
내가 처리하지 않은 예외는 추후 분석이 가능하도록 콜스택을 출력해둔다.
널을 대하는 자세
변수에 null이 들어오지 않도록 하는 것이 가장 좋다.
return null은 사용하지 않는다. 개발자는 메소드가 null을 리턴하지 않을 경우를 가정하고 메소드를 사용한다.
optional을 사용하지 말하야하는 이유
호출 비용이 크다.
포함한 값의 널값 여부와 자체가 널인지도 확인해야 한다.
optional을 사용할 때는 아래 메소드를 최대한 사용한다.
orElseGet(), orElseThrow(), ifPresent(), ifPresentOrElse()
댓글을 작성해보세요.