5

Java上に構築されたCMSがあり、サーバー側JS用のMozillaRhinoがあります。現時点では、JSコードベースは小さいですが成長しています。手遅れになってコードがひどい混乱になる前に、いくつかのベストプラクティスとコーディングスタイルを紹介したいと思います。

明らかに、名前空間の制御は非常に重要です。しかし、他のベストプラクティスはどうですか?特にJavaプログラマーにとってはどうでしょうか?

4

3 に答える 3

20

最前線からのヒントは次のとおりです。

  • Javaと同様に、関数にはDoxygen/JsDocスタイルのdocblockを使用します
  • 単体テスト。個人的にはJsTestDriverと同じように、CIサーバーからも自動的に実行できます。
  • JSLintを使用します。それは悪いコードについてはつまらないでしょう
  • GoogleClosureCompilerの使用を検討してください。JSLintのようなコードについては気になりますが、貧弱なドキュメントブロックなどを見つけるのに役立ちます。
  • チームの全員がクロージャの仕組みを理解していることを確認してください。そうでなければ、それは頭痛につながるでしょう
  • おっしゃるように、名前空間は、コードを他のJSライブラリとうまく連携させたい場合は特に重要です(var myns = myns || {};
  • 個人的には、クラスなどのOOPヘルパーを提供するライブラリを使用すると便利です。プロトタイプの継承を使用することもできますが、その方法では少し注意が必要です。
于 2009-12-03T06:56:52.280 に答える
2

Douglas Crockfordが言うように、JavaScriptは世界で最も誤解されているプログラミング言語です。多くの人はそれを知りませんが、JavaScriptでコーディングする正しい方法があります。優れたJavaScriptの書き方を理解する前に、Java開発者にコーディングを開始させると、深刻な問題が発生することは間違いありません。

最初に行うことは、Mozillaの優れた記事「JavaScriptの再紹介」(https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript)を全員が読んだことを確認することです。JavaScriptの最大の問題の1つは、最も一般的なタスクを実行する方法がたくさんあることです。この記事では、同じページにユーザーを誘導する必要があります。もう1つの重要なリファレンスは、JavaScript:TheGoodPartsを含むDouglasCrockfordの作品です。

多くのJava/C ++プログラマーを獲得するもう1つのことは、JavaScriptがブロックスコープではなく関数スコープを使用することです。これは、いくつかの非常にトリッキーな問題を引き起こす可能性があります。この問題に関するすばらしい記事が、JavaScriptのBindingと呼ばれるAListApartにあります。


上記のリソースで説明されている主要な問題を要約すると、学ぶべき最も重要な違いは次のとおりです。
  • プロトタイプ継承(vs.classベースの継承)を使用してオブジェクト指向コードを作成する方法
  • クロージャとラムダの使用方法
  • 動的オブジェクトの力を活用する方法
  • 関数スコープのコードの書き方
于 2009-12-03T06:36:38.917 に答える
1

JavaにはJSエンジンがあるので、JSコードの単体テストを作成する習慣をつけてください。コーディングスタイルを選択し、それを精力的に適用します。可能であれば、ツールを使用して、コードがコーディングスタイルに準拠していることを確認します。

于 2009-11-30T12:49:05.120 に答える