0409_오늘의집 코딩 테스트 & 클린코더스

1199 단어 diarydiary

TIL

  • 오늘의집 코딩테스트<프로그래머스>

처음으로 코딩테스트를 봤다. 3문제가 나왔는데 난이도는 체감상 2~3 level정도 되는 문제들이었다. programmers에서 level3의 문제는 아직 풀어보진 못했는데 테스트 케이스가 3~5개 정도로 한정적이어서 그나마 풀 수 있었던 것 같다.

아직까지는 1~2단계만 풀어보고 있어서 자신감이 많이 없었는데 그래도 풀 수 있다는 것에 안도감을 느끼면서도 시간복잡도를 줄이기 위해 좀 더 공부를 많이 해야겠다고 느꼈다.

  • 클린코더스

프로젝트 리팩토링을 하며 클린코드에 대해 이것 저것 알아보는 중이다. 클린 코드 관련하여 백명석님의 클린코드와 관련하여 좋은 강의가 있어서 듣기 시작했다. 객체지향, TDD에서 좀 더 공부하는 계기가 되었으면 한다. 열심히 해보자!

프로시저(절차지향)와 객체지향 코드의 차이점

  • 응집도와 결합도.
    응집도가 높다는 것은 객체 안에서 하나가 바뀌면 전체를 다 바뀌어야한다.
    결합도가 높다는 것은 객체 안에서 하나가 바뀌면 객체와 연결된 다른 객체도 변경된다는 것.

끄적끄적

강의하며 끄적인 내용들,,

코드를 짤 때 처음에 오랜 시간을 투자하면 나중에 수정할 때 편하다
(설계와 TDD의 중요성)
반대로 처음에 쉽게 작성하면 나중에 수정할 때 개고생한다..

(농담) 코드를 짤 때 유지보수하는 사람이 총을 갖고 있고 내 주소를 알고있다고 생각하고 짜라고 한다ㅋㅋㅋ 

Tell, Don't ask!
데이터를 요청해서 변경하고 저장하라고 하지말고
데이터를 잘 알고있는 객체에게 기능 실행을 요청하라

1개의 함수는 1개의 역할과 책임을 갖고 있어야한다

Command vs Query
Command = 객체의 내부상태를 변경, 편의를 위해 어떤 결과를 반환할 수 있다.
Query = 객체의 상태에 대한 정보 제공, free of side effects

좋은 웹페이지 즐겨찾기