2017-02-21 3 views
1

저는 현재 mvc3 면도기와 Umbraco을 사용하여 웹 응용 프로그램을 만드는 웹 개발자입니다. 필자는 오랫동안이 일을 해오 지 않았으며 동적 인 유형에서 강력한 형식의 요소를 사용하여 표준을 따라갔습니다.동적 요소와 강력한 형식의 요소

필자는 결코 많은 이유가 주어지지 않았으며, 온라인으로 검색하면 설정 유형 변수를 따르고 디버깅하는 것이 훨씬 쉬워 보이지만 기능에서 사용하는 것이 혼란 스럽습니다.

예를 들어 Umbraco Content를 사용할 때 1Umbraco.TypedContent1로 전환했습니다. 그것은 강력하게 형식화 된 변수를 반환합니다 짐작하지만, 디버깅 이외의 다른 이점이 있습니까?

+0

당신이 Umbraco 7.4+를 사용하는 가정, 난 정말 Modelsbuilder를 사용하는 것이 좋습니다 수 있습니다. 그것은 Umbraco 코어의 일부이며 강력한 유형의 속성을 제공합니다. 그래서 Model.GetPropertyValue ("aliasName")를 수행하는 대신 Model.AliasName을 수행 할 수 있습니다. 다이내믹을 사용할 때와 매우 비슷하지만 시각적 인 스튜디오를 올바르게 구성하면 인텔리 센스를 사용할 수 있습니다. http : // 24days.in/umbraco-cms/2016/getting-started-with-modelsbuilder/ – Mark

답변

4

저는 주로 PHP와 파이썬 배경에서 왔지만 약 3 년 전에 C#으로 전환했습니다. C#과 같이 강력한 형식의 언어로 기본 개발로 전환하는 것은 분명히 학습 곡선이었습니다. 때때로 C#의 매우 엄격한 상속과 결합 될 때 지나치게 제한적일 수 있습니다. 그러나 강하게 타자를 치는 언어는 당신에게 다수 것을 사다.

우선 가장 중요한 것은 컴파일 타임 오류입니다. Python과 같은 동적 언어를 사용하면 응용 프로그램이 실행되고 런타임 예외가 발생할 때까지 잘못된 형식을 사용했다는 표시가 없습니다. 강력한 형식의 언어를 사용하면 응용 프로그램이 빌드되지 않으므로 일반적으로 코드에서 시간 초과가 발생하지 않습니다.

두 번째로, 강력한 형식의 언어는 고도로 최적화 될 수 있습니다. 각 항목이 항상 특정 유형임을 보장함으로써 컴파일러는 메모리 할당과 실제 컴파일 된 어셈블리 코드를 최적화 할 수 있습니다.

세 번째로, 강력한 형식의 언어는 좋은 프로그래밍 실습을 장려합니다. 다소 제한적인 것으로 느낄 수 있지만 강력하게 형식화 된 언어는 동적 언어에서 부족할 수있는 코드 구조를 만듭니다. 물론 역동적 인 언어로 좋은 코드를 작성할 수는 없다는 말은 아니지만 개발자가 시간이나주의를 기울이지 않아도 동적 언어로 훨씬 많은 피해를 입힐 수 있습니다. 강하게 입력 된 것보다

즉, C#은 모두 강력한 형식이 아닙니다. 즉 다소 엉뚱한 dynamic 키워드가 있는데, 이것은 종종 악용되고 있습니다. MVC는 거의 ViewBag과 같은 동적 인 사용을 권장합니다. dynamic은 그 자리를 차지할 수 있지만 가능한 한 많이 피하는 것이 좋습니다. 강하게 입력 된 언어로 작업 할 때 얻을 수있는 모든 이점을 버리고 있습니다.

제네릭의 개념도 있습니다. 아마 제네릭을 사용하지 않고도 제네릭을 사용하고있을 것입니다. 그러나 프로그래밍이 지나치게 제한되어 있다면 아마 더 많이 살펴보고 실제로 가져 오는 힘을 실제로 활용하는 방법을 배워야 할 것입니다. 동적 유형을 갖는 것과 조금 비슷하지만 컴파일 시간에 설정되므로 가져 오는 이점을 잃지 않습니다.

+0

매우 명확한 대답, 많은 감사 :) –

1

Chris가 언급하는 것 외에도 Umbraco의 동적 API가 강력한 형식의 API보다 느리기 때문에 성능상의 이점이 있습니다. 또한, 동적 유형 Umbraco의 V8에서 제거됩니다

+0

잘 알고 :) –

관련 문제