タグ付けされた質問 「libraries」

ライブラリは、独立したソフトウェアを開発するためのデータやサービスを提供するリソースの集まりです。

1
野田時間vsジョーダ時間?
で野田タイム・ユーザーズ・ガイド、根拠セクションの状態: パブリックAPIは、.NETにより慣用的なAPIを提供するとともに、野田タイムチームが「不幸」と見なしているJoda Timeの決定の一部を修正するために、大幅に書き直されました。(これらのいくつかは、単に異なる目標を持っていることが原因です;私が主張する他のものは本当に間違いです。) 異なる/より良いこれらの決定は何ですか?これは、言語の構文だけの違いを数えるものではありませんが、ユーザーがプログラミングエラー(ライブラリの使いやすさ)を起こしにくいようにするために行われることはすべて含まれます。

5
最新のライブラリがOOPを使用しない理由
私は初心者レベルのC ++プログラマですが、言語の概念はかなりよく理解しています。SDLやOpenGLなどの外部C ++ライブラリを学習し始めたとき、驚いたことに、C ++の概念をまったく使用していないことがわかりました。 たとえば、SDLもOpenGLもクラスや例外を使用せず、関数とエラーコードを優先します。OpenGLでは、glVertex2fのような関数を見てきました。これは、入力として2つのfloat変数を取り、おそらくテンプレートとしてはより良いでしょう。さらに、これらのライブラリは時々marcosを使用しますが、マクロの使用が悪いことは一般的な合意のようです。 全体として、C ++スタイルよりもCスタイルで記述されているようです。しかし、それらはまったく互換性のない言語ですよね? 問題は、なぜ現代のライブラリは、それが書かれている言語の利点を使用しないのかということです。

12
作成したプログラムがどのように機能するかを知らずに生きても大丈夫ですか?
つまり、立ち往生しているときに問題を解決できる便利なライブラリがあり、これを解決する方法がわからない、または使用しているプログラミング言語の知識があれば...たとえば、C ++のBoostまたはJavaScriptのJQueryまたはSpring Java ...彼らは数秒で問題を解決し、あなたは彼らがどのようにそれをやったのか気にしません(彼らはあなたがプログラミングしているのと同じ言語で書かれているにもかかわらず)...だから私は一人ではなく問題の解決策を一から作成できるか、それとも標準的な方法ですか?

4
「車輪を再発明しないでください」は人間の記憶の限界を無視しますか?
HaskellとF#で働いていることの1つは、私よりも賢い大学の誰かが、おそらく私がやっていることの抽象化をすでに見つけているということです。同様に、C#とオブジェクト指向プログラミングでは、私がやろうとしていることには関係なく、おそらく「it」用のライブラリがあります。 プログラミングの抽象化を再利用することに重点が置かれているため、1)短くて汚いものをコーディングするか、2)他の誰かのより堅牢なライブラリ/ソリューションを見つけるために同じ時間を費やし、それを使用することの間でジレンマを感じることがよくあります。 最近のように、ここのコーダーの1人がCSVファイル用の(デ)シリアライザを作成しましたが、.NET標準がまだ付属していない場合、そのようなものはおそらくオンラインで見つけるのが非常に簡単だと思わずにはいられませんでしたAPI。 私は、.NET Iで働いて数回のみ、いくつかのメソッド呼び出しまたはオブジェクトか何かがあったことを実現するために、一緒に私が知っている内容に基づいてソリューションをパッチしてきた、けれども彼を責めないで 、多くの場合、同じライブラリに、何をやっています欲しかったのですが、それについて知りませんでした。 これは単に経験不足の兆候ですか、それとも新しいものを書くことと古いものを再利用することの間には常にトレードオフの要素がありますか?私が最も嫌いなのは、すでに知っていて忘れていたソリューションに出くわしたときです。最近、ほとんどの言語にプリパッケージされている大量のコードを消化できない人がいるように感じます。

2
なぜC ++ライブラリの使用がそれほど複雑なのですか?
まず第一に、私はC ++が大好きで、JavaよりもC ++でコーディングする方が簡単だと思う人の1人です。1つの小さなことを除いて:ライブラリ。 Javaでは、ビルドパスにjarを追加するだけで完了です。 C ++では、通常、ヘッダーファイルとライブラリ自体に複数のパスを設定する必要があります。場合によっては、特別なビルドフラグを使用する必要さえあります。私は主にVisual Studio、コードブロックを使用しましたが、IDEはまったく使用していません。外部ライブラリの使用について話すとき、3つのオプションすべてに大きな違いはありません。 なぜこれに代わるシンプルな代替手段がなかったのだろうか?IDEがビルドフラグを設定するためのすべての作業を行うことができるように、必要なものがすべて1か所にある特別な.zipファイルがあるように。これには技術的な障壁はありますか?
14 java  c++  libraries 

2
私の小さなソフトウェアライブラリは他のライブラリの使用を避けるべきですか?
わずかなクラスとメソッドのみを提供する小さなJavaライブラリをリリースしました。Mavenを使用してプロジェクトを構築したので、すぐにいくつかのサードパーティライブラリを使用して、特に次の目標を達成しました。 commons-lang3(いくつかの一般的なJavaのもの用) slf4j-api(ロギング用) commons-io(ほんの少しのファイル用-文字通り一度ファイルを読む、と思う) 自分のライブラリが他人の目に肥大化しているように見せたくない。フットプリントを最小限に抑えるために、これらのライブラリへの依存を削除する必要がありますか?将来さらに多くのライブラリを使用することを検討する際に、どのタイプのライブラリを避けるのが最善かについてアドバイスはありますか
13 java  libraries  maven 

3
ClojureはJavaからどれだけ独立していますか?
私はClojureの世界には全く新しいです。Clojureの相互運用機能を介してすべてのJavaライブラリに簡単にアクセスできるという事実に感謝していますが、Clojureがどれだけ独立しているのか疑問に思っていました。 もちろん、コアライブラリはJavaで記述または公開されているため、Javaなどの相互運用性が常に必要となるAndroidなどのプラットフォームもあります。さらに、Clojureの文字列はJavaの文字列なので、文字列操作ライブラリがJavaのStringメソッドのラッパーになると期待しています。 しかし、他のタスクについては、ネイティブのClojureライブラリーを開発できなかった理由はわかりません。Http、日付操作、XML解析、テンプレート、JSONのシリアル化と逆シリアル化、OAuth、数学ライブラリなどを考えてください。 だから私の質問は: ClojureはJavaエコシステムからどの程度独立しましたか?これらのタスクやその他のタスクのほとんどに独自の慣用的なライブラリがありますか?

8
コードに自分の名前や会社名を書く傾向がありますか?
私は自宅や職場でさまざまなプロジェクトに取り組んできましたが、長年にわたって、ほとんどすべてのAJAXベースのWebサイトで使用する2つの主要なAPIを開発してきました。これらの両方をDLLにコンパイルし、名前空間Connell.DatabaseおよびConnell.Jsonを呼び出しました。 私の上司は最近、会社のプロジェクトのソフトウェアドキュメントでこれらの名前空間を見て、コードで自分の名前を使うべきではないと言いました。(しかし、それは私のコードです!) 心に留めておくべきことの1つは、私たちはソフトウェア会社ではないということです。私たちはITサポート会社であり、私はここで唯一のフルタイムソフトウェア開発者です。そのため、会社でソフトウェアを作成する方法についての手順は実際にはありません。 もう一つ心に留めておくべきことは、いつかこれらのDLLをオープンソースプロジェクトとしてリリースするつもりだということです。 他の開発者は、社内で名前空間をどのようにグループ化していますか?個人用と仕事用のプロジェクトで同じクラスライブラリを使用している人はいますか? また、これは逆に機能しますか?完全に職場でクラスライブラリを作成する場合、そのコードの所有者は誰ですか?ライブラリを最初から最後まで見てきた場合、それを設計し、プログラムしました。それを自宅で別のプロジェクトに使用できますか? おかげで、 更新 私はこの問題について上司に話しましたが、彼はそれらが私のオブジェクトであり、彼が私にそれらをオープンソース化してもいいことに同意します。この会話の前に、とにかくオブジェクトの変更を開始しましたが、実際には非常に生産的であり、コードは以前よりもこの特定のプロジェクトに非常に適合しています。 しかし、非常に興味深い議論に関係したすべての人に感謝します。このテキストがすべて無駄にならず、誰かがそれから学ぶことを願っています。確かにした。 乾杯、

4
一部のライブラリを多くのプログラミング言語に書き換えるのはなぜですか?
たとえば、Java(100%pure Javaなど)で記述されたLuceneなど、さまざまなプログラミング言語で記述されたバージョンで使用可能なライブラリがありますが、C ++、C、Perlのバージョンもあります、Ruby、Lispおよびその他の言語。そして、私はFFIインターフェースだけでなく、これらの言語での実装について話している。 なぜ人々はそうするのですか?明白な理由の1つを見ることができます。プロジェクトの依存関係が少ないほど、展開と配布(そしておそらく開発も)が容易になります。しかし、他に何かありますか?どのような状況で価値がありますか?

2
JREライブラリーのクラスは、外部/非JREアセンブリーからの監視可能および/または非同期読み取りをサポートしていますか?
他のプラットフォームのネイティブフロントエンドがオブジェクトを観察し、Observableパターンを利用できるように、クロスプラットフォームライブラリ(JREなど)を実装してオブジェクト参照でスレッドセーフな方法で操作するにはどうすればよいですか? 少しの背景-ほとんどのフロントエンドフレームワークで使用されるデータバインディングの概念があります。C#およびJavaでは、これは、複数のコントロールまたは「オブザーバー」がサブスクライブする可能性がある変更が発生したときにイベントを発生させる機能をクラスに与えるObservableトレイトに関連しています。このように、オブザーバーはリソースをポーリング/読み取りし続ける必要がなく、更新を比較します。 時間の経過とともにデータのリストを変更する分析エンジンで作業したいと思います。分析の実行中に、フロントエンドがこれらのリストを監視できるようになると便利です。これには、フロントエンドが、クロスプラットフォームのライブラリで書かれたオブジェクトを分析エンジンに渡し、そのオブジェクトに対してスレッドセーフな読み取りを行えることが必要だと思われます。または、ライブラリが可観測性の契約を満たします。 古いUnixスタイルのCLIエンジンでこれを処理する方法は、stdin / stdout / stderrを使用し、定期的にエンジンに更新を送信させることです。これには、標準のオーバーヘッドと、可能な場合は避けたいテキスト解析が必要です。

4
数学演算子のメンバー関数と非メンバー関数
私は、行列、ベクトルなどを含む線形代数ライブラリ(長い話、学校の課題です)を書いています。このライブラリを作成する過程で、オブジェクトに対して数学演算を実行する関数を作成します。たとえば、行列の転置、行列の反転、ベクトルの正規化など。 この種の関数の「ベストプラクティス」とは何かに興味がありました。つまり、関数をメンバー関数にするか、非メンバーにするべきでしょうか。(わかりやすくするため/ライブラリの使用目的) 例: //Member function way: B = A.transpose(); C = A.inverse(); //Non-member function way: B = linalg::transpose(A); //Non-member transpose function in linear algebra namespace C = linalg::inverse(A); この種の操作に関する標準はありますか?または、少なくとも、これを行う一般的な方法はありますか?私は最初の選択肢に傾いていますが、これが推奨されるかどうか知りたいです。
12 c++  libraries  methods 

2
C ++ライブラリAPIの設計
C ++ライブラリの優れたAPIデザインについて学び、共有オブジェクト/ dllなどを調べるための優れたリソースを探しています。ソースレベルでの優れたAPI、優れたクラス、テンプレートなどの記述に関する多くのリソースがありますが、共有ライブラリと実行可能ファイルに物事をまとめる。John LakosのLarge-Scale C ++ Software Designのような本は興味深いものですが、非常に時代遅れです。 私が探しているのは、テンプレートの取り扱いに関するアドバイスです。APIのテンプレートでは、実行可能ファイル(または他のライブラリ)にライブラリコードが含まれることが多いため、そこでバグを修正すると、新しいライブラリを単純に展開することはできませんが、そのコードのすべてのクライアントを再コンパイルして再配布する必要があります。(そして、はい、少なくともライブラリ内の最も一般的なバージョンをインスタンス化するなどのいくつかのソリューションを知っています。) また、C ++ライブラリでの作業中にバイナリ互換性を維持するために注意すべき他の注意事項や事柄も探しています。 そのようなことに関する良いウェブサイトや本はありますか?

14
どのライブラリ/フレームワークが、問題を解決するには複雑すぎると思われましたか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 ...そして、機能を「手動で」コーディングしましたか? かなり比phor的な例として、二次方程式を解くためのライブラリはほとんど必要ありませんが、そのようなライブラリは存在し、誰かがそれらを真剣に受け止めます。 より疑わしいケースとして、状況によっては、jQueryを捨てる場合があります(たとえば、一部の石器時代のブラウザをサポートする必要がない場合)。そして、jQueryを使いすぎると、最近SOで見られたような不合理な問題につながります。jQueryで空のhrefをaタグに割り当てるにはどうすればよいですか?それは、JavaScriptでさえなく、HTMLの質問であることが判明しました。 別の不条理なケースでありながら、多くの人にとって非自明なのは、別のテンプレートシステムPHP上に構築されたテンプレートエンジン/言語を使用していることです。テンプレーティングの第三レベル? そして、もう一つは:時々だけでXMLを吐き出し(figurally)printfいくつかの巨大なXMLエンジンでそれを行うよりもはるかに簡単です。 あなたの経験から他のケースはありますか?


3
新しいブラウザの複数のブラウザタブとクライアント状態に対処するオープンソースのJavaScriptライブラリはありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 タブ、ブラウザウィンドウ、同じドメインウィンドウなどの間で状態を共有できる最近のブラウザになったHTML5の新しい機能がいくつかあります。したがって、おそらく、クライアントおよびタブやウィンドウ間で状態をインテリジェントに管理します。 現在、単一のタブまたは単一のウィンドウで状態を管理するのに役立つBackbone.jsのようなライブラリがあります。複数のタブ(またはウィンドウ)がグローバルな状態、タブ固有の状態、およびクロスタブイベントを管理するのに役立つものはまだありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.