우리 프로젝트에 더럽고 복잡해서 이해할 수 없는 코드가 점점 늘어나고 있다. 이유는 요구사항이 변경돼서, 버그를 수정해야 돼서, 애초에 완벽한 코드는 존재하지 않아서 다양하게 있었다. 좀 더 이해하기 쉽고 수정하기 쉬운 코드를 만들고 싶다. 리팩터링이 필요하다.
당신은 당신이 뭘 모르는지 모른다.
어떤 코드가 나쁜 코드일까?
전역데이터, SRP 위배, 긴 함수 등, 나쁜 코드의 종류는 여러 가지가 있다. 이를 리팩터링 2판을 읽으며 정리해보며 프로젝트에 적용하려 한다. 리팩터링 뿐만 아니라 구현 과정에서도 도움이 될 것 같다.
함수는 신문이다. 함수와 신문은 읽는 방식이 비슷하다. 신문을 읽을 때 제목부터 본다. 제목을 쓱- 확인해보고 관심이 있으면 그 안에 내용을 본다.
만약 제목 없이 내용만 있다면 읽기 어려울 것이다. 내용을 전부 읽으며 '무슨 말을 하고 싶은지' 계속 파악해야 하기 때문이다. 하나의 내용에 여러 가지 핵심이 있으면 더욱 헷갈린다. 그래서 신문에는 하나의 제목당 하나의 핵심이 있다.
좋은 함수는 신문처럼 읽기 편해야 한다. 함수를 리팩터링할 때도 마찬가지다. 코드를 여러 덩어리로 나누고, 각 덩어리가 어떤 핵심을 담고 있는지 주석으로 적는다. 그런 뒤 그 덩어리를 별도의 함수로 추출하면 된다.