728x90
반응형

개발/리팩터링 4

파이브 라인스 오브 코드 - 타입 코드 처리하기

독립된 if 문은 검사(check)를 담당하고, if-else 문은 의사결정(decision)으로 간주합니다. 한 가지 예를 들면, 숫자 배열에서 평균을 구하는 함수에서 배열의 크기가 0이면 오류가 발생하고 그렇지 않으면 계산한 값을 반환하는 함수가 있습니다. function average(arr: number[]) { if (size(arr) === 0) throw "Empty array not allowed" else return sum(arr) / size(arr) } 이 함수에서 배열의 크기가 0인지 아닌지로 의사결정을 하기 보다는 검사를 담당하는 것으로 보입니다. 그럼 이것은 이렇게 변경 할 수 있습니다. function assertNotEmpty(arr: number[]) { if (size(..

개발/리팩터링 2023.07.09

파이브 라인스 오브 코드 - 긴 코드 조각내기

규칙 - 왜 다섯 줄인가? 이 책에서는 근본적인 규칙으로 다섯 줄 제한을 소개합니다. 메서드는 {와 }를 제외하고 5줄 이상이 되면 안된다고 이야기 합니다. 아래 isTrue() 메서드는 4줄 입니다. function isTrue(bool: boolean) { if (bool) return true; else return false; } 메서드가 길면 한 번에 긴 메서드의 모든 논리를 머릿속에 담아야하기 때문에 작업하기가 어렵습니다. 또한 메서드 이름만 보고 어떤 역할을 하는지 유추가 되기 때문에 주석을 넣는 것과 같은 효과를 낼 수 있습니다. draw() 메서드는 매우 길지만 내부를 잘 보면 map을 그리는 영역과 player를 그리는 영역이 존재하고 있습니다. 우리는 메서드 추출 이라는 리팩터링을 통..

개발/리팩터링 2023.07.03

파이브 라인스 오브 코드 - 리팩터링 깊게 들여다보기

리팩터링이란 코드가 하는 일을 변경하지 않고 더 나은 코드를 만드는 것 입니다. 코드 개선 더 나은 코드를 만들기 위해 코드를 개선해야 하는데 가독성과 유지보수성을 잘 챙겨야 좋은 코드라고 할 수 있습니다. 가독성 가독성은 의도를 전달하기 위한 코드의 성질로 가독성을 잘 챙긴 코드는 읽기 쉽고 작성자의 의도를 잘 파악하기가 쉽습니다. 유지보수성 유지보수성은 얼마나 많은 후보를 조사해야 하는지를 나타내는 성질입니다. 여기서 말하는 후보는 버그를 고치거나 기능을 추가하기 위해 어떤 코드가 어디에 있는지, 새로운 코드를 어디에 배치해야하는지에 대한 context를 말합니다. 유지보수성이 좋으면 조사해야 하는 context가 줄어들고 놓치는 부분이 없어서 또 다른 버그를 발생시키는 위험을 줄여줍니다. 일반적인 ..

개발/리팩터링 2023.06.19

파이브 라인스 오브 코드 - 리팩터링 리팩터링하기

높은 품질의 코드는 유지 보수 비용을 줄이고, 오류를 줄이며, 개발자의 만족도를 향상시키고 리팩터링을 통해 높은 품질을 유지 할 수 있습니다. 리팩터링을 하기 위해선 스킬, 문화, 도구가 충분해야 합니다. 스킬은 코드의 문제점을 파악하기 위해 필요하고, 문화는 리팩터링에 대해 권장하는 것이고, 도구는 작업에 대한 안정성을 보장하는 무언가 입니다. 리팩터링이란 무엇인가? 리팩터링은 기능을 변경하지 않고 코드를 변경하는 것 입니다. 리팩터링을 해야 하는 이유는 이러합니다. 코드를 더 빠르게 만들기 위해 더 작은 코드를 만들기 위해 코드를 더 일반적이거나 재사용 가능하게 하기 위해 코드의 가독성을 높이고 유지보수를 용이하게 하기 위해 이를 다시 정리하면 좋은 코드란 사람이 읽기 쉽고, 유지보수가 용이하며, 의..

개발/리팩터링 2023.06.11
728x90
반응형