업계에서 MVC 패턴이 많이 사용됩니까? 과대 광고는 무엇입니까? [닫은]


16

저는 학생이지만 곧 소프트웨어 업계로 진출하기를 바랍니다. MVC 소프트웨어 패턴에 대해서는 과대 광고가있는 것 같습니다. PHP 프레임 워크가 종종 MVC라는 것을 알았습니다. 웹 언어가 아닌 언어는 어떻습니까? 내 석사 논문 (C ++)의 경우 MVC 패턴을 선택했습니다. 왜냐하면 MVC 패턴은 논리와 사용자 인터페이스를 멋지게 분리했기 때문입니다.

업계에서는 많이 사용됩니까? 그렇다면 주요 이유는 무엇이며 다른 경쟁적인 인기 디자인은 무엇입니까?


13
MVC는 단순히 관심사 분리의 일반적인 구현입니다. SoC는 MVC 자체가 아니라 중요한 것입니다.
Raynos

1
더 나은 특정 응용 프로그램에 적합한 MVC의 대안 / 변형에 대해서는 Martin Fowler의 'Enterprise Application Architecture 카탈로그'를 확인하십시오. martinfowler.com/eaaCatalog/index.html
Mchl

3
또한 'MVC'라는 레이블이 붙은 많은 것들이 실제로 MVC가 아니라 데이터 스토리지-로직-프리젠 테이션 (IMHO, 더 의미가 있음)과 같은 (더 새로운) 다 계층 애플리케이션 모델을 따릅니다.
tdammers

MVC는 웹 프로그래밍보다 우선합니다.
Jeremy

답변:


6

MVC는 도메인에 매우 유용한 패턴이기 때문에 많은 과대 광고와 사용을 얻습니다.

MVC는 우려의 분리를 권장합니다. 제대로 수행되면 개발을 단순화 할 수 있습니다. 데이터 스토어에 포함 된 데이터를 표시 및 / 또는 수정하는 모든 애플리케이션에는 MVC 기능이 있지만 분리되지 않을 수 있습니다. 구성 요소를 분리하지 않으면 문제 사이에 바람직하지 않은 결합이 발생할 수 있습니다.

MVC를 사용하면 컨트롤러 나 모델을 수정하지 않고도 응용 프로그램의 프런트 엔드 인터페이스 (View)를 쉽게 변경할 수 있습니다. 스마트 폰, 웹 및 하나 이상의 응용 프로그램에서 액세스를 허용해야하는 경우에 바람직 할 수 있습니다.

대규모 팀의 경우 MVC는 개발자가 계층 중 하나에서 작업을 수행 할 수 있으므로 다른 계층에서 많은 기술을 필요로하지 않으므로 리소스를 더 잘 사용할 수 있습니다. 조정 리소스의 오버 헤드에 따라 더 효율적일 수 있습니다.


12

예, 많이 사용됩니다. iPhone / iPad 응용 프로그램은 모두 MVC로 설정되어 있습니다. 최근에 asp.net MVC 앱을 많이 보았습니다.

MVC를 사용하면 유연성이 향상되고 개발자가 각 기능마다 별도의 코드를 작성할 수 있습니다. 유지 보수가 쉬워집니다.


Apple의 Cocoa 프레임 워크 (MacOS X에서 사용)는 NextStep의 발전으로 1980 년대 후반입니다. NextStep, Cocoa 및 Cocoa Touch (iOS에서 사용)는 모두 MVC를 많이 사용합니다.
Caleb

4

지금 유행하고 있습니다.

과대 광고의 힘을 과소 평가하지 마십시오. 곧 누군가가 더 새롭고 더 밝고 이해하기 쉬운 다른 것을 내놓을 것이고, 모든 사람들은 MVC를 모든 악의 근원 (웹폼에 생겼다)의 근원으로 삼을 것입니다. "관리 황소 * * "로 XML을 작성하십시오. 또는 MVC가 "해결해야 할 매우 어려운 문제에 대해 충분히 융통성이 없기 때문에"(정적 유형 언어 대 동적 언어) 다른 패턴으로의 전환이있을 것입니다.

MVC는 웹 프로그래밍에서 발생하는 많은 문제에 적합한 프레임 워크 접근 방식입니다. 그것은 잠시 동안있을 것이지만 대부분의 사람들이 그것을 사용하는 이유는 유행어를 준수하는 것입니다.

편집하다

참고 : MVC 패턴은 수년 동안 사용되어 왔으며 asp.net MVC 이전의 프레임 워크에서 사용되었습니다. 나는 그것이 현재로서는 꽤 인기가 있다고 말하고 있기 때문에 다른 접근법보다 더 많은 압박을 받고 있습니다. 모든 개인 프로젝트에 MVC를 사용하고 있으며 상용 프로젝트에서도 MVC를 사용하고 있습니다 (.net 개발자입니다).

이것은 비난이 아니었다.


7
-1의 경우 : 'At the Moment', 예를 들어 Motalk의 기술로 Smalltalk 또는 Java / Swing의 시작을 고려하지 않는 한 MVC는 너무 오래되었습니다.
keppla

4
"현재"를 제외하고는 상당히 정확합니다. MVC는 Java 세계를 제외하고 내가 알고있는 최근까지 거의 사용되지 않았습니다. Rails가 대중화 될 때까지 다른 곳에서는 사용되지 않았습니다.
웨인 몰리나

4
내가 만난 대부분의 GUI 프레임 워크 (html이 아닌)가 MVC를 사용했지만 지난 10 년 동안 '거의 사용되지 않은'것 같았습니다.
keppla

1
실제로 MVC는 이미 우주의 일부 지역에서 MVP에 의해 과장된 것입니다.
톰 앤더슨

3
개인적으로 ASP.NET MVC가 개념이되기 훨씬 전에 Webforms를 싫어했습니다. 때로는 대부분의 경우 실제로 가장 좋은 옵션이기 때문에 인기가 있습니다. 그렇습니다. 더 새롭고 강력한 것으로 대체 될 수 있습니다. 그것은 과대 광고가 아닌 진보입니다.
Aaronaught

3

내 경험상, 그것은 많이 사용되지 않습니다. 그것은 다른 대안들보다 훨씬 더 좋은 모델이지만, 지난 몇 년 동안 많은 과대 광고가 벌어지고 있습니다. 그 이유는 사람들이 MVC로 전환하기를 두려워하거나 MVC가 안락 지대 외부에 있기 때문에 향후 작업에 MVC를 사용하는 것을 두려워하는 많은 레거시 균열이 있기 때문입니다.


1

Stack Exchange 제품군이 모두 MVC에서 실행된다는 것을 알 수 있습니다.


신난다, 몰랐다 +1
ale

1

ASP.NET MVC는 .NET이 업계에서 많이 사용되기 때문에 웹 응용 프로그램에서 많은 주목을 받았습니다.

Microsoft 웹 응용 프로그램은 클래식 ASP에서 ASP.NET으로 발전했으며 Web Forms를 기반으로합니다 (VB6 Win Forms 개발자가 이미 웹의 새로운 영역으로 쉽게 변환 할 수있는 기술을 가능하게하기 위해).

불행히도 Web Forms는 상태 기반이며 HTTP (웹 기반)는 상태 비 저장이므로 viewstates와 같은 문제로 인한 많은 해결 방법이 필요했습니다.

ASP.NET MVC를 사용하면 WebForms 개발자가 SoC가 우수하고 테스트 할 수 있도록 많은 노력을 기울인 웹 프레임 워크로 변환해야하는 기술이 가능합니다 (WebForms는 테스트 할 수 없기 때문에 MVC 팀은 프레임 워크에 노력).

그것은 만병 통치약 /은 총알이 아니며, 다른 프레임 워크와 마찬가지로 그것을 사용하는 시간과 사용하지 않는 시간이 있습니다. 바라건대 사람들은 결국 모든 것을 해결하기 위해 그것을 사용하지 않을 것입니다 : 유일한 도구가 망치 일 때 모든 문제는 못처럼 보입니다.


1

MVC는 마케팅 자료에 두드러지게 등장하는 몇 가지 특정 프레임 워크에서 과대 광고를받은 매우 간단한 개념이므로 역사상 순간입니다. 또한 소프트웨어 개발에 등장한 많은 모범 사례와 함께 열중합니다. 이는 HTTP와 같은 의사 상태 저장 개발에는 이중으로 적용됩니다. 웹 세계에서 사용되는 정말 다른 "패턴"인 ASP.Net WebForms 이벤트 기반 모델 중 하나만 알고 있습니다.

솔직히 논문 전체에 충분한 것이 있다는 것에 약간 놀랐습니다.

그러나 귀하의 질문에 대답하십시오. WebForms는 인트라넷 비즈니스 응용 프로그램에서 주로 사용되는 웹 파이의 좁은 조각입니다. 실제 패턴이없는 스파게티로 코딩 된 페이지는 아마도 벤 다이어그램의 상당량을 구성하지만 프레임 워크 인 거의 모든 것이 최소한 MVC에 크게 영향을 받으므로 짧은 대답은 그렇습니다 .


@geroge : 답변 주셔서 감사합니다. Ha .. 걱정하지 마십시오. 논문에 포함 된 소프트웨어는 MVC를 사용합니다. 실제로 MVC에는 없습니다!
ale
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.