Size: 6213
Comment:
|
Size: 6250
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 65: | Line 65: |
[http://setiathome2.ssl.berkeley.edu/images/user_profile/1928830.jpg Oh My GOD~~!!!!] | [http://setiathome2.ssl.berkeley.edu/images/user_profile/1928830.jpg Oh My GOD~~!!!!] - 이건 지워버리길..-[ghost] |
MailTo(windist AT gmail DOT com)
windist 는 이런 사람입니다. (간단한 자기소개)
- [yong27]의 후배입니다.
- 프로그래밍을 조금 합니다.
windist가 요즘 하는 일:
- JSP + Java + Oracle로 이루어진 스파게티코드범벅의 웹어플리케이션 유지보수를 명령받았다... --;; 이따위로 만들고 돈을 받아갔다니... 만들다말았다... ㅜㅜ
MEMO
- 캐모마일(CHAMOMILE) 허브티
도움구함
살려주세요!
jsp 파일 하나의 라인수가 3000... 222여파일... servlet 파일 하나의 라인수가 2000... 72파일 StoredProcedure 하나의 라인수가 2000...약 50여개 테스트코드하나 없는 스파게티 소스의 프로그램을 리팩토링하려면... 당연히 시간은 없습니다.;;; 쉽고 안전하고 효과적으로 기존의 코드를 읽고 고칠수 있는 방법 혹은 도움을 줄만한 도구들이 있을까요? Please Help Me~!!
매우 나쁜 상황이군. legacy code의 [Refactoring]을 위한 책 ( 0131177052 )도 있고, [http://www.objectmentor.com/resources/articles/WorkingEffectivelyWithLegacyCode.pdf 관련문서]도 있으니까 참고하고, 나라면... 일단 목표를 분명히 하고, (어떤 부분을 향상시키겠다 등등) 그 부분을 중심으로, 테스트를 만들어나가면서, 코드를 이해하면서, 리팩토링 할것같음. WebApplication이라면 특히도 뷰와 모델이 섞여있다면 테스트하기도 힘들테지만... 가능한한 그 두부분을 분리한다고 생각하면서. 화이팅 -- ["yong27"] DateTime(2005-10-17T02:20:35Z)
http://xper.org/wiki/seminar/FindPage?=&goto=CodeReading 지저분한 코드로 눈버리기 전에 깔끔하고 멋진 코드를 좀 읽어봐야겠네요.
jsp 파일 하나의 라인수가 3000... 222여파일... servlet 파일 하나의 라인수가 2000... 72파일 StoredProcedure 하나의 라인수가 2000...약 50여개 테스트코드하나 없는 스파게티 소스의 프로그램을 리팩토링하려면... 당연히 시간은 없습니다.;;; => 그렇게 상황이 나쁘다는 생각은 안드는데요. 더 심각한 상황에서도 잘 헤쳐나간 경우도 많습니다. 제가 권해드리고 싶은 것은 파레토 법칙입니다. 만약 시스템을 유지보수 중이라면 전체 중에서 일주일간 가장 수정을 자주하는 파일(CVS 로그를 간단히 분석하면 되죠)을 리팩토링 대상으로 정합니다. 혹은 전체 메소드 중에서 복잡도가 가장 높거나 라인수가 가장 길거나 한 애들 탑텐을 구해서 그 중 하나를 타겟으로 정해서 리팩토링 할 수도 있습니다.
그럭저럭 진행중입니다. 계속되는 요구사항속에 하나둘씩 정리해가고 있습니다.;
리팩토링을 할 때에는 일단 원본 파일을 복사한 다음 그 복사본을 갖고 "부담없이" 해보세요. 우선은 ExtractMethod로 시작할 것을 권합니다. 이리저리 잘라내어서 하나의 메소드 길이가 20라인 정도를 넘지 않게 하세요. 한번 해보고 나서는 다시 원래로 돌아가서 다시 한번 해보세요. 두번 정도 해보면 대충 감이 옵니다. 폰트 크기를 작게 해서 종이에 찍어놓고 삼색볼펜이나 연필 같은 걸 들고 종이 위에서 리팩토링 할 것 표시를 해보는 것도 함께 하면 큰 도움이 됩니다.
코드를 프린트해서 보기로 정말 많은 도움을 얻었습니다. 모니터에서 보다 더 많이 볼수있고 자유로이 필기를 할 수 있는것이 큰 장점인것 같습니다. 눈도 덜 피로하고 코드가 길어도 토너걱정없이 맘껏 뽑을 수 있어 좋네요.
그러면 이제는 실제 리팩토링을 할 차례입니다. 처음 리그레션 테스트를 만들기가 부담이 된다면 일단은 메뉴얼 테스트를 만드세요. 체크 리스트를 만드는 겁니다. 그리고 일단 가로지르기를 해서 싹뚝 잘라냅니다. 이제 테스트 집어 넣기가 한결 쉬워졌을 겁니다. 그러면 이제부터 조금씩 유닛 테스트를 붙여나가면서 같이 리팩토링 해 나갑니다.
체크리스트는 머리속에만 있던것을 출력해서 모니터 옆에 붙여놓아야 겠습니다. 가뜩이나 복잡한 머리에 조금이라도 무게를 줄여야겠네요. 테스트가 부실하니 리펙토링할 용기가 안나네요. 테스트에 좀더 노력을 기울여야 할듯...
반나절 정도만 투자해도 엄청난 효과를 볼 것입니다.
도움 감사합니다.
--JuNe
MaintenanceProgrammer
[http://www.c2.com/cgi/wiki?MaintenanceProgrammer] 분석하는것이 적성에 맞지만 지저분한 코드에서 뒹굴며 버그를 잡고 기존시스템에 맞추어 새로운 기능을 우겨 넣는 작업을 계속하다간 정말 미쳐버릴듯... 무언가 배울것이 있는 코드를 보고싶다. Maintenance가 용이한 프로그램이라면 배울것도 많겠지 보람도 있겠고.
해보고 싶은것들....
- 정말 맛있는 음식... 전주로 여행?
- 따뜻한 물에서 목욕... 온천여행가볼까?
- 바둑을 배워보자.
- 고전을 읽어보자.
- 이민우, 여욱환, 윤계상, 홍경인, 박광현,지성(본명:곽태근)... 문희준도??, 다음은 원빈..
우연히 찾은 타임캡슐 http://wwwold.ajou.ac.kr/~chembio/ 벌써 6년이나 지난것.. 본적도 없던 JavaScript 써가며 DHTML 로 메뉴 꾸민 기억이 나네요.ㅋㅋㅋ
여기서 찾아낸 보물 [http://wwwold.ajou.ac.kr/~biotech/bcboard/main.cgi?board=FREE_BOARD&number=15&view=2&howmanytext= 바컴게시판!] 과거로 타임슬립~~~~
- - 용호 짱!! -[ghost]
[http://setiathome2.ssl.berkeley.edu/images/user_profile/1928830.jpg Oh My GOD~~!!!!] - 이건 지워버리길..-[ghost]
Dear windist
- [/Message]