-
코드 컨벤션교육/우아한 테크 코스 2019. 5. 10. 11:35SMALL
0. 들어가며( 참고자료 )
1. 생성자에 관련된 컨벤션
[매개변수가 적은 생성자에서 많은 생성자를 호출]
12345678public Car(String name){this.name = name;}public Car(String name, int position){this(name);this.position = position;}1234567public Car(String name){this(name, 0);}public Car(String name, int position){this.name = name;this.position = position;}위에와 아래가 다른점은 어떤 생성자에서 어떤 생성자를 품고 있는지가 다르다.
위에의 경우에는 매개변수가 많은 생성자에서 작은 생성자를 품고 있고,
아래의 경우에는 매개변수가 적은 생성자에서 많은 생성자를 품고 있다.
일반적으로는 아래의 경우를 많이 사용한다고 하신다.
2. final
[final 의 경우 한 번 할당 할 경우 다시 할당 할 수 없습니다.]
123class Car{private final static int MAX_NUM = 10;}(이렇게 할당된 값은 다른곳에서 수정 불가능)
1234567class Car{private final static int MAX_NUM = 10;public Car(final String name){this.car = car;}}method 인자 값에도 final을 붙일 수 있는데 이는 들어온 매개 변수가 수정이 될 수 없게 막아주는 역할을 한다.
static과 합쳐서는 변하지 않는 상수값으로 많이 사용한다.
3. 순서
[클래스 변수 / 인스턴스 변수 / 생성자 / ( public - 관련된 private ) 반복 ]
123456789101112131415161718192021222324252627282930class Car{//클래스 변수private final static int MAX_NUM = 10;private final static int FORWARD_NUM = 4;//인스턴스 변수private String name;private int position;//생성자public Car(final String name){this.car = car;}//publicpublic void move(){if(getRandomNum() > FORWARD_NUM){position++;}}//private (public과 관련된 private)private int getRandomNum(){Random random = new Random();return random.nextInt(10);}//이후에는 public / private 반복//제일 밑에는 equals, hashcode, toString 등을}또한 인스턴스 변수를 최대한 줄이는 것이 중요.
만약에 많아진다면 줄일 수 있는 방법 ( 클래스 나누기 , 혹은 다른 인자로써 구할 수 있는 값 인지)를 잘 찾아보자.
4. 띄어쓰기와 공백, 문단 나누기
[공백 / 문단 / 띄어쓰기도 모두 의미가 있다.]
1234567for(int i=0;i<5;i++){// 띄어쓰기를 해주자.}for(int i = 0; i < 5; i++){// eclipse나 inteliJ에서 formatting 기능을 이용하자}보기 좋게 clean 코드를 짜는 것이 제일 큰 목적!
5. 네이밍
[자료구조나 Type에 종속된 네이밍은 자제하자.]
12345678public void setCarName(String name){List<String> carNameList = new ArrayList<>();Set<String> carNameSet = new HashSet<>();String carNameString = name;}그 변수가 계속해서 그 자료형이나 Type을 유지하리란 보장이 없다.
그 때마다 이름을 바꿀 것인가?
6. Setter / Getter 는 자제하자.
setter의 경우에는 값을 바꿀 수 있는 경우가 생길 수 있으므로 원천 차단하자.
getter의 경우에는 사용해야 할 경우가 있으면 사용해야 하지만 무조건적인 getter는 자제.
7. Production Code 와 Test Code 는 같이 Commit !!
같은 기능을 수행하는 부분이므로 같이 commit을 하는 습관을 들이자.
8. 인스턴스 메서드와 클래스 메서드 잘 만들기.
모를 때는 인스턴스 변수에 접근하는 로직이 있으면 인스턴스 메서드.
없으면 클래스 메서드(static)로 만들면 된다.
이후에는 센스로 나누는 감을 기르자.
LIST'교육 > 우아한 테크 코스' 카테고리의 다른 글
[2주차 미션] 후기 및 피드백 (0) 2019.05.27 [1주차 미션] 후기 및 피드백 (0) 2019.05.24 단위 테스트 (0) 2019.05.12 우아한 테크코스 채용과정에 대한 소개와 느낀점 (0) 2019.05.09