리팩토링 기술 정리

ashd89·2024년 12월 14일

📌 코딩으로 학습하는 리팩토링

강의를 들으면서 유용한 단축키나 정보를 정리한다!!!

📖 냄새 0. 기초 환경 설정

1. 환경 변수 텍스트 파일로 지정

기초 환경 설정 중 githubBuilder를 이용해 필요한 oauth 정보를 home에서 텍스트 파일로 만들어서 넘겨주도록 구현한 부분이 있는데 file 클래스를 활용하여, 경로를 지정해서 oauth값을 받을 수 있다면, 다른 yml파일의 변수들도 같은 방식으로 사용 가능하지 않을까?
=> 시간 남을때 조금 더 공부해보자

public static GitHubBuilder fromPropertyFile() throws IOException {
        File homeDir = new File(System.getProperty("user.home"));
        File propertyFile = new File(homeDir, ".github");
        return fromPropertyFile(propertyFile.getPath());
    }

    public static GitHubBuilder fromPropertyFile(String propertyFileName) throws IOException {
        Properties props = new Properties();
        FileInputStream in = null;

        try {
            in = new FileInputStream(propertyFileName);
            props.load(in);
        } finally {
            IOUtils.closeQuietly(in);
        }

        return fromProperties(props);
    }

2. ctrl + -> / ctrl + shift + ->

  • ctrl + ->는 단어 단위 이동
  • ctrl + shift + ->는 끝과 끝으로 (원래는 END/HOME이지만 keymap에서 편의상 변경)

📖 냄새 1. 이름

  • shift + F6 (전체 범위 이름 변경)
  • ctrl + F6 (이름 뿐 아니라, 보내는 type, 매개변수 등도) - 선언부만 바뀜

  • Method Reference = 람다식을 : : 으로 간략하게
.forEach(name -> System.out.println(name)); -> .forEach(System.out::println);

  • 최신기술 Record (유사 딕셔너리) = Dto를 만들어주면서 자동으로 getter, setter, hashcode(), equals()가 생성
    - hashcode( ) : 객체마다 고유 값
    - equals( ) : 값이 같은지
    public record StudyReview(String reviewer, String review){ }


📖 냄새 2. 중복

  • shift + F6 (전체 범위 이름 변경)
  • ctrl + F6 (이름 뿐 아니라, 보내는 type, 매개변수 등도) - 선언부만 바뀜

0개의 댓글