3

私はAjaxとRubyを使用して2つのプロジェクトに取り組んできました。あるプロジェクトでは、RailsプロトタイプヘルパーとRJSを使用しました。他のプロジェクトでは、jQueryでHAMLと控えめなJavascriptを使用しました。それぞれに私が克服した学習曲線がありました。ただし、どちらのアプローチの長期的なコストとメリットも明確ではありません。次のプロジェクトでは、次のいずれかを決定しようとしています。

  1. Rails + HAML + jRails + jQuery
  2. Rails +HAML+控えめなjQuery

Rails、特にRails 3.0の傾向は、控えめなJavascriptを使用する傾向にあるようですが、特にRails / jRailsから非常に多くの有用なヘルパー(remote_form_forなど)を取得する場合、なぜこれが優れているのかはわかりません。この決定を下そうとする際に、私は次の質問があります。

  1. 同じ量の機能を実現するためのコードを減らすには、どちらのアプローチが必要ですか?
  2. エラーが発生しにくいアプローチはどれですか?
  3. テストが簡単なアプローチはどれですか?
  4. 読みやすく、維持しやすく、進化しやすいアプローチはどれですか?
  5. クライアントブラウザーでJavascriptが無効になっている場合に、(Ajaxなしで同じ機能を提供することにより)Webアプリケーションをより簡単に正常に劣化させることができるアプローチはどれですか?

私はあなたが提供できるどんな助けや洞察にも感謝します。

4

1 に答える 1

2

私はあなたの質問に対するいくつかの答えを持っています-少なくとも私の観点からは。このような質問への回答は、実際にはあなたの経験と好みに依存します。

1)控えめなJavaScriptは、特にJavaScriptメソッドを再利用している場合、全体的にコードを減らすことにつながると思います。

2&3)これらの両方に控えめなJavaScriptを使用します。JavaScriptがページ構造から切り離されていると、その特定のコードが何をするのかをよりよく理解し、それをテストできるだけでなく、それらのメソッドのテストがあることもわかります。混合コードは、一般的に(私の経験では)良好なテストカバレッジを取得するのがはるかに困難です。これにより、コードでエラーが発生しにくくなります。

分離されたjsの問題の1つは、機能を削除すると、コードを残したり、依存するコードを削除したりする可能性があることです。もちろん、これが自動化されたテストと適切なカバレッジが必要な理由です。

4)インラインjsは問題ないので理解しやすいと思いますが、1行を超えると読みやすさが低下しているため、他の利点のために邪魔にならないようにすることもできます。控えめなjsを使用すると、他のチームメンバーの保守と文書化もはるかに簡単になります。

5)私の経験では、これは洗浄です。いずれかの方法で追加のメソッドを提供する必要があります。

最後に、Rails 3は控えめなjsのサポートもはるかに優れていることに同意し、ベストプラクティスと見なしています。クライアント用の古いアプリケーションの修正を始めたばかりですが、html、js、ロジックのビューが混在しているため、クライアントが何を達成しようとしているのかを把握するのは非常に困難です。物事が分離されていれば、それを取り入れることははるかに簡単でしょう。

これがお役に立てば幸いです。

于 2010-09-13T19:05:03.767 に答える