01. 가변성을 제한하라

02. 변수의 스코프를 최소화하라

03. 최대한 플랫폼 타입을 사용하지 말라

04. inferred 타입으로 리턴하지 말라

05. 예외를 활용해 코드에 제한을 걸어라

06. 사용자 정의 오류보다는 표준 오류를 사용하라

07. 결과 부족이 발생할 경우 null과 Failure를 사용하라

08. 적절하게 null을 처리하라

09. use를 사용하여 리소스를 닫아라

10. 단위 테스트를 만들어라

11. 가독성을 목표로 설계하라

12. 연산자 오버로드를 할 때는 의미에 맞게 사용하라

13. Unit?을 리턴하지 말라

14. 변수 타입이 명확하지 않은 경우 확실하게 지정하라

15. 리시버를 명시적으로 참조하라

16. 프로퍼티는 동작이 아니라 상태를 나타내야 한다.