본문 바로가기

프로그래밍/Android 짜투리 지식

[android] code style

1. 개요

개발 시  동일한 코드 모형을 지향함으로써 가독성 및 협업 효율 증대를 위함


2. 참고 사이트


android code style

http://source.android.com/source/code-style.html

javadoc convention

https://developers.google.com/java-dev-tools/codepro/doc/features/audit/audit_rules_com.instantiations.assist.eclipse.auditGroup.javadocConventions#com.instantiations.assist.eclipse.audit.fieldJavadoc

3. 참고 파일

android-formatting.xml

android-formatting.xml

  1. Open Eclipse and go to Window -> Preferences -> Java -> Code Style -> Formatter
  2. Import the android-formatting.xml file and make sure “Android” is selected in the drop down list

android.importorder

android.importorder

  1. Window -> Preferences -> Java -> Code Style -> Organize Imports
  2. Import the android.importorder file and make sure “Android” is in the list

Android_Coding_Convention.pptx

- java code convension 한장 요약

codeconventions-150003.pdf

- java code convension

4. 내용


JAVA LANGUAGE RULES


Exceptions: 예외 무시하지말고 처리하기.

Exceptions: 상위 Exception으로 싸잡아서 처리하지 않기.

Finalizers: 왠만하면 쓰지않기 (언제 적용될지 모름)

Imports: *쓰지말고 정확하게 풀네임 적기.

Java Library Rules


표준 코딩컨벤션이 바뀌어서 예전 코딩컨벤션과 충돌이 난다면 예전 코딩컨벤션으로 작성해서 일관성을 유지하기.

Java Style Rules


  1. Comments/Javadoc: 
    표준대로 작성하기.

  2. Short methods: 
    메소드는 40줄이 넘지않게 작성
    넘을 시 기능 분할

  3. Fields:
    초기에 선언하기나 사용하기 바로 전에 선언할 것.

  4. Local variables
    지역변수 범위는 최소화하기.
    The scope of local variables should be kept to a minimum (Effective Java Item 29)

  5. Imports
    안드로이드, 서드파티(알파벳 순), java, javax 순으로 import하기.

  6. Indentation
    탭 사용은 공백 4칸
    그 외는 8칸

    권장
    Instrument i =
    ||||||||someLongExpression(that,, wouldNotFit, on, one, line);
    비 권장

    Instrument i =
    ||||someLongExpression(that,, wouldNotFit, on, one, line);

  7. Line length
    한줄에 100칸 이하 유지하기.

  8. Field names
    Non-public, non-static 변수는 m으로 시작하고, static변수는 s로 시작하기.

  9. Braces

    if () { 

    // content 

    }   (O)  

    if () content (O)

        
    if ()
    {
     //content
    } (X)


  10. Annotations

    @Deprecated
    @Override
    @SuppressWarnings

    표준 어노테이션 사용하기.


  11. Acronyms are words

    goodBad
    XmlHttpRequestXMLHTTPRequest
    getCustomerIdgetCustomerID
    class Htmlclass HTML
    String urlString URL
    long idlong ID




    상수public static final int STATIC_CONSTANT
    지역mValue
    전역sValue



  12. TODO style
    "TODO: write this description"

  13. Consistency
    일관적으로 작성하기

Log

  1. Logging:
    로그도 비용이 드니 적절하기 사용하기

  2. Levels

    • ERROR: 치명적인 상황이 발생했을 경우
    • WARNING: 심각하고 예상치 못한 상황이 발생한 경우
    • INFOMATIVE: 대부분의 사람들이 관심 가질 만한 상황
    • DEBUG: 디바이스에서 예상치 못한 동작 조사와 디버깅 관련
    • VERBOSE: 위 4개의 상황 외에서 사

Code Convension (JAVA)

공백은 ||| 로 대체 표현

if 문

if|||(condition)|||{

//content

}|||else if|||(condition)|||{

//content

}|||else|||{

//content

}

for 문

for|||(init;|||condition;|||update)|||{

//content

}

while 문

while|||(condition)|||{

//content

}

switch 문

switch|||(condition)|||{

case a:

default:

}

Formatter / import order

공백 운용, {} 의 위치 등을 잡아줌



5. 생각해 볼 것들

  1. 변수 / 함수 / 클래스 이름 규칙
  2. intent extra key 상수 사용