2017-02-03 16 views
0

私はJavaScriptで作業しましたが、現在はC#で作業しています。プログラミングとオブジェクト階層を考慮すると、どちらの場合でもコードがどのように実行されているのかわかりませんでした。OOPなどの言語パラダイムは、実行またはオーサリングの観点から設計されていますか?

JavaScriptで「クラス」階層を記述すると、Javaプログラマはコンストラクタ定義の外部にこれらの階層を定義することに悩まされていました。たとえば、次のように

function SomeConstructor() {} 
SomeConstructor.prototype.someMethod = function() {} 
var someItem = new SomeConstructor() 
someItem.someMethod() 

これは、C#で、たとえば、伝統的なOOP言語は(少なくとも経験の私の2年未満に)構築されている方法とは全く異なります。

public class SomeClass{ 
    public SomeClass() {} 
    protected void SomeMethod() {} 
} 
SomeClass someItem = new SomeClass(); 
someItem.SomeMethod(); 

質問: OOPなどの言語パラダイムは、コード実行効率、開発者出力(使いやすさ)、またはその両方の向上に重点を置いていますか?

+0

この質問は他のサイトを参照するときに[SE](http://softwareengineering.stackexchange.com/)のウェブサイト – yeputons

+0

@yeputonsに適していると思われます。[クロスポストが嫌になる] (http://meta.stackexchange.com/tags/cross-posting/info) – gnat

+0

質問を移動することは可能でしょうか?しかし、私はその特権を持っているとは思わない –

答えて

1

質問:コード実行、現像出力(使用すなわちやす)、又は 両方の効率を向上させる上で、このようなOOPフォーカスとして言語パラダイムか?

Iは、アスペクト指向プログラミング(AOP)と他のパラダイムは、可能な最高レベルであり、そのオブジェクト指向プログラミング(OOP)言います。

レイヤーが高いほど、生産性が重視されます。

したがって、私はOOP、AOPと生産効率に焦点を当てているプログラミング言語で実装され、他のパラダイムを締結するだろうと、そうでない場合はコンパイルされ、非常に非効率を生み出す魔法の多くを行うコンパイラ、ため作業ですコード。

+0

私は仕事をしていたシニア・デベロッパーからAOPについて聞かれ、それを一度も試してはいけないと尋ねました。私は、プログラムの結果があなたが見ているコードに直接定義されていない場合、どうして欲求不満になるかを見ています。そうだとすれば、抽象度が高いほど他の人のコードを読むのが難しいと言うのは公正だろうか? 「開発者効率」、「メンテナンス効率」、「コンパイルされたコード効率」、「コンパイルされたコードを効率的に作成することの難しさ」の間にトレードオフがあるようです。回答ありがとうございます –

+0

@ZachSmith手続き型のプログラマは、同じことをするためにもっとコードを実装する必要があるため、OOPに入るべきではないと言っています。 OOPはより一般的ですが、AOPは特定のケースに適しています。上位のルールが抽象であれば、コードを読むのが難しくなります。それは、上位概念が言語、ライブラリ、フレームワークでうまく実装されていないためです。 PostSharpのようなフレームワークを見て、AOPをまったく使わないものよりもコードをきれいにして、背後で多くのことをできるようにする方法。 –

+0

@ ZachSmithまた、私のライブラリのいくつか、https://github.com/mfidemraizer/trackerdogを見てください。私はAOPを使用しない場合、追跡を変更するのは簡単でしょうか? :Dチュートリアル[here](http://matiasfidemraizer.com/trackerdog/html/52e40f26-3dfe-47e0-adf1-09233e98f42e.htm)を参照してください。私はあなたがAOPについてあなた自身の肯定的意見を作成すると信じています。 –

関連する問題