Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

아무래도 네이밍 규칙정도는 좀 정리를 해놔야하지 싶다. 이대로 따르지는 힘들겠지만 따를려고 노력해야 겠다. 기본룰이 없으니 프로젝트마다 네이밍 룰이 제각각이고 동일한 프로젝트에서도 중구난방이니 코드보기가 여엉 괴로운거 같다.

세부적으로 조정하기는 귀찮고, 중요한것들만 좀 정의해볼 생각이다. 헝가리안 표기법 그런거에 따로 신경쓰지는 않을련다.

명명 일반 규칙

{동사/형용사}{목적어}
  • getIteratorNext
  • getDeviceName
  • videoSetProperty
  • videoGetProperty

파일

  1. 파일명 : 단어 첫글자를 대문자로 한다.
    • NetworkProxy.cc, XmlParser.cc
    • Proxy.hpp
  2. 확장자
    • C : .c
    • CC : .cc
    • C Header : .h
    • CC Header : .hpp
  3. 클래스 & 구조체

    1. 클래스명 : 단어 첫글자를 대문자로 한다.
      • MultiParser, Object, NetworkProxy
    2. 접두사 규칙 : 팀이니셜혹은 다른 은유어들, 2자를 넘지 않도록
      • MuNetworkProxy, MuFormBuilder
    3. 메서드명 : 단어 첫글자를 소문자로 한다.
      • initParser, tcpConnector
    4. 멤버변수 : m_ 으로 시작한다.
      • m_clientConnector, m_fd
    5. 일반함수명

      1. 첫글자는 소문자로 한다.
        • getCurrentTime
      2. 변수명

        1. 지역변수 : 변수명 첫글자는 소문자로 한다.
          • userName, cpuInfo
        2. 전역변수 : g_ 로 시작한다.
          • g_maxLine
        3. 루프변수 : 가능한 루프의 루프를 지양해야겠지만 어쩔수 없는 경우도 있겠는데, i, j, k는 왠지 헛갈린다. 잘못써서 버그 생기는 경우도 있고.
          • iCount, jCount : Count를 붙여줘서 좀 명확해지기는 했는데, i와 j가 여전히 쓰이니 좀 불만이긴 하다. 좀 다른 방법 없을려나 ?
        4. 리스트인 경우 : 접미사 List를 붙여준다.
          • nameList, nodeList
        5. 블럭 및 줄맞추기

          1. 들여쓰기 : tab (출력시 tab size는 4로)
          2. 블럭 괄호 사용 : 하나의 라인을 차지하도록 했다.
          개인적으로 함수옆에서 블럭이 시작되면, 블럭영역이 눈에 잘 보이지 않더라는.
          while (i = 0; i < 100; i++)
          {
              printf("hello world\n");
          }

          하는일에 따른 명명 규칙

          함수명
          1. 값의 초기화 : 접두사 init 를 붙인다.
            • initXmlParser, initThreadPool
          2. 값의 설정 : 접두사 set 을 붙인다.
            • setTimer, setNodeName
          3. 값얻어오기 : 접두사 get 을 붙인다.
            • getTime, getNodeName
          4. 값의 추가 : 배열등에 값을 넣을때. 접두사 push
            • pushItem, pushNode
          5. 값빼오기 : 배열등에서 값을 빼올때. 접두사 pop
            • popItem, popNode
          6. 생성 : create
            • createUserObject, createFile
          7. 열기 : open
            • openXMLFile, openImage
          8. 닫기 : close
            • closeXMLFile, closeImage
          9. 주석

            표준포멧으로 주석을 작성하고 변환툴을 이용해서 문서화를 해버리는 방법도 생각했지만.. 너무.. 너무 귀찮다. 그래서 나름 간단 포맷을 정해버렸다. 복잡하면 있어보이기는 하는데, 사용하지 못할 복잡함이란건 의미가 없어 보여서.
            /**
             * 함수명/메서드명/클래스명 : 어쩌고 저쩌고
             *      - 하는일 :
             *      - 어디에서 사용하는가 :
             * 인자 설명
             *      - 인자 1 : 이러이러 함
             *      - 인자 2 : 저러저러 함
             * 리턴값
             * 기타주의 사항
             */

            그리고 영어 사전

            워낙 영어맹이라서 함수명등을 제대로 만들려면 반드시 필요한게 영어 사전이다. 구분gubun으로 하기는 좀 그렇지 않은가.