프로그래밍 공부

전문가를 위한 C++정리 73

카테고리 설명
  • 3.4 네이밍 컴파일러는 몇 가지 네이밍 원칙을 가지고 있다. 이름이 숫자로 시작할 수는 없다. 밑줄이 두개로 된 이름이나(예:my__name) 밑줄로 시작하는 이름(예:_Name)도 사용해서는 안된다. 이런 이름들은 컴파일러가 자체적으로 사용하거나 표준 라이브러리 에서 사용하기 위해 예약되어있다. 이런 경우를 제외하면 이름은 순전히 나 자신과 내가 작성한 모듈을 이용할 동료 프로그래머를 돕기 위해 존재한다. 이러한 재경에 비추어 보았을 때 아무런 의미가 없거나 엉뚱한 오해를 불러일으키는 이름을 사용하는 경우가 너무나 많다는 데 안타까움을 금할 수 없다. 3.4.1 좋은 이름의 선택 변수, 메서드, 함수, 클래스는 그것의 목적을 정확히 설명해줄 수 있는 이름을 가지는 것이 가장 좋다. 부가적으로 타입이나..

  • 3.3 코드 분할 코드 분할(decomposition)은 큰 덩어리의 코드를 작은 덩어리로 쪼개는 것이다. 함수 하나하나가수백라인씩 되고, 블록이 몇 중으로 겹쳐진 코드는 코드를 봐야하는 사람을 낭패스럽게 한다. 이상적으로는 함수 하나가 한가지 작업만 해야 한다. 복잡도를 심각하게 높이는 다른 부가 작업은 별도의 함수로 분리되어야 한다. 예를들어, 누군가 이 함수가 하는일이 물었을 때, 먼저 A를 하고, B를 한 후 C면 D를 하고, 아니면 D를 한다 라고 답했다면, A, B, C, D를 별도의 메서드로 분리해야하는 것이 바람직 하낟. 코드 분할은 이론적으로 잘 정립된 개념은 아니다. 어떤 프로그래머는 종이로 출력했을 때 함수 크기가 한쪽 이내여야 한다고 주장할 수도 있다. 또 다른 경험 법칙은 코드의 ..

  • 3.2.2 주석 작성 스타일 어느 조직이든, 그 조직만의 주석 작성 방식이 있을 수 있다. 어떤 환경에서는 코드에 대한 공통적인 문서 표준으로서 특정 스타일의 주석을 강제하기도 한다. 어떤곳 에서는 주석의 스타일과 양을 전적으로 프로그래머 재량에 맡긴다. 3.2.2.1 모든 라인마다 주석 달기 충분한 문서화를 위해 소스 코드의 모든 라인마다 주석을 달 수도 있다. 모든 라인마다 주석을 달게 되면, 아무런 이유 없이 작성되는 코드를 피할 수 있다. 하지만, 대규모 프로젝트에 적용하기에는 무리가 있고, 코드가 지저분해지는 문제가 발생한다. int result;// 결과를 저장하기 위해 int 변수 선언 result = doodad.getResult(); // doodad의 결과 얻기 if ( result %..

  • 3.2 코드의 문서화 프로그래밍에서 문서화라 함은 보통 소스 코드 안에 작성된 주석을 의미한다. 주석은 코드를 작성할 때 코드가 어떤 일을 수행하는지 머릿속에 있는 것을 밖으로 표현할 좋은 기회이다. 주석은 어떤 내용이든 담을 수 있다. 단, 코드 자체에서 당연히 알 수 있는 내용은 피하는것 이 좋다. 3.2.1 주석을 작성해야 하는 이유 주석을 작성해야 하는 이유는 자명하다. 그러나, 내가 작성하는 코드에 주석이 필요한 이유가 무엇인지 생각해보자. 어떤 경우네는 주석이 왜 중요한지 완전히 이해하지 못한 상태에서도 프로그래머 스스로 주석의 필요성을 꺠닫기도 한다. 3.2.1.1 사용법을 설명하기 위한 주석 주석을 사용하는 한 가지 이유는, 사용자가 그 코드와 어떻게 연동할 수 있는지 설명하기 위해서다. ..

  • 3. 코딩 스타일 매일 몇 시간씩 키보드 앞에서 코드를 작성하면, 단순히 코드가 정상적으로 작동하는것 만으로 만족해서는 안된다. 이번에는 좋은 코드가 가져야할 조건에 대하여 살펴본다. 그 과정에서 몇 가지 C++ 코딩 스타일을 확인하고, 단순히 코드의 스타일을 바꾸는 것만으로도 코드가 상당히 다르게 보이는것을 깨닫게 된다. 예를들어, 윈도우 프로그래머에 의해 작성된 C++ 코드는 윈도우 컨벤션을 따르기 떄문에, 눈에 띄는 특징이 있을것이고, Mac Os 프로그래머가 작성한 C++ 코드는 같은 C++임에도 완전 다른 언어처럼 보이게 된다. 3.1 보기 좋은 코드의 중요성. 스타일이 좋은 코드를 작성하는데 에는 시간이 필요하다. XML파일을 피싱하는 코드를 대충 작성하는 데는 몇 시간이면 될 것 이다. 그러..

  • C++개발자가 string 타입을 사용하지 않는 여러가지 이유가 있다. 첫번쨰는 단순히 string 타입의 존재여부를 몰라서이다. 두번째는 string타입이 각 프로그래머가 사용할 상황에 적합한 동작을 하지 않기 떄문이다. 세번째는 사용하는 개발 프레임워크가 자신만의 문자열을 사용하기 때문이다. 예시로, 마이크로소프트의 MFC로 CString이라는 자신만의 문자열 타입을 별도로 정의하여 사용한다. 프레임워크 문제는 하위 호환성이나 과거 코드의 재활용 문제와 연관되어 있다.