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

新しいRailsプロジェクトを回避する方法を見つける

Leonid Suschevのおかげで、この記事はロシア語に翻訳されました。

職場のチームを変更したか、新しい仕事を始めたばかりです。または、お気に入りのオープンソースアプリにバグを見つけ、最初のプルリクエストを作成したいと考えています。 ただし、 git cloneを実行した後 app / modelsを開きます 、あなたは完全に失われています。 Railsの構造 慣れているものと同じですが、コードを回避する方法を見つけることは不可能です。 。では、この新しい、なじみのないRailsアプリを学ぶための最速の方法は何でしょうか?

プロジェクトの語彙を作成する

Playerとは 、および Sessionとは ? アカウントはどうですか vsユーザー vsプロバイダー

すべてのアプリは、異なる用語と異なる比喩を使用しています。 アプリの語彙がわからない場合は、 app / modelsを閲覧するのに時間を浪費することになります。 新しいクラス名が表示されるたび。 さらに悪いことに、機能がどのように機能するかについて誤った想定をすることになります。

つまり、最初にやらなければならないことは、その語彙を構築することです。 このアプリが何でできているかを学びましょう。そして、それをすばやく実行したい場合は、 db / schema.rbを読むことから始めます。 。アプリが使用する用語と、そのすべてのデータがどのように組み合わされるかを学習します。 * _ idに特に注意してください 列が表示されるので、モデルが互いにどのように接続されているかを確認できます。

より視覚的な場合は、rails-erdgemを試してください。 Railsモデルから図を生成し、すべてのテーブルと列、およびそれらがどのように相互作用するかを示します。机の上に印刷物を置いておけば、アプリの残りの部分を理解しやすくなります。

モデルとプレーンなRubyオブジェクトを続行します

適切に設計されたRailsアプリでは、すべてがデータベーステーブルによってサポートされるわけではありません。 プロジェクトの語彙を引き続き作成するには、 app / modelsの内部を確認してください db / schema.rb内に表示されなかった追加のクラスと属性の場合 。

ここではまだあまり時間をかけないでください。物事の仕組みに迷うのは簡単です。プロジェクトの語彙を入力するためにここにいます。

アプリが構築されているパーツについて詳しく知ると、なぜ疑問に思うかもしれません。 特定のオブジェクトが存在する、またはそれらがそのように組み合わされる理由。そして、それが次の段階のポイントです。

アプリを試して、「理由」を見つけてください

アプリが使用するオブジェクトに慣れたら、アプリを起動します。 クリックして探索します。ドキュメントがある場合は、それがガイドに役立ちます。それ以外の場合は、学習したばかりの用語が現実のものとなるのを見てください。

アプリを使用すると、より高いレベルからアプリを見ることができるようになります。モデルに関連付けがあるのには理由があります。なぜそれらが一緒にグループ化されているのか。それらのクラス名が選ばれた理由。たぶん、それらはすべて一緒にページに表示されるか、同じフォームから構築されます。

そして、アプリが構築されている部分とそれらが存在する理由を理解し始めると、すべてがどのように機能するかを理解する準備が整います。

「方法」を理解する

これで、アプリについて十分に理解し、詳細に学ぶことができます。 新しい用語や新しいやりとりに気を取られることはありません。学びたいことを1つ選び、それを最後までたどることができます。

ここから行く方法はたくさんあります。これらは私のお気に入りのいくつかです:

  • UIを参照する 、そして考えてみてください:あなたが作品について知っていることを知って、この機能をどのように構築することができますか?推測できますか?デバッガーを使用して推測を確認するか、実際にどのように機能するかを確認してください。
  • テストケースを選択 そして、アプリ全体を通してそれに従ってください。コードを読むか、デバッガーで調べてください。
  • ルートまたはコントローラーのアクションを選択してください。 UIからそのコントローラーアクションに到達する方法を理解できますか?

これは、モデルとプレーンなRubyオブジェクトに戻る良い機会でもあります。そして今回は、できます モデルがどのように機能するかについて詳しく説明します。

アプリに興味を持ってください。 知識のギャップを見つけて、デバッガーとコードで埋めます。

テストから始めてみませんか?

「コードベースを理解したいのなら、テストから始めましょう!テストは実行可能なドキュメントです!」

しかし、これは私にとってはうまくいきませんでした。 テストケースが狭すぎ、詳細すぎます。 テストから学んだら、アプリの大きなポイントを見逃しているように感じます。

Railsアプリ、またはほとんどの宝石と同じくらい大きなものを理解するために、私は常に最初に概要が必要でした。アプリを構成するコンポーネントと、それらが存在する理由を知る必要があります。

ただし、必ずテストを実行してください。 そうでない場合は、壊れたシステムで作業しています。そして、壊れたシステムから発見したものに頼ることはできません。

何を、なぜ、どのように

新しいRailsアプリを理解するには、次の3つのフェーズをこの順序で実行します。

  • このアプリはパーツで構成されていますか?
  • 理由 それらの部品は存在しますか?なぜそれらはそのようにまとめられているのですか?
  • 方法 各ピースは機能しますか?

これにより、新しいアプリを自分のものにするために必要な広い視野と狭い知識の両方が得られます。

P.S。 Practiceing Railsをリリースします 次の週。したがって、25%の早期アクセス割引を利用したい場合は、すぐに注文することをお勧めします!


  1. Railsアプリのパフォーマンスを理解するための新しい方法

    Railsアプリは遅いですか? 単純なビューであるはずのものをロードするのに数秒かかる場合、掘り下げる価値のある問題があります。 データベース呼び出しが多すぎるか、メソッドが遅い可能性があります。あるいは、誰かがあなたのコードに入れて忘れてしまったスピードアップループかもしれません。 アプリの速度を低下させている原因を見つけるのに役立つツールがたくさんあります。数週間前、私はrbtraceについて話しました 。 NewRelicのrpm gemは、アプリの高速化にも役立ちました。 しかし、パフォーマンスの問題を調査するための私のお気に入りのツールは、さらに多くのことを行います。 箱か

  2. Skype Lite:インドのユーザーがコミュニケーションをとるための新しい方法!

    Future Decoded で 水曜日にインドのムンバイで開催されたイベントで、マイクロソフト CEO のサティア ナデラは、新しくて最軽量のアプリ Skype Lite を発表しました。 .このアプリはインドで設計されており、インドのユーザーのみに提供されています。 人気のビデオ通話アプリは、ビジネス ユーザーと個人ユーザーの間で絶大な人気を誇っています。インド市場を適切にターゲットにするために、ローエンドのスマートフォン向けの機能を備えた新しいアプリが設計されました。 「インドでは 4G の普及率が高まっていますが、ネットワーク速度は依然として 2G や 3G のレベルにまで低下すること