2017-02-21 9 views
1

私は現在mvc3かみそりとUmbracoを使ってWebアプリケーションを作成しているWeb開発者です。私はこの仕事に長い間慣れておらず、ダイナミックで強力な型付けされた要素を使用して標準に従うように移行しました。動的型と強く型付けされた要素

私は決して実際に多くの理由を与えられたことはありませんでした。オンラインで検索すると、設定された型変数を追跡してデバッグするのがはるかに簡単だと思われますが、関数で使用するのは混乱します。

たとえば、Umbraco Contentを使用する場合、私は今、1Umbraco.TypedContent1に切り替えました。それは強く型付けされた変数を返すと推測していますが、デバッグ以外の利点がありますか?

+0

あなたはUmbraco 7.4+を使用していると仮定すると、私は本当にModelsbuilderを使用することをお勧めすることができます。これはUmbracoコアの一部であり、強く型付けされたプロパティを提供します。したがって、Model.AttributeValue( "aliasName")を実行する代わりに、Model.AliasNameを実行できます。これはダイナミクスを使用する場合とよく似ていますが、ビジュアルスタジオの権利を設定する場合は、インテリセンスを使用することができます。 http:// 24days。in/umbraco-cms/2016/getting-started-with-modelsbuilder/ – Mark

答えて

4

私は主にPHPとPythonのバックグラウンドを使いましたが、約3年前にC#に切り替えました。 C#のような強く型付けされた言語でのプライマリ開発への移行は、明らかに学習曲線でした。特に、C#の非常に厳格な継承と組み合わせると、過度に制限がかかることがあります。しかし、強く型付けされた言語は、あなたに多くのものを買う。

まず、おそらく最も重要なのはコンパイル時エラーです。 Pythonのような動的言語では、アプリケーションが実行され、実行時例外が発生するまで間違った型を使用していることはありません。強く型付けされた言語では、アプリケーションは構築されないため、一般的にはコード内にタイムバンプが残ることはありません。

第2に、強く型付けされた言語を高度に最適化することができます。それぞれのものが常に特定の型であることを保証することによって、コンパイラはメモリ割り当てと実際にコンパイルされたアセンブリコードを最適化できます。

第3に、強く型付けされた言語は良いプログラミング方法を奨励します。それは幾分制限されていると感じることができますが、強く型付けされた言語は、動的言語ではしばしば欠けている可能性のある構造体をコードに強制します。もちろん、動的言語で良いコードを書くことは不可能ではないとは言いませんが、開発者が細部まで時間や注意を払う気にならない場合は、動的言語ではるかに多くの被害が生じます強く型付けされたものよりも。

つまり、C#はすべて厳密に型指定されているわけではありません。すなわち、少し厄介なdynamicというキーワードがあります。これは頻繁に酷使されており、MVCはほとんどの場合、ViewBagのようなものでダイナミクスの使用を奨励しています。 dynamicはその場所を持つことができますが、強く型付けされた言語で作業することの利点をすべて捨ててしまうので、できるだけ避けることをおすすめします。

ジェネリックの概念もあります。おそらくそれを実現することなくジェネリックを使用しているかもしれませんが、プログラミングが過度に制限されていると感じる場合は、おそらくそれらを調べて、実際にその力を活用する方法を学ぶべきでしょう。ダイナミックなタイプのようなものですが、コンパイル時にはまだ設定されているので、もたらす利点を失うことはありません。

+0

非常に明確な答え、多くの感謝: –

1

Chrisが言及していることに加えて、Umbracoの動的APIは強く型付けされたAPIよりも遅いため、パフォーマンス上の利点もあります。また、ダイナミック型はUmbracoのV8では削除されます

+0

お知りになりたい:) –

関連する問題