개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
일찍 작동을 멈추게 하라
단정문을 사용해서 불가능한 상황을 예방하라
리소스를 할당하는 것이 누구이든, 그 리소스를 해제할 책임까지 져야 한다.
TIL (Today I Learned) 날짜
2022. 03. 24
오늘 읽은 범위
4장. 실용주의 편집증
책에서 기억하고 싶은 내용을 써보세요.
정확한 프로그램이란 무엇인가? 스스로 자신이 하는 일이라고 주장하는 것보다 많거나 적지도 않게 딱 그만큼만 하는 프로그램을 말한다.
선행조건 : 루틴이 호출되기 위해 참이어야 하는 것. 루틴의 선행조건이 위반된 경우엔 루틴이 호출되어선 안된다.
후행조건 : 루틴이 자기가 할 것이라고 보장하는 것. 루틴이 완료되었을 때 세상의 상태
클래스 불변식 : 루틴이 종료하고 호출자로 제어권이 반환되는 때에는 불변식이 참이 되어야 한다.
가능한 빨리 문제를 발견하게 되면, 좀 더 일찍 시스템을 멈출 수 있다는 이득이 있다. 프로그램을 멈추는 것이 할 수 있는 최선일 때가 많다.
어떤 상황이 절대 일어나지 않을거라는 생각이 든다면 그걸 확인하는 코드를 추가하라.
에러처리 대신으로 단정을 사용하지는 마라. 단정은 결코 일어나면 안되는 것들을 검사한다.
예외가 프로그램의 정상 흐름의 일부로 사용되는 일은 거의 없어야 한다. 예외는 의외의 상황을 위해 남겨두어야 한다.
리소스를 할당한 순서의 반대로 해제하라. 코드의 여러 곳에서 동일한 리소스 집합을 할당하는 경우, 할당 순서를 언제나 같게 하라. 교착 가능성이 줄어들 것이다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
메모리 관리에 대해 생각해본적이 별로 없었는데 자바에서 객체를 다 사용한 후에 null을 넣는다는 내용은 새로웠다.
그동안 예외처리를 마음대로 사용했던것 같다. 예외를 정상적인 처리의 일부로 사용하지 않도록 해야겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
C++로 예시를 든건 언어를 몰라서 그런지 어려웠다.. 객체가 자동 파괴되게 하기 위해 포인터대신 Node 객체로 바꾸는건 잘 이해가 안됐다..
오늘 읽은 다른사람의 TIL