처음으로 코딩테스트를 봤다. 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