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

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

3
LISPのマクロは、DSLを作成するRubyの「能力」よりも優れているのはどの領域ですか
Rubyを輝かせるものの1つは、ドメイン固有の言語をより良く作成する機能です。 シナトラ Rspec レーキ Ruby on RailsのActiveRecord マクロを介してLISPでこれらのライブラリを複製できますが、Rubyの実装はよりエレガントだと思います。それでも、LISPのマクロはRubyのマクロよりも優れている場合があると思いますが、マクロは考えられませんでした。 それでは、LISPのマクロは、DSLを作成するRubyの「能力」よりも優れているのはどの領域ですか。 更新 現代のプログラミング言語がLISPの特異点に近づいているので、私はこれを尋ねました。 Cはマクロ展開プリプロセッサを取得しましたが、非常に原始的でエラーが発生しやすい C#には属性がありますが、これは読み取り専用であり、リフレクションによって公開されます Pythonは、関数(およびv 3.0のクラス)の動作を変更できるデコレーターを追加しましたが、かなり制限されています。 気をつければエレガントなDSLを作成するRuby TMTOWTDIですが、Rubyの方法です。 LISPのマクロは特別な場合にのみ適用でき、他のプログラミング言語機能はソフトウェア開発の今日の課題に対応するために抽象化を高めるのに十分強力であると思いました。
21 ruby  lisp  dsl 

1
最高のRuby Gitライブラリ?
Rubyで使用するのに最適なGitライブラリはどれですか? Git、Grit、Rugged、その他? 背景:私はGitで構築された分散オフラインチケットシステムであるTicGit-ngの現在のメンテナーです。私や他の人が非推奨だが機能しているGitから新しいGrit gemへの切り替えに失敗したため、ドキュメントの不足または機能の不足があるようです。
21 ruby  git 

8
Ruby:悪い部分[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 この質問はして移行され、それがソフトウェア工学スタック所に答えることができるので、スタックオーバーフローから。 8年前に移行され ました。 私は最近、Crockfordの本「Javascript:The Good Parts」を読みましたが、基礎となる前提の1つは、プログラミング言語にはプログラマが避けるべき悪い機能セットがある可能性があることです。 私はルビイストであり、言語が大好きである一方、視点を得るには常に価値があります。それでは、Rubyで最悪の機能(メソッド、クラス、プラクティスなど)とは何だと思いますか?ここでの私の意図は、言語自体の長所や速度などについて議論を始めることではありません。むしろ、過去の経験に基づいて、使用するのに危険/厄介/苦痛と思われる機能についての議論を希望します。
20 ruby 

7
経験豊富なRuby on Rails開発者は足場を使用しますか?
Ruby on Railsチュートリアルで、経験豊富な開発者はMVCを自分で接続するコードを書くのが好きなので、scaffoldingを使用しないことを示唆するものを読みました。 別の場所で、私は足場を使用することをお勧めします。それは、コードを見てやり取りする他の人があなたが何をしているのか理解できるように、慣習に固執するのに役立つからです。 Ruby on Railsは初めてですが、MVCやWebアプリケーションは初めてではありません。一般に、scaffoldingの慣習に固執してガイドしてもらうべきでしょうか?

11
動的言語は常に解釈されますか?
ほとんどの(すべてではないにしても)動的言語(Python、PHP、Perl、Rubyなど)を見ると、それらはすべて解釈されます。私が間違っている場合は修正してください。コンパイル段階を経る動的言語の例はありますか?動的言語はインタープリター言語と同一ですか?

5
Rubyを学習する際にPython開発者は何を知っておくべきですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 私は約18か月のPythonプログラマーであり、1つのインターンシップといくつかのサイドプロジェクトで構成されており、自分はこの言語にかなり慣れていると思います。 ただし、プログラミング分野ではRubyに多くの注意が向けられているようですが、Pythonにはあまり注目されていません。 それでは、Rubyを学習する際に、Rubyの単なる悪い習慣であるPython的なものがあるでしょうか?何に注意し、何を避けるべきですか?

3
Rubyクリエイターがシンボルの概念を使用することを選んだのはなぜですか?
tl; dr:シンボルの言語に依存しない定義と、他の言語でそれらを使用する理由はありますか? では、なぜRubyの作成者symbolsは言語の概念を使用したのですか? これは、ルビーではないプログラマーの観点からお願いします。私は他の多くの言語を学びましたが、どれにもRubyが呼んでいるものを扱っているかどうかを指定する必要があることを知りませんでしたsymbols。 主な質問は、symbolsRuby の概念はパフォーマンスのために存在するのか、それとも言語の記述方法のために必要なものなのか、ということです。 Rubyのプログラムは、PythonやJavascriptの対応物よりも軽量または高速、あるいはその両方でしょうか?もしそうなら、それは原因symbolsでしょうか? Rubyの目的の1つは人間が読み書きしやすいことであるため、作成者はインタープリター自体に(他の言語の場合と同様に)これらの改善を実装することでコーディングのプロセスを緩和できませんでしたか? symbolsそもそもなぜ彼らがそこにいるのかではなく、何がどのように使われているのかを誰もが知りたいようです。

1
マイクロソフトがIronRubyとIronPythonを放棄したのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 数年前、MicrosoftはRubyとPythonが.netに登場することを発表しました。プロジェクトはそれぞれIronRubyおよびIronPythonと呼ばれていました。Microsoftは、プロジェクトは.net DLRの上に構築されると述べた。 WIKIpediaは、すべての意図と目的のために、これらのプロジェクトがマイクロソフトによって放棄されたことを示しています。 なぜマイクロソフトはこれらのプロジェクトを放棄したのですか?
15 .net  python  ruby  microsoft 

5
monkeypatchingは優れたプログラミング手法と見なされていますか?
私は、モンキーパッチングは、標準的な優れたプログラミング慣行というよりも、迅速で汚れたハックのカテゴリーに属するという印象を受けていました。サードパーティのライブラリのマイナーな問題を修正するために時々使用していましたが、一時的な修正と考え、サードパーティのプロジェクトに適切なパッチを提出しました。 ただし、主流プロジェクト、たとえばGeventのgevent.monkeyモジュールでこの手法が「通常の方法」として使用されているのを見てきました。 モンキーパッチは、主流であり、通常の、受け入れ可能なプログラミングプラクティスになりましたか? 参照:ジェフ・アトウッドによる「人間のためのモンキーパッチング」

6
ワンライナー対読みやすさ:コードの削減を停止するタイミング [閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 2年前に閉店。 環境 私は最近、より良いフォーマットのコードの作成に興味を持ちました。そして、「コードを実行するための独自の「最良の」方法はもちろんないため、「良い慣行と見なすのに十分な人々によって承認されたルールに従う」という意味です。 最近はほとんどRubyでコードを書いているので、リンター(Rubocop)を使ってコードの「品質」に関する情報を提供し始めました(この「品質」はコミュニティ主導のプロジェクトruby-style-guideで定義されています)。 場合によってはコードの効率がコードの記述方法によって実際に影響を受ける場合でも、コードの効率についてではなく、「フォーマットの品質」のように「品質」を使用することに注意してください。 とにかく、すべてのことをして、私はいくつかのことを実現しました(または、少なくとも覚えていました)。 一部の言語(特にPython、Rubyなど)では、優れたコードのワンライナーを作成できます。 コードのガイドラインに従うことで、コードを大幅に短くすることができますが、それでも非常に明確です。 ただし、これらのガイドラインに厳密に従うと、コードがわかりにくく/読みやすくなります。 コードはいくつかのガイドラインをほぼ完全に尊重し、それでも品質が低い場合があります コードの読みやすさはほとんど主観的です(「私が明らかにすることは、仲間の開発者にとって完全に不明瞭かもしれない」) これらは単なる観察であり、もちろん絶対的なルールではありません。また、コードの読みやすさと以下のガイドラインはこの時点では無関係に見えるかもしれませんが、ここでのガイドラインはコードの1つのチャンクを書き換える方法の数を絞り込む方法です。 次に、いくつかの例を挙げて、すべてをより明確にします。 例 単純なユースケースを見てみましょうUser。「」モデルを持つアプリケーションがあります。ユーザーはオプションでありfirstnameかつsurname必須とemailアドレスを。 私は、メソッド「書きたいnameその後、名前を返します」(firstname + surname少なくとも、彼の場合は、ユーザーのを)firstnameまたはsurname、本、またはそのemail代替値としていない場合。 また、このメソッドでuse_emailパラメーターとして" "(ブール値)を使用して、フォールバック値としてユーザーの電子メールを使用できるようにします。このuse_emailパラメーターは(渡されない場合)デフォルトで" "になりますtrue。 それをRubyで記述する最も簡単な方法は次のとおりです。 def name(use_email = true) # If firstname and surname are both blank (empty string or undefined) # and we can use the email... if (firstname.blank? && …

3
Rubyでデスクトップアプリケーションを作成できますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 Ruby on RailsフレームワークはWeb開発専用であり、デスクトップアプリケーション開発には適していないことを知っています。しかし、Rubyプログラマーがデスクトップアプリケーションを開発したい場合、Rubyのみで実行するのが適切であり、望ましいですか(jRubyではなく、jRubyのチュートリアルがほとんどです)?はいの場合、いくつかの良いチュートリアルを提供してください。開発用のOSとしてLinuxを使用したい。 私はルビー開発者であり、デスクトップアプリケーションを開発したいので、何か提案してください。

4
Rubyが正しかったこと(またはRailsだったこと)[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 ほとんどのプログラミング言語には、使用法と適用可能性に影響する設計上の決定事項がいくつかあります。 例えば: Pythonは、コードの保守性/可読性に焦点を合わせ、インデントを言語自体の一部にしました。 Javaの意図は、クロスプラットフォームOOPをC ++より「簡単」かつ「使いやすい」ものにすることでした Objective-Cは、当時のC ++の未来を知らないCのオブジェクト指向ラッパーとして構築されました。 Erlangは、高度なフォールトトレラントな同時システム向けに設計されています Webページの動的作成を処理するために設計されたPHP Javascript の優れた部分を公​​開し、OOPの構文糖を追加し、JSの「舞台裏」などのニュアンス(グローバルなど)を隠すように設計されたCoffeeScript 各プログラミング言語は、特定のニッチなIMHOを活用して活用しようとしました。上記は、プログラミング言語の創立原理であり、それらの進化と広範な採用可能性を支配したものについての私の見解です。もちろん、もっとたくさんありますが、リストは例としてのみ意図されています しかし、Rubyの基礎となる人気の原則とその人気の高まりを理解するのに苦労しました。今日人気のあるRubyの設立原則は何でしたか?それとも、Railsフレームワークを設計した一人の男の天才でしょうか?後者が、RubyがRailsの設計をより良く、より簡単に、より速くしたとしたら?どのような意味で? その作成者による最も一般的に引用された理由は、「...弱く型付けされた楽しいプログラミング言語を望んでいた」です-新しいプログラミング言語を完全に作成する理由とは思いません!プログラミングは言語に関係なくまったく楽しいです(各言語にはいくつかの悪い部分がありますが、それを回避するか、それと一緒に生活します)。 では、現在の言語では活用されていないRubyの活用法はどのようなニッチなのでしょうか?広く採用されているRubyの「強み」(USP)とは何ですか?Rubyは、これまで行われなかった(または非常に困難だった)ことをしましたか? 私はRubyプログラマーではなく、単にRuby初心者であり、それゆえ混乱しています。 免責事項:これはフレーム戦争ではなく、Ruby vsプログラミング言語タイプの回答を探しているわけではありません。私は、Rubyのベースとなっているデザインの決定を探しています。Rubyが人気を博したために満足しているニッチとは何か、それは純粋にRailsに起因するものですか?

2
技術的な「ドグマティズム」の扱い方
私は仕事を辞めて(他の国に移動するために)JavascriptとHaskell(いくつかのpython)でプログラミングすることがほとんどでした。人々は客観的で、ポジティブで、数学的でありながら、たくさんのことを成し遂げたので、私はそれが本当に好きでした。これは本当にプロフェッショナルなショップでした。 現在、私はAgile / XPショップで働いています。これは良いことですが、テクノロジーとライブラリーの選択に関しては、私たちはプロではないかもしれません。ソフトウェアを書くための私たちのアプローチは少し未熟で構造化されていないように感じます。私は私が提供された本を読もうとしていますが、彼らはこのスタイルを奨励しているようです(ugh)。多くの場合、Gitハブからライブラリを選択して、レビューなしで使用します。 たとえ一人の小さな仕事であっても、常に誰かと仕事をすることを強いられます。些細な反例によってルールを破ることができる場合でも、すべてに対して少し「速い」ルールがあるようです(その反例をあげるのを間違えて、口頭で攻撃されました)。これは州では普通ですか?この独断をどのように処理しますか?
13 ruby  haskell  agile 

7
自分に言語を教えるのに最適な場所はどこですか?
プログラミング言語はまったく知りません。私は独学しますが、最も基本的なレベルから学ぶことができる最適な場所を知る必要があります。言語を学び始めるのに最適な場所はどこですか?最初に学ぶのに最適な言語は何ですか?最初にRubyを学ぶのはばかげていますか? ここで、私は高等言語のいくつかを学ぶことはあなたがそれらを最初に学ぶならばあなたを「怠lazにする」ことができると言う誰かに出くわしました。とりわけRubyのように。 私の母国語については、夫が(彼自身の個人的な興味のために)Rubyを学ぶことを勧めています。ただし、開始方法と最初に学習する言語について、独立したアドバイスが必要です。最終的にはRubyを学び、次にRailsを学びます。 4か月前、私の夫は客観的なCのテキストを注文しました。私はひっくり返り、それは明らかに私が来ている場所よりも進んだ場所で始まっていた。 Rubyのチュートリアルに手を出しましたが、わかりません。私が入れているものは自分が手に入れたものですが、それが何につながっているのか理解できません。最初にすべてのルールを知る必要があります。その後、コンピューター言語を調べて、バイナリコードの調査を開始しましたが、これは大いに役立ちましたが、どこから始めたいかはわかりませんでした。私は今まで(4人の子供と)人生に戻る時間があまりありません。私が学校に行くなら、それは違うでしょう。 アドバイスをいただければ幸いです。
13 ruby 

2
Ruby on Railsのビューにインスタンス変数を使用しないことを提案する理由
コントローラーとビューの間でインスタンス変数を共有するのは良くないと聞いたのはなぜですか。@を介してコントローラから何かが送信されていることがすぐにわかるので、それが好きです。:私はここのコントローラでヘルパーを使用するための良い方法を参照http://www.stephencelis.com/2008/09/06/rails-controllers-views-and-variables.htmlを。しかし、私はその部分にカンカンを使用しています。

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