refactoring #5 Simplifying Method Calls

아래 내용들은 바꿀 경우, super/sub class 에도 해당 되는지도 체크 해야한다
  • method  이름은 간결하되, 내용을 제대로 표현하게. 
  • method  에  parameter 추가는 좋으나, parameter 는 늘 추가하는건 쉽고, 삭제하는건 어려우며, 대개 param 사이즈가 엄청 늘어나게 되며 이경우 다른 refactoring 이 필요하다
  • 사용되지 않는 parameter 는 삭제한다  
  • 조회하는  query 와 수정을 가하는 modifier 는 따로 다른 method   로 분리되어야 한다. 
  • 비슷한 method 인데 parameter 만 다른 경우, 하나로 합치고 parameter 로 분기할수 있는데, 자칫하다간 매우 길고 복잡한 하나의 method 로 합쳐질 수 있어 이 경우는 지양해야한다
  • 위와 반대로, 하나의 method  가 길고 복잡하고 불필요하게 parameter 가 많은 경우, 두개의 method  로 나누고, parameter 도 필요에 따라 쪼갠다.
  • parameter 여러개가 한 object 에서 나올 경우, object 를 그냥 넘겨도 된다. 하지만 int, String 같은 거였다가 object 로 바꿀 경우그럴 경우, 그 object 만이 method 에 쓰일 수 있다. 
  • method 안에서 해결 될 수 있는 계산이면, method 안에서 처리 한다. 밖에서 해서 parameter 로 넘길 필요 없이
  • parameter  들이 많고, 자주 method 에서 쓰이면 parameter object 로 하나의 class 로 묶고, 관련된 method 들도 거기로 옮겨버리면 깔끔해질 수 있다
  • 생성자에서 변수 할당 이외에 복잡한 작업을 할 경우, factory method  로 대체한다.
  • -1  같은 에러코드를 리턴하는 대신 exception 을 던진다.  0, -1 같은 코드가 아니므로 if-else 같은것에서 벗어나고,  error handling 하는 logic 을 따로 둠으로서 정상 시나리오로부터 분리할 수 있다. 
  • 하지만 exception  은 unexpected, real error  를 위한 경우여야 하며,   사전 체크나 assert 등으로 확인할 수 있는건 미리 확인한다. 그리고 conditionla check 가 exception  catch보다 뭘 하고자 하는건지 더 명확하다.

Comments

Popular posts from this blog

삼성전자 무선사업부 퇴사 후기

개발자 커리어로 해외 취업, 독일 이직 프로세스

코드리뷰에 대하여