No | 룰 ( 자바 ) |
1 | Catch 문에서 Throwable 객체 사용 금지 |
2 | Exception 처리 순서 |
3 | Finally Block 내에서 throw 사용 금지 |
4 | String 값으로 Boolean 인스턴스 생성 금지 |
5 | String 값으로 String 인스턴스 생성 금지 |
6 | String 객체에 대해 toString() 사용 금지 |
7 | StringBuffer 선언 시 초기값 할당 권장 |
8 | System.exit() 사용 금지 |
9 | Thread.run() 사용 금지 |
10 | super.clone() 호출 없는 clone() 메소드 재정의 금지 |
11 | synchronized에 this가 lock으로 쓰이는지 확인 |
12 | 가변 파라미터 사용 금지 |
13 | 동일한 변수 대입 금지 |
14 | 배열 파라미터를 필드 변수에 직접 할당 금지 |
15 | 필드에 StirngBuffer 사용 금지 |
16 | 혼동된 Loop 조건 변수 조작 금지 |
17 | 3회 이상 String Concat 사용 금지 |
18 | Empty Finally 문 사용 금지 |
19 | Final 필드는 반드시 Static으로 선언해야 함 |
20 | For 문의 조건에서 함수 호출 금지 |
21 | Loop 문 내에서 다중 데이터 저장 금지 |
22 | Map/List 생성 시 반드시 초기화 크기 지정해야 함 |
23 | Nested if 과다 사용 금지 |
24 | Nested synchronized 사용 금지 |
25 | Object 비교시 '==' 연산자 사용 금지 |
26 | Object.finallize 사용 금지 |
27 | ResultSet에서 index 0 참조 금지 |
28 | Singleton 사용 권장 |
29 | Static initialzer만 사용 |
30 | String 타입의 멤버 변수는 반드시 static으로 선언해야 함 |
31 | Thread.stop(), Thread.suspend() 사용 금지 |
32 | catch 문 내의 미처리 Exception 금지 |
33 | catch 문에서 instanceof 사용 금지 |
34 | equals() 정의 객체에 hashCode() 없음 |
35 | equals()에서 Null 비교 금지 |
36 | for 문에서 제어 변수 변경 금지 |
37 | getName()을 사용한 Class 비교 금지 |
38 | printStackTrace() 사용 금지 |
39 | while 문 안에서 sleep() 메소드 사용 금지 |
40 | 동일한 클래스 명과 멤버 필드 명 사용 금지 |
41 | 동일한 필드명과 메소드명 사용 금지 |
42 | 메소드 synchronized 금지 |
43 | 변수 할당 시 ! (not) 사용 금지 |
44 | 비효율적인 StringBuffer 사용 금지 |
45 | 상수는 항상 비교문의 왼쪽에 배치해야 함 |
46 | 연산에 대입문 사용 금지 |
47 | 종료 조건 없는 For 문 사용 금지 |
48 | Boolean 값으로 Boolean 인스턴스 생성 금지 |
49 | Empty Catch 사용 금지 |
50 | Empty If 문 사용 금지 |
51 | Empty Loop 문 사용 금지 |
52 | Empty Static Block 사용 금지 |
53 | Empty String 문자 더하기 연산 금지 |
54 | Empty Switch 문 사용 금지 |
55 | Empty Synchronize Block 사용 금지 |
56 | Empty Try Block 사용 금지 |
57 | Finally 블럭에서 return 또는 throw 사용 금지 |
58 | Garbage collection 사용 금지 |
59 | Loop 문 내에서 상수 할당 금지 |
60 | Loop에 빈 조건 사용 금지 |
61 | NULL 객체에 대한 비교 금지 |
62 | Nested try 사용 금지 |
63 | Primitive 타입을 스트링으로 변환시 New 사용 금지 |
64 | String 변수의 equals() 사용 금지 |
65 | String 비교 시 '==' 연산자 사용 금지 |
66 | System.err 사용 금지 |
67 | System.out 사용 금지 |
68 | True Loop에서 No break 금지 |
69 | switch 문에서 No break 금지 |
70 | 로컬 변수에 대해 Final 사용 금지 |
71 | 무조건적인 IF문의 사용 금지 |
72 | 불필요한 Final Modifier 사용 금지 |
73 | 불필요한 Return 문 사용 금지 |
74 | 불필요한 생성자 사용 금지 |
75 | 제어문에 중괄호 사용 권장 |
76 | 파라미터로 사용된 변수에 값 할당 금지 |
77 | 파일 스트림보다 버퍼 스트림 사용 권장 |
78 | Empty String 인스턴스 생성 금지 |
79 | DB자원 해제 검사 |
80 | Error 생성/상속 금지 |
81 | Exception 생성/상속 금지 |
82 | File 자원 해제 검사 |
83 | Map/List는 Static 필드로 선언 금지 |
84 | RuntimeException 생성/상속 금지 |
85 | Socket 자원 해제 검사 |
86 | Thread 상속/생성 금지 |
87 | Throwable 생성/상속 금지 |
88 | import 문에 * 사용 금지 |
89 | 미참조 로컬 변수 정의 금지 |
90 | 미참조 메소드 정의 금지 |
91 | 미참조 파라미터 정의 금지 |
92 | 미참조 필드 정의 금지 |
코드프리즘이라는 코드인스펙션 툴에서 점검때 사용하는
자바 기본 룰셋이 있는데,
자바 코딩에 있어서
정말 기본적인 내용을 담고 있다.
물론 논란의 여지가 있는게 몇개 있긴 하지만,
그건 커스터마이징을 적절히 해서 사용하리라 생각하고..
내가 좀 뜻밖이거다, 아 그렇구나 싶은거만 몇개
붉은색으로 표시해 봤다..
올해부터는 라이센스비용 때문에
pmd로 갈아탔지만,, 암튼 둘다 성능은 비슷한 듯하다..
수시로 코드 인스펙션이나 동료검토를 통해서
나의 코드를 점검해 보는건 내 코딩실력을 높이는
아주 효과적이고도 빠른 방법이라는거,,
다시한번 remind..
태그 : codeinspection, codeprism
덧글
삭제 조치 하였습니다..
내용도 문제가 되신다면 내리도록 하지요..