ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 어떻게 코드를 작성하면 좋을까?
    코드 , 그 밖의/코드 작성법 2020. 11. 2. 14:14

    처음 회사에 입사해서 프로젝트를 진행할 때 의외로 저를 참 난처하게 만들었던 것이

    바로 코드 작성 방식이었습니다.

    그때까지 오로지 저만 알아보면 되는 코드를 작성했기 때문에 코드의 가독성이 좋지 않았고

    지적을 참 많이 받았습니다. 그래서 그때 처음으로 코드를 어떻게 작성하는게 좋은 걸까 ? 하는 생각을

    하게 됐습니다. 아래 글은 코드 작성에 대해 공부하면서 정리해놓은 것입니다.

    Naming 

    좋은 네이밍이란 의도가 분명한 이름을 짓는 것 입니다.

    그렇다면 의도가 분명한 이름을 짓는 법은 무엇이 있을까요?

     

    1. 줄여쓰지 마세요. 이름은 충분한 의도가 담기도록 충분히 길게 써야합니다.
    2. 모호하게 이름을 짓지 마세요. 특히 process 를 주의, 변수 이름에 타입 정보는 불필요한 정보입니다.
    3. 그렇다고 이름이 길다고 다 좋은 것은 아닙니다.
    4. 불필요한 단어 중복을 피합니다. ( 클래스의 이름에서 의미를 유추할 수 있다면 중복 단어는 빼는게 좋습니다.)
    5. 난해함을 피합니다 ( 처음 보는 전문 용어나 나만 알 수 있는 단어를 이름에 사용하면 안됩니다.)
    6. 단어의 뉘앙스를 고려합니다.
      1. get : 존재하는 값을 가져온다. 가져오려는 객체가 존재하지 않으면 예외를 던질 때 사용합니다. 
      2. find : 존재하지 않을 수 있는 어떤 값을 가져올 때 사용합니다. 가져오려는 객체가 존재하지 않으면 null 반환할 때 사용합니다.
      3. initialize ( 또는 init ) : 객체의 상태를 최초로 설정하는 뉘앙스를 가지고 있습니다.
      4. create : 새 객체를 생성할 때 사용합니다.
    7. 일관성있게 이름을 지어야합니다. 동일 패키지, 동일 프로젝트 내의 다른 클래스,함수,변수 이름과 어느 정도 일관성있게 작성하는 것이 좋습니다.
    8. 클래스와 인스턴스는 명사 또는 명사구로 이름을 짓습니다.
    9. 함수는 동사로 시작, 동사 뒤에는 목적어가 될 명사를 붙여서 서술적으로 표현합니다.
      1. boolean 을 반환하는 함수 이름은 보통 is로 시작합니다.
      2. boolean 을 반환하는 함수는 negative 하게 안짓는게 좋습니다. ( if ( !isNotOK( )) 보다는 if (isOk( )) 가 더 가독성이 좋습니다

    함수는 짧게 작성

    함수를 짧게 작성하는 것이 요즘 추세입니다. 

    왜그럴까요? 그 이유는 함수가 작을수록 가독성과 유지 보수에 좋기 때문입니다. 또한 버그 발생 가능성도 작아집니다.

    함수를 작성할 때 어떤 점을 유의하는게 좋은지 알아보겠습니다.

    1. 함수 이름이 갖는 추상화 수준에서 단 한가지 역할을 수행하도록 작성하세요.
    2. 최대한 입력 형식에 대해서 엄격하게 제한을 두고 시작하세요.
    3. 중괄호 중첩은 최대한 피하세요. 가급적 메소드당 들여쓰기 깊이가 한 단계가 넘지 않게 하는것이 좋습니다.
    4. 매개 변수의 갯수는 적을수록 좋습니다.
    5. boolean 타입 인자를 받아서 if 등으로 로직을 분기시키는 함수는 책임이 많아지기 때문에 좋은 함수가 아닙니다.
    6. 함수의 매개변수에 대해서 유효성 검사를 철저하게 하는것이 좋습니다.
    7. 보안을 위해서 방어적으로 프로그래밍 하는 것이 좋습니다.
    8. 코드는 위에서 아래로 자연스럽게 읽히는것이 좋습니다. 하지만 유연성을 유지해야겠죠?

    예외

    1.  예외 상황이 발생했다면 상황을 복구하거나 적절하게 처리해야합니다.
    2. 가급적 표준 예외를 사용하는 것이 바람직하지만 예외를 새로 만들어서 던지는 것도 좋습니다.
    3. 예외는 예외 상황에서만 사용해야합니다.
    4. 예외는 예외 상항 파악에 필요한 실패에 관련된 메세지를 담아야합니다.
    5. 예외 발생 이전과 예외 발생 이후에 어플리케이션의 상태에 그 어떤 변화가 있으면 안됩니다.
    6. 예외 클래스의 이름을 지을때는 가급적 Exception 으로 끝나도록 짓습니다.
    7. 애초에 예외가 일어나지 않게 null값 체크 등 꼼꼼하게 검사하는 것을 우선시 여겨야합니다.

    기타

    1. if 절 안의 코드는 한줄만 작성하는 것이 좋습니다.
    2. 가급적이면 이중 for문이나 이중 if문을 피하는 것이 좋습니다.
    3. null을 반호나하는 함수는 만들지 않는것이 좋습니다.
    4. 최대한 else 를 줄여서 사용하는 것이 좋습니다.
    5. 카테고리성 데이터 ( 예를 들면 게시판 타입 등등) 는 Enum 을 활용하는것이 좋습니다. 
    6. tab키를 활용하여 들여쓰기합니다.

    댓글

Designed by Tistory.