자바로 좋은코드 만들기

코지클래식·2021년 12월 4일
0

확신이 없어서 적는 글

얼마 전에 자바의 람다/함수형인터페이스/스트림 부분을 끝마치고
이제 겨우 자바의 입문을 끝내고 기초를 시작할 수 있었습니다.

그리고 입문을 끝내기 전까지는
"도대체 어떤 코드가 좋은 코드인가?"
에 대해 확신이 서지 않아 이리 헤매고 저리헤매는 시간이 길었습니다.

지금 당장, 이제 겨우 초보자로서 입문한 사람으로서
좋은코드를 만들기 위한 기초적인 방법론을 적어봅니다. (개인 의견)

함수형 인터페이스, 참조식은 최대한 활용하자.

ArrayList<int> myList = {1,2,3,4,5};

// 방법 1
for (int i=0; i<myList.length; i++){
	System.out.println(myList.get(i));
    }
    
// 방법 2
for (int i : myList){
	System.out.println(i);
    }
    
// 방법 3
myList.forEach(i -> System.out.println(i););


// 방법 4
myList.forEach(System.out::println);
  1. 3줄+많은 선언
  2. 3줄 + 적은선언
  3. 1줄 + 적은선언
  4. 1줄+ 선언 없음
    위의 코드만 봐도 부피 차이가 납니다.
    for, int i 등 선언이 줄어들어 가독성도 좋습니다.

변수가 적은 클래스를 만들자.

클린코드 에서 소개된 말로,
높은 응집도 + 낮은 결합도
라는 말이 있습니다.

여기서 응집도란 클래스의 변수를 메소드에서 얼마나 사용하는지를 뜻합니다.

여러 안내 문구가 있지만, 요약해서 이렇게만 정리해보겠습니다.

  1. 클래스를 만들면, 내부의 메소드는 클래스 내부에 선언된 필드/속성을 사용해야 한다.
    필드를 최대한 줄이자.

  2. 메소드 자체를 arguement로 주고받자.
    내부에 몇 번 주고받고 말 static 변수를 만들기 보다는,

Function1 = func(function2, function3);
function2 = func(function4);
function3 = func(~~~);

.... 이런식으로 메소드 자체에 이름을 잘 지어서
"순차적"으로 다음 메소드를 불러오는 형태로 사용합니다.

분명히 이게 완벽한 설명이 아닌걸 알고 있는데,
좋은 코드란 어떤것인가? 에 대한 감이 아직도 없는 것 같습니다.

profile
코지베어

0개의 댓글