2012-11-20 2 views
2

기존 레거시 데스크톱 응용 프로그램을 다시 작성해야합니다. 그것은 여러 내부 사용자 커뮤니티의 일일 작업을 여전히 지원하는 작은 자바가 아닌 데스크톱 프로그램입니다.KISS 및 디자인 패턴

응용 프로그램이 구식이며 더 이상 지원되지 않는 언어입니다. 나는 중학교 개발자이고 그것을 다시 작성해야합니다. app rewrite sinkhole을 피하기 위해 기존 데이터베이스 & 데이터 구조를 사용하여 시작할 계획입니다 (몇 가지 중요한 제한 사항이 있지만 리팩토링만큼 고통 스러울 수 있으므로이 방법을 사용하면 초기 작업이 더 빨리 완료되고 마이그레이션, 둘 다 성공의 열쇠입니다).

나의 도전은 내가 Keep It Simple이라는 개념에 대해 매우 모순된다는 것이다. 나는 그것이 디자인이 아니라 기능에 대해 이야기하고 있다는 것을 이해한다. 하지만이 앱을 쓰는 동안, 디자인 패턴을 쫓아 다니는 데 엄청난 시간이 소요될 수 있습니다. (특히 의존성 주입과 관련하여 정말 고심하고 있습니다.) 좋은 (그러나 "Group of Four"가 아닌) 디자인은 일을 극적으로 더 빠르고 더 간단하게 끝낼 수있었습니다.

이 응용 프로그램은 오래 동안 성장하고 살지만 4 백만 회선 엔터프라이즈 대기업이 될 수는 없으며 해당 객체는 다른 응용 프로그램에서 사용할 수 없습니다 (예, 알고 있습니다. ... 야기!).

은 KISS 적 구조 & 디자인에 적용됩니까 질문? 나중에 "리팩토링 도구"규칙은 "예를 들어 나중에 종속성 주입으로 돌아갈 것"이라고 말하기까지 확장 될 수 있습니까? 아니면 모든 소위 임계 상태에서 굽지 않는다면 자체 프로젝트입니다. 바로 프레임 워크 지원?

"제대로"하고 싶습니다 ....하지만 끝내야합니다. 마무리하기가 너무 복잡하면 디자인과 상관없이 실패합니다.

답변

1

저는 KISS가 확실히 건축과 디자인에 적용된다고 말하고 싶습니다. 오버 아키텍처

내 경험에서 일반적인 문제이며, 관련 코드 냄새가있다 : 간단 디자인은 충분 지나치게 복잡한 디자인 패턴의

Contrived complexity

강제 사용.

고급 디자인 패턴, 패러다임 또는 아키텍처를 사용하면 프로젝트의 척도에 적합하지 않을 때 강제로 실행하지 마십시오.

잠재적 인 비용 절감에 대비하여 아키텍처의 잠재적 인 비용을 고려해야하지만 나중에 구현하는 것이 아니라 더 빨리 구현할 수있는 추가 시간 절약을 고려해야합니다.

+0

감사합니다. 나는 게으르지 않도록 조심하고 패턴과 지원 프레임 워크를 배우지 않는 이유를 찾는다. 그러나 다른 한편으로는 현실은 하루 24 시간 밖에 안되고 실제로 작동하는 것을 얻는다. – user1549195

1

예, KISS,하지만 http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351을 참조하고 리팩토링을 에 대해을 향해 작은 단계로 디자인 패턴을 고려하십시오. 코드는 당신에게 무엇을해야할지를 말해줘야합니다.

+0

와우, 작업을 신속하게 완료 할 수있는 방법이 있지만 내 다리를 태우지 않으면 완벽 할 것입니다.이전에 내 레이더에 없었던 훌륭한 책처럼 보이는 것을 가르쳐 주셔서 감사합니다. – user1549195