問題タブ [implementation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - 信頼できる/尊敬されている「最もよく知られている実装」の Web サイト/リソースは何ですか?
編集:
うわー、この質問に対する最初の反応はかなり否定的でした。「最高」という言葉を使って、かなり強い感情を引き起こしたのではないかと思います。何人かの人々がその言葉に引っ掛かり、私の質問をすぐに却下したようです。
明らかに、単一のアプローチが「最善」ではないという状況は非常に多くあります。少なくとも、ある問題に対する最善の解決策が、他の同様の問題に対しては最善の解決策ではないことがよくあります。わかりました。しかしここで、私が実際に求めていることの背後にある理由について詳しく説明してみましょう。
私は類推を使って自分自身を説明するのが最も簡単だと思う傾向があるので、ここに行きます. 現在の仕事では、ほぼ専ら .NET を使用しています。.NET には、フレームワークに組み込まれた多くの機能があります。代表的な例は名前空間です。これには、非常に優れた実装が既に存在するSystem.Collections.Generic
ため、正気の .NET 開発者がゼロから再開発することは (ほとんど) ありません。双方向リンク リストを必要とする問題に取り組んでいる場合、「よし、双方向リンク リスト クラスを作成する時間だ」と決めるつもりはありません。既に存在する を使用するか、せいぜいそれを拡張するか、いくつかの追加機能を追加する独自のクラスでラップします。LinkedList<T>
双方向リンク リストの「最良の」バージョンはLinkedList<T>
.NET のものだと言っているのでしょうか。もちろん違います。それはばかげているでしょう。しかし、.NET の実装がLinkedList<T>
、同じ目的 (二重リンク リストの目的) を果たすことを目的とした他のほとんどの確立されたライブラリのコレクションの実装とは大幅に異なるとは思えません。一方で、自分自身の実装をゼロから作成する場合は、比較的自信があります。、堅牢性、パフォーマンス、柔軟性などの点で、かなりの数の問題があります。理由は1つだけです。私が愚かでも、怠け者でも、良いコードを気にしないからでもありません-単純に私は 1 人の人間であり、リンク リストの専門家ではありません。また、リンク リストを設計する際に考慮する必要があるすべてのことを考えたこともありません。
しかし、私はたまたま、物事が内部でどのように実装されているかに興味を持っている開発者です。したがって、リンクされたリストのよく考え抜かれた設計のいくつかの変形、または堅牢で効率的な実装が書かれているかなり確立された概念のページをチェックアウトできればいいと思います。 . (ちなみに、私は .NET のソース コードLinkedList<T>
が利用可能であることを認識しています。私はそれを例として使用しているだけです。実際には、適切で機能する実装が存在するソリューションに関するすべての問題について話しているのです。)
さて、私はこれがオープンなものであると話しました。それについて詳しく説明しましょう。SourceForge.net、CodePlex、Google Code などのサイトについて話しているのではありません。これらはすべて、プロジェクトをホストするためのサイトです。つまり、特定の業界や分野、または分類可能な目的に合わせて調整されたアプリケーションやライブラリです。私が話しているのは、次のようなものです。
http://en.wikibooks.org/wiki/Category:Algorithms_and_data_structures
おそらく、これまでに書いたものよりも優れていることを示しているので、最初にそのリンクを提供する必要があったのかもしれません。しかし、私が尋ねていることを私が見た他のサイトと区別する主なポイントは、新しい問題に取り組む方法があるのではないかと具体的に考えていたことです。リンクされたリストの例のように、よく知られた確立された実装である必要はありません。ウィキのような方法で共同作業を行いますが、特定のオープンソース プロジェクトには結び付けられません。
ですから、ある種の結論として、私は次のような状況を想像していました: 私は自分自身が新しい問題に直面していることに気づきました. .NET のようなフレームワークで対処できるほど一般的ではないかもしれません。しかし、あちこちの一部の開発者が独立してそれに取り組んでいることは十分に一般的です。私が想像しているような Web サイトが存在する場合、ある時点で、問題に取り組んでいる開発者の 1 人がその Web サイトにアイデアを投稿し、時間の経過とともに他の人がそれを発見して改善/変更を提案し、十分な時間と参加が与えられる可能性があります。 、このすべてのコラボレーションから、非常に優れた実装が得られる可能性があります。そしてそこから、最終的には、この実装のようなものがかなり「標準」と見なされるようになるかもしれません。リンクされたリストの実装、またはクイックソートの実装、またはよく知られていない疑似乱数ジェネレーターのようなものです。
これは今、誰にとっても意味がありますか?私が話していることはばかげたことではないと確信していますが、人々がそう考えているなら、それはおそらくそうです.
オープンソース プロジェクトは非常に人気があります。これらのいくつかは、特定の目的に適したライブラリであり、その最良のものには、非常によく書かれたコードが含まれています。
ただし、オープン ソース プロジェクトへの貢献に関心がある場合、自分のスキルに適したプロジェクトを見つけるのは非常に難しい作業です。同時に、自分の仕事でオープンソース プロジェクトを使用することに興味がある場合、ニーズに適したプロジェクトを見つけるのも難しい場合があります。たとえば、オープンソース ライブラリ X にライブラリ Y と同様に、使用できる多くの機能があり、これら 2 つのライブラリの機能が重複しているため、両方をコードに統合するのは面倒です。
ここ Stack Overflow や Web 上の他の場所で、ある開発者が投稿した「このアイデアをどのように実装しますか?」という質問を見たことがあるでしょう。多くの場合、多数のサンプルコードが付随しています。これらの回答は、投稿者が求めているものと同様の機能を提供するオープン ソース プロジェクト/ライブラリにリンクしている場合があります。
私の質問は次のとおりです。本質的にオープンであり、一般的な (またはそれほど一般的ではない) プログラミングの問題に対して「最もよく知られた実装」を提供するが、特定のオープン ソース プロジェクトとは関係のない、よく知られた Web サイトまたはその他のソースはありますか? ?
一般的な例として、X を実行するアルゴリズムが必要であるとします。SO または他のサイトに質問を投稿してアイデアを求め、それを実装する最善の方法について提案を求めます。ある人が、このアルゴリズムと非常によく似た何かを実行するコードを含むプロジェクト P1 を教えてくれました。別の人が私にプロジェクト P2 を教えてくれました。他の誰かがサンプル コードを書いて、「このようにできるかもしれない」と言っています。
私には、このアイデアのさまざまなバージョンが世界中に出回っている場合、準「公式」実装 ("公式」という言葉は適切ではありません。現在、より良いものを考えるのに苦労しているだけです)、改善が開発/発見されたときに公開および変更できます.
過去にこのようないくつかの異なるサイトに出くわしたような気がしますが、他の誰かが私が説明しているようなリソースを見つけたかどうか知りたいです.
vb.net - なんで?インターフェイスを実装するためのものを再宣言しますか?!VB.NETで
私はVB.NETv2で働いています
私はインターフェースIMyInterfaceを持っており、このインターフェースはメソッドMyMethodを実装しています。
オブジェクトMyObjectBaseがあります。このオブジェクトには、(同じ)メソッドMyMethodが含まれています。
1)今ならMyObject Inherits MyObjectBase Implements IMyInterface
、再定義する必要がありますか?(シャドウ、オーバーライド)クラスMyMethod
で?MyObject
2)代わりにMyMethod
メソッドにMyEvent
イベントがある場合はどうなりますか?
ありがとう。
javascript - Javascript CPS(継続渡しスタイル)の実装
IBM Developer Works の CPS (継続渡しスタイル) に関する記事のため、「return」を使用しないようにしています。
CPSなし
遷移
関数の残りの部分
CPS付き
問題
関数の残りの部分でループが終了します。
解決策は何ですか?
c++ - C ++:メソッドを仮想化することの意味
初心者の質問である必要があります...
既存のクラスAに既存のコードがあり、既存のメソッドA :: f()をオーバーライドするために拡張したいと思います。
それで、他のコードがそれに依存しているので、A :: f()を変更したくないので、f()をオーバーライドするクラスBを作成したいと思います。
これを行うには、A :: f()を仮想メソッドに変更する必要があると思います。
私の質問は、メソッドを動的に呼び出すことを許可する以外に(AではなくBの実装を使用するために)、メソッドを仮想化することに他の影響はありますか?私はある種の良いプログラミング慣行を破っていますか?これは、A :: f()を使おうとしている他のコードに影響しますか?
私にお知らせください。
ありがとう、jbu
編集:私の質問は、他の誰かのメソッドを仮想化することに何か問題がありますか?他の人の実装を変更していなくても、他の人の既存のコードにアクセスして宣言を変更する必要があります。
php - MVC フレームワークをゼロから開発する方法は?
ビューがMCから離れやすく、
しかし、M と C を分離するにはどうすればよいでしょうか?その違いは、私には少しあいまいに思えます。
私はPHPを使用しています。
enums - 列挙型の表現
列挙型はプログラミング言語の「舞台裏」でどのように機能しますか?言語ごとに、これらのデータ型を表す方法が異なると思います。
Javaでは、==演算子を使用できます。次に例を示します。
==の間に列挙型はプリミティブに変換されますか?または、列挙値はシングルトンですか?C#はJavaと同じ方法で列挙型を活用しますか?データベース列挙型はプログラミング言語とは異なる方法で処理されますか?
unix - ソケットへの書き込みは、sendfile() システムコールの任意の制限ですか?
前奏曲
sendfile()
次の 2 つの理由から、非常に便利な syscall です。
まず、/ (ジャイブを好む場合は/ ) ループよりもコードが少なくて済みます。
第二に、前述の方法よりも高速です(システムコールが少ない、実装がバッファなしでデバイス間でコピーされるなど)。read()
write()
recv()
send()
コードが少ない。もっと効率的。素晴らしい。
UNIX では、すべてが (ほとんどの場合) ファイルです。これは、プラトニックな理論と現実世界の実践が衝突した醜い領域です。ソケットは、一部のデバイスに存在するファイルとは根本的に異なることを理解しています。Linux/*BSD/Darwin/OS が実装sendfile()
するものは何でも、この特定のシステムコールがソケット (具体的にはストリーミング ソケット) への書き込みに制限されている理由を知るために、ソースを掘り下げていません。
ただ知りたいだけです...
質問
sendfile()
宛先ファイル記述子をソケット以外のもの (ディスク ファイルやパイプなど) にすることを制限しているのは何ですか?
seo - Googleはあなたがクローキングしていることをどのように知っていますか?
あなたがあなたのコンテンツをクロークしているかどうかをグーグルがどのように判断するかについての情報を見つけることができないようです。技術的な観点から、彼らはこれをどのように決定していると思いますか?彼らはグーグルボット以外のものを送って、それをグーグルボットの結果と比較していますか?彼らは比較している人間のチームを持っていますか?または、名前に「googlebot」が含まれているため、ユーザーエージェントを確認し、別のコードパスを実行したことをどういうわけか伝えることができますか?
これは、seoの正当なURLクローキングに関するこの質問に関連しています。テキストコンテンツがまったく同じであるが、レンダリングが異なる場合(1995スタイルのhtmlとajaxとflash)、クローキングに本当に問題がありますか?
これをつけてくれてありがとう。
java - オブジェクト指向の実行
次のソース スニペットを検討してください。
スニペット #1
スニペット #2
スニペット #3
Q: どのスニペットが最もオブジェクト指向で、その理由は?
Q: 各スニペットの長所と短所は何ですか?