Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Rubyプロジェクトに最適な宝石を選択するためのガイド

Rubyで何かを行う必要がある場合は、そのための宝石がおそらく存在します。まあ、それのためのダースの宝石はおそらく存在します。それらのいくつかは、エレガントで、機能的で、手入れが行き届いており、他の人は、作者が一度遭遇した1つのユースケースを解決するために書かれました。選択できる宝石はたくさんあるので、正しいものをどのように選択しますか ?この選択は重要です– プロジェクトに宝石を追加したことを後悔するまでに、元に戻すのは苦痛です。

統計

問題を解決するためにライブラリが必要な場合は、RubyToolboxから始めます。 Ruby Toolboxは、次のカテゴリ(「サブスクリプション管理」など)内のすべてのgemのリストを取得するための優れた方法です。

  • 何人の人が使用していますか?

    人気のある宝石は、通常、理由でより人気があります。また、インターネット上の他のすべての人が同じ宝石を使用していると、助けを得るのがはるかに簡単になります。

  • どのくらい最近/頻繁に更新されますか?

    gemは一貫した更新を取得しますか、それともRails 3.2互換性アップグレードはプルリクエストキューに残っていますか?前回のリリースが数年前の場合は、スキップすることをお勧めします。とにかく、アプリとの互換性はないでしょう。

Ruby Toolboxで見つけた宝石を、最初の2つの基準でフィルタリングすると、積極的に検討している宝石のリストができあがります。 Ruby Toolboxには、ソース、ドキュメント、Webサイト、および次に必要になるバグトラッカーへのリンクもあります。

コードとドキュメント
  • 宝石は十分に文書化されていますか?

    ウェブサイトがある場合は、それを確認してください。ドキュメントは良いですか? RDocはありますか?必要なときに必要な答えを見つけることができますか?

  • 十分にテストされていますか?

    テストを見てください。 持っている test/ またはspec/ ディレクトリ? test_truth以外のテストはありますか? ?著者は、それらがリグレッションを引き起こすかどうかを知るつもりですか?

  • 問題を確認してリクエストをプルする

    バグはすぐに修正されますか?バグとプルリクエストについての議論はありますか?それらは修正されますか?それとも彼らはただそこに座っているのですか?

  • Google、StackOverflow、redditで宝石の名前を検索

    人々はそれについて何と言いますか?どの宝石が推奨され、どの宝石が推奨されませんか?

  • GitHubでgemが提供するクラスのいくつかを検索してください

    それらは実際のアプリでどのように使用されますか?それらは使いやすいように見えますか?または、他の開発者は宝石の問題をハックする必要がありますか?

この時点で、残りのいくつかの候補に選択肢を絞り込む必要があります。

感触のあるもの

これらの基準は少し主観的なものであるため、プロジェクトに適した宝石を見つける必要があります。 。しかし、これらを見逃すと、後で後悔するでしょう。

  • ドキュメントの例に基づいて、ライブラリはRubyっぽい感じですか?

    Rubyイディオムを使用していますか?それとも、実際にJavaやPHPを書いているように感じますか?これは、APIラッパーで非常に頻繁に発生します。

  • 一緒に機能する小さな部品で構成されていますか?

    作者があなたに与えたオブジェクトを使用して、作者が考えもしなかったものを構築できますか?おそらくそうしたいと思うからです。

  • そのgemは、すでにプロジェクトに含まれている別のgemによってすでに使用されていますか?

    ボーナスとして、統合時間を節約でき、バージョン管理をめぐってBundlerと戦う必要がないことがわかります。

  • 宝石はあなたのアプリについて推測していますか?あなたのアプリはそれらの仮定に適合していますか、そしてそれは常にそれらに適合しますか?

    ActiveResourceなどの一部のgemは、通信するサーバーのAPIについて想定しています。 ResourceControllerのような他のものは、コントローラーが何をするかについて仮定を立てます。仮定を立てる宝石は、あなたをはるかに速くし、あなたのコードをはるかに単純にすることができます–それらの仮定が成り立つ間 。ただし、これらの前提条件がアプリと互換性がなくなると、モンキーパッチの適用、デバッグ、そして最終的には宝石の破棄に何日も費やすことになります。

おっと、それはたくさんです。

はい、プロジェクトに最適な宝石を選ぶために使用できる基準はたくさんあります。 通常、すべてを確認する必要はありません。 ほとんどの場合、Ruby Toolboxにアクセスして、最も人気のある宝石を選ぶことができます。

しかし、アプリのコア部分となるいくつかの宝石があります。 HTTPライブラリ、データベースライブラリ、またはコントローラをよりクリーンにすることを約束するものなど。そして、これらを確認するために余分な時間をかける価値があります 宝石は清潔で、手入れが行き届いており、十分に文書化されており、すべきメンタルモデルに適合しています。 仕事。

これらすべての基準をGoogleスプレッドシートに入れました そのため、一見似ているように見える宝石の数が圧倒的に多い場合は、それらを簡単に比較できます。ここで入手できます。


  1. Ruby開発者のための時間計算量への決定的なガイド

    時間計算量は、コンピュータサイエンスから学ぶことができる最も興味深い概念のひとつであり、それを理解するのに学位は必要ありません! 特定のアルゴリズムやプログラムが遅い理由を確認するのに役立つので興味深いです &それをより速くするためにあなたは何ができますか。 これを独自のコードに適用できます。 これはすべての派手なアルゴリズムを超えて これは、この記事の後半で説明するように、コンピュータサイエンスの本にあります。 しかし、最初に、何が遅いのか、何が速いのかについて話す必要があります。 遅いvs速い 150ミリ秒(ミリ秒)で100万個の数値を並べ替えるのは遅いですか、それとも速いですか

  2. Apple Watch に最適なアプリ

    スマートウォッチは、通常の時計よりも大きな目的を果たす、気の利いた小さなデバイスです。 Apple Watch には、新しく購入した多目的ガジェットを強化する方法を提供する多数のアプリが用意されています。 ランニング、水泳、サイクリングなど、カロリーを消費する活動を追跡するために利用できるワークアウト アプリはたくさんあります。他の同様のアプリは、1 日を通して歩数をカウントするのに役立ちます。日常のタスク管理に役立ち、覚えにくいパスワードやその他の情報を記録しておくことができます。 たまたま iPhone を持っている人は、Apple Watch と同期して追加の操作を有効にできることに