얼마 전에 자바의 람다/함수형인터페이스/스트림 부분을 끝마치고
이제 겨우 자바의 입문을 끝내고 기초를 시작할 수 있었습니다.
그리고 입문을 끝내기 전까지는
"도대체 어떤 코드가 좋은 코드인가?"
에 대해 확신이 서지 않아 이리 헤매고 저리헤매는 시간이 길었습니다.
지금 당장, 이제 겨우 초보자로서 입문한 사람으로서
좋은코드를 만들기 위한 기초적인 방법론을 적어봅니다. (개인 의견)
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);
for
, int i
등 선언이 줄어들어 가독성도 좋습니다.책 클린코드 에서 소개된 말로,
높은 응집도 + 낮은 결합도
라는 말이 있습니다.
여기서 응집도란 클래스의 변수를 메소드에서 얼마나 사용하는지를 뜻합니다.
여러 안내 문구가 있지만, 요약해서 이렇게만 정리해보겠습니다.
클래스를 만들면, 내부의 메소드는 클래스 내부에 선언된 필드/속성을 사용해야 한다.
필드를 최대한 줄이자.
메소드 자체를 arguement로 주고받자.
내부에 몇 번 주고받고 말 static 변수를 만들기 보다는,
Function1 = func(function2, function3);
function2 = func(function4);
function3 = func(~~~);
.... 이런식으로 메소드 자체에 이름을 잘 지어서
"순차적"으로 다음 메소드를 불러오는 형태로 사용합니다.
분명히 이게 완벽한 설명이 아닌걸 알고 있는데,
좋은 코드란 어떤것인가? 에 대한 감이 아직도 없는 것 같습니다.