응용 프로그램을 프레임 워크에 느슨하게 연결할 수 있습니까?


14

웹 응용 프로그램을 개발 중이라고 가정 해 봅시다. 첫 번째 선택은 Fat-Free Framework (F3) 및 MVC 패턴과 함께 PHP를 사용하는 것입니다. 내년에는 Zend Framework 또는 ASP.NET MVC로 전환하기로 결정할 수 있습니다. 내 프레임 워크에 느슨하게 연결되도록 내 응용 프로그램을 시도하고 디자인하는 것이 합리적입니까? 아니면 프레임 워크가 너무 현실적이어서 너무 복잡합니까?

내가 묻는 유일한 이유는 최근에 동료와 대화를 나 because 기 때문에 내 응용 프로그램을 F3에 느슨하게 연결하는 하늘 아이디어에서 내 파이를 비난했기 때문입니다.


2
자신 만의 응용 프로그램 개념을 요약하십시오 .
Vaughan Hilts

@VaughanHilts 사람들이 당신에게 동의하는 것 같지만 무슨 말인지 모르겠습니다. 정교하게 할 수 있습니까?
Big McLargeHuge

답변:


29

응용 프로그램을 프레임 워크에 느슨하게 연결하면 프록시 프레임 워크를 작성하게됩니다. 프록시 프레임 워크를 작성하는 것은 많은 작업이며 새 프레임 워크로 전환하는 경우 프록시 프레임 워크가 새 프레임 워크를 지원하도록 많은 작업을 수행해야합니다. 물론 서로 다른 프레임 워크는 서로 다른 관용구와 패턴을 사용하므로 프록시 프레임 워크를 매우 복잡하거나 (모든 것에 적합하게 만들려고 할 때) 매우 제한적입니다 (가장 낮은 공통 분모를 사용하는 경우). 어느 쪽이든 당신은 그 프록시 프레임 워크와 싸워야합니다.

이 모든 문제에 가치가있는 프레임 워크를 변경하는 능력이 있습니까? 내가 말했듯이 프록시 프레임 워크를 조정해야하기 때문에 응용 프로그램 코드를 직접 조정하는 것보다 더 많은 작업이 될 수 있기 때문에 변덕스럽게 변경할 수 없습니다.


4
"프록시 프레임 워크"라는 용어를 사용하면 문제가 명확 해졌습니다.
Big McLargeHuge

1
이 답변에 +1. 새로운 프레임 워크에 대한 레코딩이 프록시 프레임 워크 생성보다 훨씬 저렴할 수있는 경우가 많습니다. 즉, 전체 프레임 워크 전환은 확실히 가능하며 1) API에 대한 접점이 적고 2) 서로 다른 프레임 워크의 API 사이에 공통점이있는 프레임 워크에는 의미가 있다고 생각합니다.하지만 분명히 그렇지 않습니다 일반적인 경우.
J Trana

5

할 수 없습니다.

여러 프레임 워크에서 이식 가능한 방식으로 디자인 할 수 있습니다 . MVC는 MVC이며 원칙은 언어 나 플랫폼이 사용되는 것과 거의 동일합니다.

그러나 실제 코드는 프레임 워크 또는 언어에 따라 다릅니다. 이를 추상화하는 유일한 방법은 중간 프레임 워크를 기반으로 코드를 작성하는 것입니다. 그런 다음 응용 프로그램을 변경하지 않고 중간 구현 변경 (F3에서 .NET?으로)을 수행 할 수 있습니다. 많은 작업이며 누출이없는 추상화를 가정하고 문제를 해결하지 않고 문제를 옮깁니다. 이제 중간 프레임 워크에 묶여 있습니다.

더 긍정적 인 참고 사항 : 구현과 독립적 인 플랫폼에서 테스트 (BDD 스타일)를 표현하는 것을 고려하십시오. 그것들은 주요 재 작성에서 살아남을 수 있습니다.


PHP에서 .NET으로 변경하는 것은 아마 지적한 것처럼 현실적이지 않을 것입니다. 나는 매우 높은 수준의 추상적이며 아마도 명쾌하게 생각하고 있습니다.
Big McLargeHuge

5

나는 로버트 C. 마틴이 "당신이 한 첫 번째 결정은 나중에 변경하기 가장 어려운 결정"이라는 내용에 대해 이야기하는 것을 보았습니다.

따라서 사용하고 싶은 것을 정확히 모르는 경우이 결정을 연기하려고합니다. 지금 정의 할 수 있고 어떤 프레임 워크와도 독립적으로 유지 될 수있는 부분을 식별하십시오.


정말 좋은 조언입니다!
Big McLargeHuge

5

프레임 워크 잠금은 심각한 문제 일 수 있지만 문제를 이식성 중 하나로 보는 데 도움이됩니다. 이식성은 절대적인 속성이 아니라 출발점과 가고 싶은 곳과 관련이 있습니다. 이와 유사하게 소프트웨어는 이미 다른 환경으로 포팅 한 경우에만 이식 가능합니다.

프레임 워크 내부의 응용 프로그램 개발은 대부분 접착 코드 인 경향이 있으며 이는 프레임 워크의 구성 요소를 하나로 묶는 것입니다. 구성 파일은 일부 시스템에서 일정량의 접착제를 추상화 할 수 있지만 많은 세부 사항을 코드에서 수행해야합니다.

반면, 비즈니스 규칙 및 프로세스는 애플리케이션에서 추상화 될 수 있습니다. 추상화의 어려운 부분은 규칙이 프레임 워크에 의해 직접 구현 될 때입니다. 보안, 접근성 및 프로세스 시퀀싱은 프레임 워크에 의해 시행되는 경향이 있으며보기 가장 어려울 수 있습니다.

응용 프로그램의 접착제 부분을 비즈니스 규칙 및 비즈니스 프로세스 및 비즈니스 데이터 부분과 분리 할 수 ​​있으면 솔루션의 일부를 이식 가능하게 만들 수 있습니다.


+1. (웹) 서비스에서 비즈니스 로직을 추출하면 모든 애플리케이션이이를 소비하게하여 PHP MVC 앱을 비즈니스 로직에 대한 웹 GUI로 줄여 전체를 쉽게 교체 할 수 있습니다.
CodeCaster

웹 서비스 디자인은 자체 프레임 워크 디자인과 유사합니다. 또한 상당수의 비즈니스 규칙, 특히 정보 공학 부분이 GUI에 구현되어야합니다.
BobDalgleish
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.