^.^
by 저녁참새
메뉴릿
카테고리
Coding Standard

이 네이밍 규칙은 닷넷 스파이더 팀에서 만든 [C# Coding Standards and Best Programming Practices]를 바탕으로 만들었습니다.

 

1. Namming Rule

 

 이 문서 전반에 걸쳐 파스칼표기법과 카멜 표기법이 사용된다. 

  파스칼 표기법 - 모든 단어에서 첫번째 문자가 대문자이며 나머지는 소문자이다.

    예: BackColor

  카멜 표기법 - 최초에 사용된 단어를 제외한 첫번째 문자가 대문자이며 나머지는 소문자이다.

    예: backColor

  

  1. 클래스 명에는 파스칼 표기법을 사용한다.

     

     public class HelloWorld
     {
     ...
     }

     

  1. 함수(Method) 명에는 파스칼 표기법을 사용한다.

     

     void SayHello(string name)
     {
     ...
     }

     

  1. 변수와 함수 파라미터에는 카멜표기법을 사용한다.

     

     int totalCount = 0;

     void SayHello(string name)
     {
     string fullMessage = "Hello " + name;
     ...
     }

     
  2. 인터페이스에는 접두사 "I"가 포함된 파스칼표기법에 따른다. ( Example: IEntity )

  1. 변수명에 헝가리안 표기법을 사용하지 않는다.

     

     아래와 같은 방법은 사용하지 않는다.

     string m_sName;
     int nAge;

     

     
  1. 변수에 모든 의미를 충분히 담아라. 약어를 사용하지 말것.

     

     좋은 예:
     string address
     int salary 

     나쁜 예:
     string nam
     string addr
     int sal

     

     
  1. i, n, s 같이 한글자로 된 이름을 사용하지 말것. index, temp 같은 이름을 사용할 것. 아래의 경우에 한하여 허용할 수 있음

     

     변수가 반복의 의미만 가지고 있고 for문이 10줄 내외인 경우

     for (int i = 0; i < count; i++)
     {
     ...
     }

     

     

  1. 지역변수에는 밑줄(_)을 사용하지 않는다.
  2. 모든 멤버 변수들은 앞에 밑줄(_)을 사용해야 한다. 그래야 다른 지역변수들과 구분할 수 있다.
  3. 키워드와 비슷한 이름을 하용하지 말것.
  4. boolean 이 들어가는 변수, 속성, 함수(method)등은 "is" 또는 "has"를 사용한다.

     

     예:
        private bool _isFinished
        bool IsName(string name)
        {
            bool hasGood;
            ...
        }

     
  5. 네임스페이스 명은 사내에서 정한 표준 패턴을 따라야 한다. 표기법은 파스칼 표기법을 따른다.

     

     <회사명>.<제품명>.<최상위모듈>...<하위모듈>
     namespace Innotive.ACG.Main

     
  6. UI 구성요소는 UI 컨트롤 이름 뒤에 의미가 있는 이름을 붙인다. 대소문자는 UI 구성요소가 제공하는 이름을 따른다.

     

     예 :
        Button   : ButtonConfirm
        Label    : LabelName
        DataList : DataListOption

     
  7. 파일명은 클래스 명과 같아야 한다. 

     

     클래스 명이 "HelloWorld" 라면 파일명은 "HelloWorld.cs" 이어야 한다.

    UI Clase와 논리 Class를 구분하기 위해 폼을 가지고 있는 클래스는 Form을 붙여준다.

    Class : "FormMain"

    File : "FormMain.cs"

     

  8. 클래스 명이 파스칼표기법을 따르므로 파일명도 같이 파스칼 표기법을 따른다. 
  9. 컨트롤 선언시 이름 앞에 x를 항상 붙인다. 

     

     <Button x:Name="xMyButton" />

     

     

  10. 이벤트 선언시 이름 앞에 e를 항상 붙인다. 

     

     public event EventHandler<AlarmListControlFocusListChangedEventArgs> eFocused;

     

     

 

2. 들여쓰기

  1. 들여쓰기에는 TAB 을 사용한다. SPACE를 사용하지 않는다. Tab 사이즈는 4로 정의한다.
  1. 주석은 코드와 같은 레벨에 있어야 한다.(들여쓰기의 레벨을 같이 사용한다)

     

     좋은 예:
        // Format a message and display
        string fullMessage = "Hello " + name;
        DateTime currentTime = DateTime.Now;
        string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
        MessageBox.Show(message );

     좋지 않은 예:
        // Format a message and display
        string fullMessage = "Hello " + name;
        DateTime currentTime = DateTime.Now;
        string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
        MessageBox.Show ( message );

     
  1. 중괄호는 중괄호 밖에 있는 코드와 같은 레벨에 있어야 한다.

  1. 논리적인 코드 그룹은 다른 코드와 한칸 띄어서 구분한다.

     

     착한 예:
        bool SayHello(string name)
        {
           string fullMessage = "Hello " + name;
           DateTime currentTime = DateTime.Now;

           string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();

           MessageBox.Show (message);

           if (...)
           {
                   // Do something
                   // ...

                   return false;
           }

           return true;
        }


    나쁜 예:
        bool SayHello(string name)
        {
           string fullMessage = "Hello " + name;
           DateTime currentTime = DateTime.Now;
           string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
           MessageBox.Show (message);
           if (...)
           {
                   // Do something
                   // ...
                   return false;
           }
           return true;
        }


  2. 클래스안에 함수 간에는 한칸씩 빈 라인을 집어 넣는다.
  3. 중괄호는 다른 라인과 분리되어 있어야하며 라인을 같이 쓰면 안된다.

     

     착한 예:
                   if ( ... )  
                   {
                           // Do something
                   }

     나쁜 예:
                   if ( ... )     {
                           // Do something
                   }

     
  4. 지시자(operator)와 괄호 앞뒤로는 한 칸의 공간을 남긴다. "("와 ")"의 앞뒤로는 공간을 남기지 않는다.

     

     착한 예:
         if (showResult == true)
         {
             for (int i = 0; i < 10; i++)
             {
                     //
             }
         }

     나쁜 예:
         if(showResult==true)
         {
             for(int    i= 0;i<10;i++)
             {
                 //
             }
         }


  5. 멤버변수는 파일의 최상단에 그 다음엔 property를 그리고 맨 뒤에 함수가 위치하도록 한다.

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 저녁참새 | 2009/09/05 08:27 | 테크니컬 정보 | 트랙백 | 덧글(0)
트랙백 주소 : http://tain68.egloos.com/tb/10128085
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >


최근 등록된 덧글
debt consolidation on..
by debt consolidation o at 12/25
cash advance pa..
by Cash Advance at 12/18
안녕
by 등불 at 09/16
1vGood idea.6o I co..
by 乙麟壯 at 08/24
실장님. 안녕하세요. (..
by 가을을 기다리며 at 08/19
당뇨를 처음 진단 받으신..
by jsleecc at 08/12
방문 감사 드립니다... ..
by Blue Diary at 07/02
대단해요. 물 베는 모습...
by 옥주태생 at 07/02
재미잇게 잘읽엇어요....
by gold steel at 07/01
저녁 참새는 노래를 잘 ..
by 등불 at 06/24
최근 등록된 트랙백
메모장
이전블로그
이글루링크
이글루 파인더
rss

skin by 이글루스