no swim no life

CODE complete, 10: 변수 사용 시 일반적인 문제 본문

work/fundamental

CODE complete, 10: 변수 사용 시 일반적인 문제

달려간다 2008. 12. 20. 15:22

데이터 사용 능력 테스트

친숙한 용어 옆에 1점을, 알지만 확신할 수 없다면 0.5점을 입력한다.

___ 추상 데이터 형
___ 배열
___ 비트맵
___ 불린 변수
___ B-트리
___ 문자 변수
___ 컨테이너 클래스
___ 배 정도
___ 연장 스트림
___ 열거 형
___ 부동소수점
___ 힙
___ 인덱스
___ 정수
___ 연결 리스트
___ 명명된 상수(named constant)
___ 리터럴(literal)
___ 지역 변수
___ 참조 테이블
___ 멤버 테이터
___ 포인터
___ private
___ 소급 시냅스(retroactive synapse)
___ 참조 무결성
___ 스택
___ 문자열
___ 구조적 변수
___ 트리
___ typedef
___ union
___ 값 체인
___ 변형(variant)

0-14: 아마도 전산 전공의 1학년 학생이거나 프로그래밍 언어를 처음으로 혼자서 학습하는 초보 프로그래머라고 할 수 있다.
15-19: 중급 정도의 프로그래머이거나 많은 것을 잊어버린 숙련된 프로그래머이다.
20-24: 숙련된 프로그래머이다.
25-29: 테이터 형에 대해서 나(Steve McConnell) 보다 더 많이 알고 있다. 책을 써보는 것을 고려해 본다(내게 한부를 보내도록)
30-32: 허풍이 심한 사기꾼이다. "연장 스트림"과 "소급 시냅스", "값 체인"은 데이터 형을 가리키지 않는다. 이것은 필자가 만든 것이다. 33장 "개인 성격"에 있는 "지적인 정직함"을 읽어 보도록 한다.

변수의 초기화에 대한 지침

  • 변수가 처음 사용되는 곳에 근접한 위치에서 초기화한다.
  • final이나 const를 사용한다.
  • 카운터와 누산기를 주의한다.
  • 클래스의 멤버 데이터를 생성자에서 초기화한다.
  • 일단 명명된 상수를 초기화하고 실행 코드로 변수를 초기화한다.
  • 컴파일러의 경고 메시지를 활용한다.
  • 프로그램을 시작 할 때 작업 메모리를 초기화한다.
    • Intel 프로세서에서는 0xCC가 사용하기에 좋은 값이다. 왜냐하면 이 값은 중단점 인터럽트를 나타내는 기계 코드이기 때문이다
    • 선택적으로 Brian Kernighan과 Rob Pike는 디버거에서 쉽게 알아볼 수 있도록 메모리에 0xDEADBEEF 상수 값을 사용할 것을 제안했다.

변수의 "수명"을 가능한 한 짧게 유지한다. (지속성)

  • 특정한 코드 블록이나 루틴에서만 살아남는 경우: C++나 자바에서 for 루프 내에 선언된 변수가 이러한 종류에 속한다.
  • 허용한 동안 살아남는 경우: 자바에서 new로 생성된 변수는 가비지 컬렉션이 발생할 때까지 살아남는다. C++에서 new로 생성된 변수는 여러분이 삭제 할 때까지 살아남는다.
  • 프로그램이 종료할 떄까지 살아남는 경우: 대부분의 언어에서 전역 변수가 여기에 속하고, C++나 자바에서의 적정(static) 변수도 마찬가지이다.
  • 영원히 살아남는 경우: 이 변수들은 프로그램이 실행중이 아닐 때 데이터베이스에 저장한 값을 포함할 것이다.
Comments