본문 바로가기
Blog/미디어

실용주의 프로그래머 TIP 2/4

by NAMP 2016. 10. 8.

실용주의 프로그래머 TIP 2/4

18. 추정을 통해 놀람을 피하라.

시작하기 전에 추정부터 하라. 잠재적인 문제점들을 미리 찾아내게 될 것이다.

19. 코드와 함께 일정도 반복하면 조정하라.

구현하면서 얻는 경험을 이용해서 프로젝트의 시간 척도를 세밀히 조정하라.

20. 지식을 일반 텍스트로 저장하라.

일반 텍스트 형식은 시일이 지났다고 못쓰게 되는 일이 없다. 일반 텍스트 형식은 여러분의 작업을 활용하고 디버깅과 테스팅을 쉽게 만드는데 도움이 된다.

21. 명령어 셀의 힘을 사용하라.

그래픽 사용자 인터페이스로는 할 수 없는 일에 셀을 이용하라. command shell

22. 하나의 에디터를 잘 사요하라.

에디터를 마치 손의 연장으로 자유자재로 다루어야 한다. 여러분이 사용하는 에디터는 설정을 바꿀 수 있고, 확장가능하고, 프로그램 가능해야 한다.

23. 언제나 소스코드 관리 시스템을 사용하라.

소스코드 관리는 여러분 작업을 위한 타임머신이다. 언제라도 과거로 돌아갈 수 있게 해준다. GIT, SVN

24. 비난 대신 문제를 해결하라.

버그가 여러분 잘못인지 다른 사람 잘못인지는 별로 중요하지 않다. 그것은 여전히 여러분의 문제이며, 여저히 고쳐야 할 필요가 있다.

25. 디버깅을 할 때 당황하지 마라.

숨을 깊게 들이 쉬고, 무엇이 버그를 일으키는지 생각하라!

26. ‘select’ 는 망가지지 않았다.

OS 나 컴파일러의 버그를 발견하는 일은 정말 드물게 일어나며, 심지어 써드파티 제품이나 라이브러리일지라도 드문 일이다. 버그는 애플리케이션에 있을 가능성이 가장 크다.

27. 가정하지 마라. 증명하라.

진짜 데이터와 경계 조건이 있는 실제 환경에서 여러분이 내렸던 가정들을 증명하라.

28. 텍스트 처리 언어를 하나 익혀라.

여러분은 하루 가운데 많은 시간을 텍스트와 씨름하며 보낸다. 왜 여러분 대신 컴퓨터가 그 일의 일부를 하게끔 만들지 않는가? perl, python, ruby

29. 코드를 작성하는 코드를 작성하라.

코드 생성기는 생산성을 증가시키며 중복을 막는 일에도 도움이 된다.

30. 완벽한 소프트웨어는 만들 수 없다.

소프트웨어는 완벽할 수 없다. 피할 수 없이 나타나는 에러로부터 여러분의 코드와 사용자들을 보호하라.

31. 계약에 따른 설계를 하라.

코드가 실제로 하기로 한 것을 문서화하고 검증하기 위해 계약을 사용하라.

32. 일찍 작동을 멈추게 하라.

보통은 죽은 프로그램이 절름발이 프로그램보다 해를 훨씬 덜 끼친다.

33. 단정문을 사용해서 불가능한 상황을 예방하라.

단정은 여러분이 세운 가정을 검증해준다. 확실한 것이 없는 세상에서 여러분의 코드를 보호하려면 단정문을 사용하라.

34. 예외는 예외적인 문제에 사용하라.

예외를 잘못 쓰면 고전적 스파게티 코드의 모든 가독성과 유지보수 문제를 그대로 겪을지도 모른다. 예외는 예외적인 일들만을 위해 남겨두어라.

35. 시작한 것은 끝내라.

가능하다면, 리소스를 할당한 루틴이나 객체가 해제도 책임져야 한다.

36. 모듈간의 결합도를 최소화하라.

디미터 법칙을 적용하고 ‘부끄럼 타는 shy’ 코드를 작성해서 결합이 생기는 일을 피하라.

디미터 법칙은 객체의 모든 메소드는 다음에 해당하는 메소드만을 호출해야 한다고 말한다.

1. 객체 자신의 메소드
2. 메소드의 매개변수로 넘어온 인자의 메소드
3. 메소드 내부에서 생성 된 객체의 메소드
4. 메소드가 포함하고 있는 객체의 메소드


댓글