[Java Refactoring] 리팩토링 목록
자바로 배우는 리팩토링 입문 Java Refactoring For Beginner 건강한 코드로 소프트웨어 체질을 개선하자! 유키 히로시 지금 길벗 출판사 2017.10.31 리팩토링을 위한 스터디 내용을 정리하자. 책의 모든 챕터를 정리하려 했는데, 2017년 출판이라 그런 건지.... 내가 못 느끼는 건지.. 뭔가 와 닿지 않아서 간단하게 한 번에 정리했다. 매직 넘버를 기호 상수로 치환 // Before if (100 addActionListe..
- Study/Java Refactoring For Beginner
- · 2021. 2. 8.
[Java Refactoring] 에러 코드를 예외로 치환
자바로 배우는 리팩토링 입문 Java Refactoring For Beginner 건강한 코드로 소프트웨어 체질을 개선하자! 유키 히로시 지금 길벗 출판사 2017.10.31 리팩토링을 위한 스터디 내용을 정리하자. 에러 코드를 예외로 치환 프로그램이 동작하는 도중에 어떤 에러가 발생하면, 에러에 대해 어떤 처리(에러 처리)를 해야 한다. 하지만, 한 메서드 안에 정상 처리와 에러 처리가 혼재하면 프로그램의 흐름을 파악하기 어렵다. 어떤 메서드가 실행 중에 에러가 발생했는데 그 메서드 안에서 에러를 처리하지 않는다고 가정하자. 이 경우 호출하는 쪽 메서드에 에러를 나타내는 값, 즉 에러 코드를 반환해 에러가 발생했다고 알려야 한다. 하지만, 호출하는 쪽에서도 에러 처리를 하지 않고 에러 코드를 다시 상위..
- Study/Java Refactoring For Beginner
- · 2021. 2. 8.
[Java Refactoring] 분류 코드를 클래스로 치환
자바로 배우는 리팩토링 입문 Java Refactoring For Beginner 건강한 코드로 소프트웨어 체질을 개선하자! 유키 히로시 지금 길벗 출판사 2017.10.31 리팩토링을 위한 스터디 내용을 정리하자. 분류 코드를 클래스로 치환 분류 코드(type code)는 객체 종류를 나타내는 값을 의미한다. 예를 들어 프로그램에서 다음 세 종류의 상품을 다룬다고 가정하자. 책 DVD 소프트웨어 이 상품 종류를 나타내기 위해 다음과 같이 int 값을 할당 하자. 책 = 0 DVD = 1 소프트웨어 = 2 이때 0, 1, 2라는 값이 분류 코드가 된다. 이렇게 분류 코드를 int 같은 기본 타입으로 지정하는 경우, 위험이 존재한다. 분류 코드 범위 밖의 값이 사용됨 다른 분류 코드와 착각함 즉, 타입이 ..
- Study/Java Refactoring For Beginner
- · 2021. 2. 8.
[Java Refactoring] 메서드 & 클래스 추출
자바로 배우는 리팩토링 입문 Java Refactoring For Beginner 건강한 코드로 소프트웨어 체질을 개선하자! 유키 히로시 지금 길벗 출판사 2017.10.31 리팩토링을 위한 스터디 내용을 정리하자. 메서드 추출 한 메서드 안에 이런저런 세세한 처리가 많다면 그런 처리를 묶어서 나누고 독립된 메서드로 추출하는 것이 메서드 추출 리팩토링이다. Before public void print(int times) { System.out.println("+"); for (int i = 0; i < content.length(); i++) { System.out.println("-"); } System.out.println("+"); for (int i = 0; i < times; i++) { Sys..
- Study/Java Refactoring For Beginner
- · 2021. 2. 8.
[Java Refactoring] 제어 플래그 삭제
자바로 배우는 리팩토링 입문 Java Refactoring For Beginner 건강한 코드로 소프트웨어 체질을 개선하자! 유키 히로시 지금 길벗 출판사 2017.10.31 리팩토링을 위한 스터디 내용을 정리하자. 제어 플래그 삭제 제어 플래그(controll flag)란 상태를 기록하고 처리 흐름을 제어하기 위한 boolean 타입 변수를 의미한다. 제어 플래그를 지나치게 사용하면 처리 흐름을 파악하기 어려워져서 때로는 프로그램 전체를 파악하는데 어려움을 겪기도 한다. Before public static boolean find(int[] data, int target) { boolean flag = false; for (int i = 0; i < data.length && !flag; i++) { ..
- Study/Java Refactoring For Beginner
- · 2021. 2. 8.