2009-02-05 3 views
3

그래서 나는 taken over a Java Web project입니다. 이 응용 프로그램은 현재 다른 회사에서 근무하는 다른 개발자가 작성했습니다. 일반적으로 응용 프로그램은 간단하고 잘 설계되어 있으며 코드는 충분히 문서화되어 있습니다. 유일한 문제는 이전 개발자가 널리 사용되는 프레임 워크 대신 자신의 데이터베이스 액세스 라이브러리를 작성하기로 결정했기 때문입니다. 수년간 프로그래밍 경력을 쌓은 그는 경량 Hiberbate와 비슷한 모든 데이터베이스에 액세스 할 수있는 인상적인 프레임 워크를 구축했습니다.동일한 프로젝트에서 두 개의 프레임 워크를 사용할 수 있습니까?

현재 코드를 폐기하고 더 일반적인 JPA 레이어로 바꾸는 이유가 없습니다. 현재 코드가 잘 작동하기 때문에 (유혹이지만!). 그러나 새로운 기능을 갖춘보다 일반적인 프레임 워크를 사용해야하는지 궁금합니다. 응용 프로그램 스택은 간단하며 Hibernate 또는 JPA를 쉽게 연결할 수 있습니다. 오래된 페이지 (새 버그 수정 포함)는 이전 프레임 워크를 사용하고 새 페이지는 새 프레임 워크를 사용합니다.

그러나이 접근법의 단점 중 하나는 새로운 개발자에게 혼란을 줄 수 있다는 것입니다. 그러나 이전 프레임 워크를 계속 사용하여 필요에 따라 확장/수정 할 수 있습니다. 내가 말했듯이, 그것은 효과가있다!

답변

4

Eldimo,

당신은 변화의 투자 수익을 기반으로 새 프레임 워크를 통합하기로 결정 균형을해야한다. 현재 프로젝트의 장수는 그것을 보는 한 방법입니다.

프로젝트가 안정적이고 유지 보수 단계에있는 경우에는 과감한 변경을해서는 안됩니다.

그러나 프로젝트가 계속해서 새로운 기능을 통합하고 계속 성장한다면 투자 수익을 증가 시키면 지원되는 프레임 워크를 채택하는 것을 고려해야합니다. 현재 가정에서의 변화가 예상되면 새로운 요구 사항 및 이러한 요구 사항이 다른 기존 프레임 워크에서 지원되는 경우 해당 요구 사항을 채택 할 강력한 이유가 있습니다.

그러나 새로운 지속성 프레임 워크를 채택하면 짧은 시간 동안 현재 프로젝트가 불안정 해지고 프레임 워크에 대한 팀 경험 부족으로 인해 버그가 증가하고 개발 팀의 속도에도 영향을 미칠 수 있습니다 .

0

이런 식으로하는 것의 실제 단점은 한 프레임 워크가 다른 프레임 워크가 즉시 픽업하지 않는 데이터베이스를 변경할 위험이 있다는 것입니다. 나는 NHibernate + ADO.NET의 조합을 사용하기 전에 이것에 들어갔다. NHibernate가 무엇인가를 캐싱했다면 ADO.NET 변경을 무시할 수있다.

이 문제를 완화 할 수 있다면 기술적으로 잘못된 점은 없습니다.

9

틀림없이 프레임 워크를 추가하고 싶지는 않지만 틀린 점은 수용 가능한 대안이 존재할 때 자신의 psuedo-framework을 작성하는 것입니다. 제 직업에서는 Spring을 사용하여 JPA에서 JDBC 스타일로 변환해야했습니다. 변환하는 동안 JPA 코드를 삭제하거나 수정하지 않았고 간단히 JDBC에서 다시 작성했습니다. 특정 메서드가 작동하는 것이 편안해지면 구현을 바꿀 것입니다. 이것은 서비스 레이어 아래에서 양탄자를 당겨서 말하지 않고 전환율 이상으로 조각 식사를 할 수있었습니다. 따라서 질문에 완전히 대답하려면 계획이 서로 마이그레이션하는 동안 두 가지 프레임 워크를 사용하는 것이 좋습니다.

1

"작동합니다"- 만지지 마십시오!

성능 테스트, 확장 성 조사 등이 작업을 수행하기위한 사례를 구축하는 것이 유용 할 수 있습니다. 좋은 이유가 없다면 현재 사용중인 프로젝트에 그대로 두십시오. DB로 쏟아지는 버그가 충분히 발생하면 잘 지원되는 백엔드로 마이그레이션 할 수있는 경우가 있습니다. 둘 다 성능이 낮 으면 원시 JDBC가 추상화 프레임 워크를 전환하는 대신 이동하는 방법 일 수 있습니다. 이 경우

1

, 나는 당신이 진정 기능의 사용이 최대 절전 모드 수 경우 .... 대답은 "예"라고 생각하거나 JPA는 기존 라이브러리하지 않는 것을 소유하고 경우 당신은 당신을 확신하는 현재 존재하는 것을 무너 뜨리지 않을 것입니다.

Hibernate 또는 JPA를 통합함으로써 개발 팀에 대한 유지 보수 책임을 덜어 줄뿐만 아니라 앞으로 나아갈 측면에서 더 행복 할 것처럼 들립니다.

의 사용자가 인 개발자를 위해 모든 변경 사항과 추론을 기록해 두십시오.

1

효과적이고 인상적이라면 왜 아무 이유없이 다른 프레임 워크로 전환하려는 유혹에 빠지게되는 이유는 무엇입니까?현재 프레임 워크에 일부 네거티브 (유지하기 어렵고, 이해하기 어렵고, 디버그 불가능 함)가 없다면, 나는 그것을 그냥 두라고 말합니다.

관련 문제