본문 바로가기

피드백27

자바: 필드(인스턴스 변수)의 수를 줄이기 위해 노력한다. 필드(인스턴스 변수)의 수가 많은 것은 변수(버그 발생 가능성)를 늘리고, 객체의 복잡도를 늘릴 수 있습니다. 필드(인스턴스 변수)에 중복이 있거나 불필요한 필드가 있는지 확인하여 필드의 수를 최소화합니다. 예를 들면 자동차 경주 예제에서 위너 클래스는 다음과 같이 구현할 수 있습니다. public class Winner{ private List cars; private List winnerList; private int maxDistance; } 그러나 cars 객체를 통해 winnerList와 maxDistance 를 구할 수 있기 때문에 winneerList 와 maxDistance 필드는 불필요합니다. public class Winner{ private cars; public int getMaxD.. 2021. 10. 30.
자바: 기능 목록 구현을 재검토한다. 기능 목록을 클래스 설계, 구현, 함수 메소드 구현, 설계 등과 같이 너무 자세하게 작성하지 않는다. 클래스 이름, 함수(메소드) input/output 은 언제든지 변경될 수 있기 때문이다. 너무 세세한 부분까지 정리하기 보다 구현해야 할 목록을 정리하는 데 집중한다. 정상적인 경우도 중요하지만 예외적인 상황도 기능목록에 정리한다. 특히 예외적인 상황은 시작 단계에서 모두 파악하기 어렵기 때문에 계속 기능을 구현하며 추가해나간다. 기능목록에 대해서 평소 중요성을 크게 느끼지 못하고 지나가거나, 구체적으로 작성하려 노력하고 눈에 보이는 것에 집중한 적이 많은 것 같습니다. 이런 목록을 보고 한 줄 한줄의 조언이나 피드백들이 살이 될 수 있다고 느꼈고 더 좋은 개발자가 되고 싶다는 새로운 정보에 대한 열망.. 2021. 10. 30.
자바: 객체에 메시지를 보낸다. 상태데이터를 가지는 객체에서 객체에서 값을 꺼내오는 것(get)이 아니라 객체에 메시지를 보낸다. 예를 들어 차가 우승자인지 확인하기 위해 객체의 최대이동거리를 구하기 위해 다음과 같이 구현할 수 있다. private boolean isMaxPosition(Car car){ return car.getPosition() == maxDistance; } 위와 같이 구현하지 않고 다음과 같이 Car에게 메시지를 보내 구현한다. car.isMaxPosition(maxDistance); 확인해야 하는 곳에서 (해당 객체 내에서 확인하도록 하고, maxDistance와 같은 변수를 메시지로 보내 확인하는 것이 객체의 응집성을 높이고 프로그램의 유연성을 높일 수 있는 방법이라 이렇게 말씀하신 것 같다.) 이런 식으로.. 2021. 10. 28.
자바: 배열 대신 java collection을 활용한다. 자바 콜렉션( map, set, list) 를 활용하면 데이터를 조작할 때 다양한 api를 활용할 수 있다. 예를 들어, 사용자 중 "lee"라는 값이 포함되어 있는지 확인하는 코드는 다음과 같을 수 있다. Listwinners = Arrays.asList("lee", "jin"); boolean result = winners.contains("lee"); 정해진 자료구조인 콜렉션을 활용해 간단하게 구현하고 원하는 값을 확인할 수 있다. 2021. 10. 28.