0

レールでは、モデル、コントローラー、ビューを作成するためのベストプラクティスはどれですか?私が知っている3つの方法があります。

1)「すべて」の足場。

2)端末を介して各コントローラーとモデルを生成します。

3)すべてのファイルを手動で作成します。(これを行うときは注意が必要です。コントローラーの複数形化とモデルでの単数形の使用について注意する必要があります)

少しリスクがありますが、現在は3番目の方法を採用しています。従うべきベストプラクティスを知りたいだけです。そして、他に方法があれば、私は知ってうれしいです。御時間ありがとうございます。

PS:私はRoRの初心者です。

4

3 に答える 3

2

足場はおそらくあなたが望まないものをたくさん生成するのでかなり悪いと思います。私はそれをスパイクソリューションにのみ使用します。

実際のプロジェクトでは、私の会社のルールブックには、テスト駆動開発を使用する必要があると書かれています(私はこれが好きです)。つまり、デフォルトのアプローチ(私は時々従うことができない)では、統合テストから始めて、それから従います。(ルート、コントローラーメソッド、ビュー、モデルの順に作成します...)。

于 2013-01-10T07:53:45.707 に答える
0

手動作成のプロセス全体を自動化するため、スキャフォールディングが最善のアプローチであると私は信じています。モデル、コントローラー、ビュー、および移行をaだけで取得できるため、rails g scaffold myscaffoldアジャイルWeb開発ソリューションとしてRubyonRailsを呼び出します。したがって、開発者がソフトウェアを迅速にブートストラップしたり、機能を変更したりするのをサポートするツールは、アジャイルであることに役立ちます。

もう1つのことは、プロジェクトを迅速にブートストラップできる場合は、優先順位の並べ替えにより柔軟に対応できることです。これは、より明確でより良い方法で開発計画のコア開発に役立ちます。

于 2013-01-10T08:00:51.450 に答える
0

完璧な解決策はありません。手作業でコーディングする場合、本当に慣用的なレールを使用していますか?「中級」のプログラマーにとっては、すべてを手作業でコーディングしたくないし、単純な足場に頼ることもできません。生成されたコードを理解する必要がありますが、60 wpmの完璧なコーディングを最初から教祖に任せてください!

私は3つの語用論を提案します

A.素晴らしいスタートを切りましょう。Boilerplatingは、必要なモジュール(auth用に考案、ajaxyフォーム用のsimple_form、twitter-bootstrapなど)を選択し、断片的にボルトで固定するのではなく、かなりロードされたサイトから開始するJavascriptおよびNodeプロジェクトでそれを行う主な方法です。 。これは重くはありません-「PRO」サイトを作成するためだけです。私はまだ良いRoRボイラープレート、railsapps(作曲家は姉妹サイトです)、railsbricks、そして古き良きRailsテンプレートを探しています。Railsエンジンはこれを可能にするはずです。残念ながら、ベストプラクティスを組み込んだテスト済みの構成を提供するには「教祖」が必要であるため、これがどのように行われるかについては十分に説明されていません。

B.モデル-最初のアプローチ。初日からまともなモデルから始めます。フィールドを1つずつ追加する代わりに、座って、サイトの3〜4個のコアテーブルを取得して、それらの関係をうまく機能させてください。「アジャイル」な人々はミニマリストのアプローチに反対するかもしれませんが、経験豊富な人は「少し先に設計」してみませんか。もちろん、コーディングする前に、他の極端な数十のテーブルやER図を避けたいと思います。適切なモックアップ/ユーザーデザインがある場合は、MVP(最小限の実行可能な製品)のかなり前もってサイトの外観と固有のモデルを投影できます。もちろん、これは、アプリをどのように見せたいかについて、2〜4週間の先見性があることを示唆しています:)

C.テスト/移行の少ない足場。ハイブリッドアプローチは、最初にモデルの生成とデータの移行のみを行い、次にテストなしのスキャフォールドまたはオプションを使用した移行を行う場合に、より実用的です。この例については、Rails 4forBeginnersの本ch5を参照してください。利点は、手作りのモデルコードを上書きせず、RoRマジックが提供するモデルごとに最大5つ以上のファイルのダーティな詳細をscaffoldに処理させることです。#1。タイトル、本文を含むモデル記事を生成します#rake db:createを実行し、モデルにプレゼンス、最小長などの検証を手動で追加します#ここでスキャフォールドを実行できます..#場所を追加し、db移行のみで抜粋します(手動ではありません)スキーマ編集もスキャフォールドもすべて)$ railsは移行を生成しますadd_excerpt_and_location_to_articles抜粋:文字列の場所:

ポイントを取得すると、モデルを進化させるときに、足場がスローアウェイとして扱われることがわかります。現時点では、コントローラーの詳細やビューを上書きすることについては、実際には何も気にしません。しかし、あなたはあなたのモデルを保護していて、例えばモデル間の関係や詳細な検証を手作業で編集しています。

副次的な利点として、モデルファーストの実用的な方法がこのアプローチでうまく機能します。足場を停止する前に、アプリで5〜20のモデルにかなりの距離を置くことができます。その時までに、コードモデルはかなり決定されているはずです。

于 2014-01-26T01:18:32.337 に答える