2023. 11. 1. 19:57ㆍJava
license, package, import, class 순이고 한 공백라인씩 띄운다.
static class가 있으면 띄워준다.
오버로딩된 메소드는 무조건 붙여서 나열한다.
메소드를 나열할 때 논리적으로 나열한다. 생성순으로 하지 않는다.
중괄호는 무조건 쓴다. 비어있거나 한문장이더라도 써라.
아래와 같은 형태로 쓴다.
if (userCarsInputs.length == 0) {
throw new IllegalArgumentException("하나 이상의 이름을 적으셔야 합니다.");
}
{}를 쓸 수 있는 경우는 try-catch와 같은 멀티블록이 아닌 비어 있는 경우이다.
------
여기는 우테코 부분
들여쓰기 4
열제한 120
들여쓰기 지속은 최소 8
------
라인 래핑은 패키지, 임포트에 적용안된다.
Tip: Extracting a method or local variable may solve the problem without the need to line-wrap.
-> 함수로 추출하거나 지역변수를 활용하면 열 길이를 줄일 수 있다.
return userCarDistance.entrySet().stream()
.filter(entry -> Objects.equals(entry.getValue(), maxValue))
.map(Map.Entry::getKey)
.toList();
비할당 연산자의 경우 위와 같이 심볼전에 라인 브레이킹이 된다.
int value =
someValue + anotherValue;
int value = someValue
+ anotherValue;
할당 연산자의 경우 위의 두 경우 모두 허용된다.
수직 공백은 멤버들 사이에 넣어준다(필드는 선택사항).
그 외에는 논리성을 고려하여 유연하게 사용한다.
좌우 공백은 if, for와 ()를 띄운다.
for each문의 :에 대해서도 좌우 한칸씩 띄운다.
}와 else를 띄운다.
{ 전에는 띄운다.
행의 시작이나 끝에는 공백을 마음대로 넣어도 상관없다.
수평 정렬은 유지보수성이 좋지 않다.
가독성을 위해 소괄호를 적극 사용하자!
선언은 한번에 하나씩 하자
지역변수 선언은 필요할때 하자
Stirng[] arg OK, String arg[] NO
switch문에서 break를 안쓴다면 // fall through로 밑에 케이스도 실행된다는 것을 명시해준다.
항상 default를 적어주자
관련있는 주석 내용은 /**/를 사용하자(paragraphy style)
package이름은 소문자와 숫자로만 작성한다. 단어끼리는 그냥 이어붙인다.
Class 이름은 대부분 명사로 작성하자 하지만 형용사가 잘나타낸다면 형용사로 해도 괜찮다.
메소드 이름은 동사로 작성하자
상수(final이고 immutable)에는 UPPER_SNAKE_CASE를 사용하자
파라미터 이름으로 한 글자는 사용하지 말자.
지역변수는 상수가 될 수 없다.
타입 변수는 E, T, X, T2를 쓰거나 뒤에 T를 붙인다. RequestT, FooBarT
"supports IPv6 on iOS?" -> supportsIpv6OnIos
첫글자가 대문자이었다면 대문자를 살려주고 그게 아니라면 소문자로 표기
"YouTube importer" -> YoutubeImporter
@Override는 항상 써주자
catch에서 아무것도 안하면 주석으로 적어주자. test는 안적어줘도 된다.
static method는 클래스이름으로 호출하자.
Reference
https://google.github.io/styleguide/javaguide.html
Google Java Style Guide
1 Introduction This document serves as the complete definition of Google's coding standards for source code in the Java™ Programming Language. A Java source file is described as being in Google Style if and only if it adheres to the rules herein. Like ot
google.github.io
https://github.com/woowacourse/woowacourse-docs/tree/main/styleguide/java
'Java' 카테고리의 다른 글
[Java] interface 기본 접근제한자 (1) | 2024.01.03 |
---|---|
[Java] 인자로 함수를 받는 고차함수를 통해 리팩토링 하기 (1) | 2023.11.13 |
[Java] Test 코드 돌릴 때 input에서 no line이 뜬다면 (0) | 2023.10.31 |
[Java] LinkedHashMap (0) | 2023.10.31 |
[Java] 나의 java-baseball의 개선점 (1) | 2023.10.29 |