#
다음과 같은 이야기를 얼마나 들어봤는가?
- 코드가 거지같은데 이 새로운 기능을 어떻게 추가하지?
- 이 파일 바꾸는것은 위험부담이 큰데?
- X, Y, Z 에 dependency 가 있는데 어떻게 이 class 를 test 하지?
- 니가 원하는데로 바꾸기에는 시간이 충분치 않아
- 이 코드는 대체 뭘 하는거지?!
- 이건 너무하다, 이건 더 이상 나아질 수 없을꺼라 생각해.
#
Legacy 코드는 무엇인가?
다른 사람이 짠 코드를 받는 것이다.
test 가 되지 않은 코드이다.
#
모든 변화는 risk 이다.
code 가 제대로 동작하고 있다면 굳이 바꿀 이유가 없다. 특히나 test 가 되지 않는 코드라면..
그러나 bug fix 를 한다던지, new feature 를 추가한다던지 할 때는 변화가 필요하다.
그러면 이런 legacy code 를 어떻게 발전시킬 것인가?
수술하는 것처럼 우리는 어느 포인트에서 치고 들어가야 하는지를 결정해야 한다.
그 다음 component 로 분리시켜야 하는지, method class 로 어떻게 분리시켜야 하는지를 결정하고, 그리고 독립적으로 test 할 수 있도록 해야 한다.
이는 매우 복잡하다. 때때로 상황을 더 악화시킬 수도 있다.
-
다음과 같은 legacy code 개선 방법을 알아 볼 것이다.
(돼왕 : 자세한 내용이 궁금했으나 저자는 이 후 관련 글을 쓰지 않음. 그러나 Title 만 봐도 뭘 해야 하는지 감은 잡을 수 있음)
새로운 architecture pattern
새로운 framework 로 migration
dependency 끊기
하위 호환 지키기
code style 과 standard 강제하기
발견했을 때보다 더 나은 코드로 만들고 떠나기
기타 등등
-
출처 : https://medium.com/android-testing-daily/working-effectively-with-android-legacy-code-b71414f195d6
끝
'프로그래밍 놀이터 > Tips' 카테고리의 다른 글
[애자일] Scrum 개발방법론 (0) | 2021.01.24 |
---|---|
Open Source Software License 들 간단 정리 (0) | 2020.12.25 |
[git] Git Prune 에 대해 알아보자 (0) | 2020.03.06 |
[git] git pull error : remote ref is at xxx but yyy expected (0) | 2020.03.05 |
[git] fetch 하기 & pull 하기 (0) | 2020.03.04 |
댓글