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

Perlから着想を得た構文とSmalltalkのような機能を組み合わせた、Ruby、動的、反射、汎用のオブジェクト指向プログラミング言語に関する質問。

10
Pythonが高性能/科学計算に使用されているのはなぜですか(Rubyは使用されていません)?
PyCon 2011の講演から引用があります: 少なくとも当店(アルゴンヌ国立研究所)には、科学計算用に受け入れられている3つの言語があります。この順序では、C / C ++、すべての方言のFortran、およびPythonです。Ruby、Perl、Javaの完全かつ完全な欠如に気付くでしょう。 これは、より一般的な高性能コンピューティングのコンテキストでした。引用は1つのショップからのものにすぎませんが、HPCの言語に関する別の質問もPythonを学ぶべきものとしてリストしています(Rubyではありません)。 今、私はその問題空間で使用されているC / C ++とFortranを理解できます(そしてPerl / Java は使用されていません)。しかし、PythonとRubyのHPCでの使用にかなりの違いがあることに驚いています。(注-私はPythonのファンですが、Ruby に対しては何もありません)。 1つの言語が離陸した特定の理由はありますか?利用可能なライブラリについてですか?特定の言語機能はありますか?地域社会・共同体?それとも、単に歴史的隣接性、そしてそれは他の方法で行ったかもしれない?

5
重み付けされたランダムなアイテムを取得する
例えば、私はこの表を持っています + ----------------- + | フルーツ| 重量| + ----------------- + | りんご| 4 | | オレンジ| 2 | | レモン| 1 | + ----------------- + ランダムなフルーツを返す必要があります。ただし、リンゴはレモンの 4倍、オレンジの 2倍の頻度で摘み取る必要があります。 より一般的なケースでは、それはf(weight)頻繁に起こるはずです。 この動作を実装するのに適した一般的なアルゴリズムは何ですか? または、Rubyにすぐに使える宝石がありますか?:) PS 現在のアルゴリズムをRuby https://github.com/fl00r/pickupに実装しました
51 algorithms  ruby  math  random 

9
「教えてはいけない」が良いオブジェクト指向とみなされる方法の説明
このブログ投稿は、いくつかの賛成票とともにHacker Newsに投稿されました。C ++から来るこれらの例のほとんどは、私が教えてきたものに反するようです。 例#2など: 悪い: def check_for_overheating(system_monitor) if system_monitor.temperature > 100 system_monitor.sound_alarms end end 良い対: system_monitor.check_for_overheating class SystemMonitor def check_for_overheating if temperature > 100 sound_alarms end end end C ++でのアドバイスは、カプセル化を増やすため、メンバー関数ではなくフリー関数を好むことです。これらは両方とも意味的に同一なので、なぜより多くの状態にアクセスできる選択肢を好むのでしょうか? 例4: 悪い: def street_name(user) if user.address user.address.street_name else 'No street name on file' end end 良い対: def street_name(user) user.address.street_name end …

3
Rubyのシンボルとは何ですか?
私は、Rubyの世界にはまったく馴染みがなく、Symbolsの概念に少し混乱しています。シンボルと変数の違いは何ですか?なぜ変数を使用しないのですか? ありがとう。
45 ruby 

2
現代の言語はまだパーサージェネレーターを使用していますか?
これが出てきたとき、私はここウィキペディアで gccコンパイラスイートについて調査していました: GCCはBisonで生成されたLALRパーサーの使用を開始しましたが、徐々に手書きの再帰パーサーに切り替えました。2004年のC ++、および2006年のCおよびObjective-Cの場合。現在、すべてのフロントエンドは手書きの再帰下降パーサーを使用しています。 最後の文で(そしてウィキペディアを信頼する限り)私は間違いなく「C(gcc)、C ++(g ++)、Objective-C、Objective-C ++、Fortran(gfortran)、Java(gcj)、 Ada(GNAT)、Go(gccgo)、Pascal(gpc)、... Mercury、Modula-2、Modula-3、PL / I、D(gdc)、およびVHDL(ghdl)」はすべてフロントエンドであり、パーサージェネレーターを長く使用します。つまり、それらはすべて手書きのパーサーを使用します。 私の質問は、このプラクティスはどこにでもあるのですか?特に、[Python、Swift、Ruby、Java、Scala、ML、Haskell]のxの「xの標準/公式実装には手書きパーサーがありますか」に対する正確な答えを探していますか?(実際、他の言語に関する情報もここで歓迎されています。)掘り下げた後、私は自分でこれを見つけることができると確信しています。しかし、これはコミュニティによって簡単に答えられると確信しています。ありがとう!

11
ベストプラクティスに従わないオープンソースプロジェクトでコーディングスタイルを変更しても大丈夫ですか?
最近、GitHubで多くのオープンソースRuby(またはその大部分がRuby)プロジェクトに遭遇しました。Rubocopなどのコード分析ツールで確認すると、多くの違反が発生します。 現在、これらの違反のほとんどには、単一引用符の代わりに二重引用符を使用することが含まれています(補間ではない場合)、レベルごとに2スペースの規則に従っていない、80文字の行長規則を超えている、または複数行のブロックを使用{し}ています。 [The] Rubyスタイルガイドでは、実際のRubyプログラマーが他の実際のRubyプログラマーが保守できるコードを作成できるように、ベストプラクティスを推奨しています。〜ソース:Rubyスタイルガイド 小さくて簡単に修正できますが、オフェンスを修正してプルリクエストを行うことで、オープンソースプロジェクトのコーディングスタイルを変更することは適切ですか?私はRailsのようないくつかのプロジェクトは、ことを認め化粧品の変更を受け入れないと、一部がRubocopが実行されたとき(Railsが例えば80,000犯罪を生成し、一度にすべての「修正」にあまりにも大きいです-に関係なく、彼らは独自の小さなセット持ってコーディングを貢献する際に従うべき規則)。結局のところ、Rubocopのようなツールと一緒にRubyスタイルガイドがあります。 人々は一貫性を高く評価しているので、このような変更を加えることは、Rubyコミュニティ全体にとって良いことです。 [Rubyスタイルガイドの著者]は、どこからともなくすべてのルールを思いついたわけではありません。それらは、主にプロのソフトウェアエンジニアとしての幅広いキャリア、Rubyコミュニティのメンバーやさまざまなメンバーからのフィードバックや提案に基づいています「Programming Ruby 1.9」や「The Ruby Programming Language」など、高く評価されているRubyプログラミングリソース。〜ソース:Rubyスタイルガイド コミュニティコーディングスタイルの規則とベストプラクティスに従っていないため、基本的に悪いプラクティスを奨励していませんか?

3
統合テストはすべての単体テストを繰り返すことを意図していますか?
関数があるとしましょう(Rubyで書かれていますが、誰でも理解できるはずです): def am_I_old_enough?(name = 'filip') person = Person::API.new(name) if person.male? return person.age > 21 else return person.age > 18 end end 単体テストでは、すべてのシナリオをカバーする4つのテストを作成します。それぞれはPerson::API、スタブ化されたメソッドmale?とでモックされたオブジェクトを使用しますage。 次に、統合テストを作成します。Person :: APIはもうm笑されるべきではないと思います。したがって、Person :: APIオブジェクトをモックせずに、まったく同じ4つのテストケースを作成します。あれは正しいですか? はいの場合、単体テストを書く意味は何ですか、自信を与える統合テストを書くことができたら(スタブやモックではなく、実際のオブジェクトで作業している場合)?

4
Pythonの「それを行う唯一の方法」格言の具体例[終了]
私はPythonを学んでおり、PEP 20 The Zen of Pythonの次の点に興味があります。 明白な方法が1つあり、できれば1つだけである必要があります。オランダ人でない限り、その方法は最初は明らかではないかもしれませんが。 誰もこの格言の具体的な例を提供できますか?Rubyなどの他の言語とのコントラストに特に興味があります。Rubyの設計哲学の一部(Perlを起源とするのでしょうか?)は、それを行う複数の方法が良いことであるということです。誰もが各アプローチの長所と短所を示すいくつかの例を提供できますか。注:私はどちらが良いか(おそらく主観的すぎて答えられない)の答えではなく、2つのスタイルの公平な比較を求めています。

8
私の履歴書ではRailsではなくRuby [終了]
私は博士号に取り組んでいる間5年間Rubyでプログラミングしてきたため、履歴書のスキルとしてRubyをリストしました。論文。私はこれを主に自然言語処理アルゴリズムの実装に使用しています。 私は仕事を探し始めており、いくつかのサイトに履歴書を投稿しました(特定の対象となる仕事に応募する際の特別なボーナスとして)。今、私は採用担当者に電話をかけて、Ruby on Railsの仕事を提供してもらいます。問題は、私がRailsを学んだことがないということです。博士号のために私がやっていることとは関係ありませんでした。 私の時間と彼らの時間を無駄にしないために、どのようにこの状況に対処することをお勧めしますか?(そして、Railsを学習することは、論文を終えるまでは選択肢ではないでしょう。)履歴書をより明確にするために履歴書を調整できますか?調整する必要がありますか?Railsを知らないことを電話で丁寧に伝える必要がありますか? ちなみに、私の履歴書の関連部分は単に言っています: スキル: プログラミング言語: C、C ++、Java、Scala、Ruby、LaTeX データベース: MySQL、XML、XPath また、Rails開発者と混同されない可能性のある他のいくつかのスキル領域をリストします。

3
WebStormにはRubyMineにはない機能が含まれていますか?
少量のルビーを実行していますが、大量のhtml5 / javascriptを実行しているため、Rubymineの購入を検討しています。 私が取り組んでいる純粋なhtml5 / jsベースのフレームワーク/アプリがたくさんあるので、Webstormを取得するつもりでしたが、WebStorm / PhpStorm / RubymineなどはすべてIDEAフレームワークに基づいており、とにかく、各フレームワークにはWebStormの機能が含まれていました。いくつかの機能はすぐに使用できましたが、プラグインを介して追加できました。 WebStormについて私が興味を持っている主な機能は次のとおりです。 IDEからのJSユニットテスト UI内のJS Lint / Hintカバレッジ DOM / JSリファクタリング/ Intellisense Coffeescriptのサポート SVN / Git統合 FTPとリモート同期(ただし、残りほど重要ではありません) それで、上記を与えられて、Rubymineは上記の機能も提供するでしょうか?多くの重複する機能を備えた2つのIDEを使用するよりも、両方を実行できる1つのIDEを使用する方が望ましいためです。 Webstorm内にのみあり、他のIDEにはない特定の機能はありますか?
27 javascript  ide  ruby 

8
Ruby on Railsのマイナス面と注意事項[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 これはRoRバッシングのオープニングガンビットではありません-正直です! 私はRubyとRailsフレームワークを学んでいます。一見したところ、かなりクールで、PHPに比べて素晴らしい経験に思えます。(実際、C#と.NETでの幸せな日々を思い出させてくれます。) しかし、これに入ると、私はこのフレームワークまたは言語の経験がなく、興味があります-現在の欠点や、あなたが始めたときに知っていたかったことは何ですか? (これはコミュニティwikiにすべきでしょうか?)

8
RubyまたはPython?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 この質問は非常に主観的で自由自在です。それは、私が自分自身で研究し、自分で決断を下すべきだとさえ思えるかもしれません。しかし、私はそれをそこに置き、他の人からいくつかの考えを得たいと思います。 簡単に言えば、私はネズミレースで燃え尽きており、今年は自己資金でサバティカルに参加しています。その大部分は企業の仕事から離れて旅行することですが、新しいテクノロジーで遊んで、自己学習プロジェクトを行い、プログラミングの速度を維持したいです。プレッシャーがないときにプログラミング! ここにあります:私は生涯のC / C ++ / Javaプログラマーです。私はプログラミングのキャリア全体でこのファミリーの言語を扱ってきたので、少しかっこいいです。ですから、このグループとあまり構文的に関連していない言語を学びたいです。私が基本的に探しているのは、比較的汎用的で、楽しく学ぶことができ、C ++ / Javaとは異なるいくつかの新しい概念を持ち、優れたコミュニティを持つ言語です。2番目の考慮事項は、優れたWeb開発フレームワークがあることです。第三の考慮事項は、それが完全にアカデミックではないということです(読んでください:それを使用する現実世界の仕事があります)。 RubyまたはPythonに絞り込みました。Rubyの私の印象は、それが非常にWeb指向であるということです-それの唯一の実際のアプリケーションは、Webを行うためのサーバー側スクリプト言語としてです(主にRuby on Rails)。Pythonの印象はあまりありませんが、情熱的なファン層があり、かなり汎用性の高い言語であると思われる点を除きます。 TL; DRをできるだけ簡潔にまとめると、C ++ / Javaの人がプログラミングの新しい観点を習得するのに、どちらが良いでしょうか?そして、どちらがよりオープンで汎用的であり、幅広いアプリケーションに適用できますか?現時点ではRubyに傾いていますが、サーバーサイドのWeb言語としてのみ使用されているように見えるのではないかと心配しています。
24 learning  python  ruby 

3
多くの言語が、0で始まる数字を8進数として扱うのはなぜですか?
オクタルはどこで役立ちますか?オクタルは昔々便利だったようです。 多くの言語は、0で始まる数字を8進数として扱うため、010実際にはリテラルは8です。これらの中には、JavaScript、Python(2.7)、およびRubyがあります。 しかし、特にこれらの言語が8進数を必要とする理由はわかりません。特に、表記法のより可能性の高い使用法は、余分な0で10進数を示すことです。 JavaScriptはクライアント側の言語であり、8進数はほとんど役に立たないようです。他の意味では3つすべてがかなり現代的であり、この「機能」を削除すると壊れる8進表記を使用したコードが多くなるとは思いません。 だから、私の質問は: これらの言語が8進リテラルをサポートしている点はありますか? 8進リテラルが必要な場合は、次のようなものを使用してみません0o10か?より有用なユースケースを無効にする古い表記をコピーするのはなぜですか?

5
巨大な接着方法を避ける方法は?
私の現在の仕事では、古いコードを数回クリーンアップする仕事をしました。多くの場合、コードは迷路であり、その背後のデータはさらに複雑です。私は物事をすてきな、きちんとした、モジュール式の方法にまとめると思います。各メソッドは1つのことを行い、それをうまく行います。それは物事が南に行き始めるときです... 常に、私はきれいなAPIになり、それをすべて結びつける実際の方法はありません。解決策は、最終的にすべての「クリーン」メソッドを呼び出す、大きない「グルー」メソッド(通常は条件ステートメントでいっぱい)を記述することです。 通常、glueメソッドは、クリーンアップしようとしたコード/データのもつれの簡潔なバージョンになります。一般的に読みやすいですが、それでもいらいらします。 そのような方法を避けるにはどうすればよいですか?これはもつれたデータの症状なのでしょうか、それとも私が間違っていることを反映しているのでしょうか?

2
LGPL gemを使用すると、MITライセンスアプリケーションにどのような影響がありますか?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 私はMITライセンスの下でオープンソースのRubyアプリケーションを開発しています。アプリケーションのユーザーに制限を加えたくないので、このライセンスを使用しています。また、私は実際にこのライセンスを読んで理解することができます。 私は最近、プロジェクトで別のruby gemを使用し始めました(「somegem」が必要です)。このruby gemはLGPLライセンスの下にあります。 LGPLでライセンスされているこの他のruby gemを使用しているため、プロジェクトについて何か変更する必要がありますか?私のプロジェクトには他のgemのソースコードが含まれておらず、プロジェクトに同梱されていません。単に依存関係としてリストされているため、Ruby gemがそれをインストールし、プロジェクトがコードから呼び出します。 さらに、「注意する」必要があるライセンスがあるかどうかを知ることは役立ちます。ライセンスを使用すると、プロジェクトのライセンスに影響するためです。 このトピックに関する他の投稿もありますが、さまざまな方法で表現されています。このライセンスは扱いにくいと思うので、自分の状況に応じた回答を得たいと思っています。 ありがとう、 コルセン

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