18

だから基本的に、私はコーヒースクリプトから私を遠ざける多くの懸念を持っています:

  1. 私はまだ js の専門家ではありませんが、約 3 年間使用していますが、重要な何かが欠けているように感じます。それは主に私をサポートするテクノロジーであるため、js を深く掘り下げる時間はありません (認めますが、これは間違った態度である可能性があります)。

  2. コーヒースクリプトを使い始めると、私のjsの知識はさらに悪くなります

  3. 実際に coffescript を信頼できるかどうかはわかりません。つまり、それがコンパイルする js コードを意味します。

  4. 時々、coffeescript がコンパイルされる js コードを理解できず、さらに悪いことに、なぜそのようにコンパイルされるのか理解できません。

以上の点について、お考えをお聞かせいただければ幸いです。重要なのは、coffeescript の使用が js の知識にどのように影響したかということです。そして、coffeescript に切り替える前に js を完全に理解することはどれほど重要だと思いますか?

4

4 に答える 4

11

Coffeescript がどのような問題を解決することになっているのかを理解する必要があります。そのためには、JavaScript の「悪い部分」についての基本的な知識が必要です。それについて Douglas Crawford を読むことをお勧めします (本がありますが、インターネットにはたくさんのリソースがあります。「javascript の悪い部分」をググってください)。基本的には、「ぎこちない波括弧やセミコロンの下に、JavaScript の中心には常に豪華なオブジェクト モデルがありました。CoffeeScript は、JavaScript の優れた部分をシンプルな方法で公開しようとする試みです」というものです。(coffeescript のサイトから取得)。

jslint と呼ばれる JavaScript の落とし穴を回避するためにプログラマーを支援するツールがあります。このツールはコードを分析し、グローバル変数、セミコロンの挿入、名前空間の汚染などのよくある間違いについて警告を発します...

Coffeescript は JavaScript に変換されます。しかし、それが生成する JavaScript は標準的なサブセットであり、jslint に高度に準拠しています。さらに、すべてのブラウザーで有効な JavaScript コードを生成します。したがって、これは単なる優れたシンタックス シュガー レイヤーではなく、確実なコードを生成するのに本当に役立ちます。

于 2012-04-24T15:02:59.687 に答える
6

あなたの懸念に対処したいと思います。

1) 3 年間 JS を使用している場合は、おそらく JS について十分に理解しています。まだ十分な理解が得られていない場合は、優れた JS の本で知識を補う時期かもしれません。

2) Coffee-script が JS の知識を悪化させることはないでしょう。Coffee スクリプト アプリケーションを設計する方法は、(ほとんどの場合) JS アプリケーションを設計する方法と同じであるため、習得した設計スキルは引き継がれます。私の意見では、プログラムの設計はプログラミングの最も重要な側面です。

3) なぜ JS を信用しないのですか? あなたが使用している他のコンパイラー/インタープリター/他のツールを信頼するのはなぜですか? Coffee-script にバグがないとは思えませんが、多くの人がさまざまな目的で使用しています。これは、多くの場合、本番環境で多くの動作がテストされていることを意味するため、ユースケースはおそらくすでに試行およびテストされています。

4) もちろん、Coffee-script によって生成された JS は、それを生成するためのルールが優先事項として人間の可読性を持っていないため、あなたには異質に見えます。ただし、それを読むと、独特に書かれたプログラムがどのように実行されるかがわかるため、JS の知識が増えます。これにより、ポイント 1 に戻ります。

于 2012-04-24T10:58:46.130 に答える
1

だからここに私がトピックについて考えるものがあります:

  1. JSはサポートテクノロジーではありません(何をサポートしますか?)。これは主にフロントエンドで使用される言語であり、バックエンドで使用するという新しい傾向があります。ブラウザはCoffeeScriptをネイティブにサポートしていないので、バックエンドとして使用しない限り、CoffeeScriptを使用する意味はないと思います。新しい言語を学ぶことは常に良い考えですが。

  2. 全くない。実際にCoffeeScriptを使用することは、別の言語を使用することに似ています。一方を学ぶことは、もう一方にあなたを困惑させることはできません。あなたが他のものを学ぶのをやめない限り。

  3. CoffeeScriptがバグのあるコードやスローコードにコンパイルされるという証拠はありません。実際、私はしばらくの間CoffeeScriptを使用していますが、パフォーマンスへの影響は見られませんでし

  4. 実際、なぜこのようにコンパイルされるのかを理解する必要はありません。バックエンドでCoffeeScriptを使用している場合は、コンパイル先のコードを確認する必要はありません(必要なのはソースコードのみです)。それを使用してブラウザスクリプトを作成することに関しては、そうです-それを操作するのは少し難しいかもしれません(デバッグ)。そのため、ブラウザ用に通常のJavaScriptを作成し、バックエンドでCoffeeScriptを使用することを常にお勧めします。

最後の質問ですが、CoffeeScriptが私のJSの知識にまったく影響を与えたとは思いません。私はそれらを別々の言語として扱います。また、フロントエンドでCoffeeScriptを使用する場合を除いて、CoffeeScriptに切り替えるためにJSを知る必要はありません(ただし、そうする必要があります)。

また、JavaScriptをマスターすることは、何があっても常に良い考えです。:)

于 2012-04-24T10:59:44.040 に答える
1

ここで覚えておくべき重要なことは、Coffeescript は JavaScript であるということです。すべての Coffeescript ステートメントまたはマジック オペレーターは、Javascript で明確な具象表現を持っています。たとえば(x) -> x * x、Coffeescript では、直接 に変換されfunction (x) { return x * x; }ます。

それが生成する Javascript を意識せずに Coffeescript を実際に書くことはできません。まず、生成された Javascript をデバッグする必要があります。どちらかといえば、Coffeescript を書くことで Javascript の理解が深まる可能性があると私は信じています。たとえば、Coffeescript で、実際にはバインドするかどうかを決定しているのでは=>なく、使用することにした場合、これは非常に現実的な Javascript の問題です。->this

Coffeescript の使用を開始する時期 (または開始する場合) は? これに対する答えは多かれ少なかれあなた次第だと思います。試してみて、Coffeescript を使用した方が簡単にタスクを完了できると感じた場合は、そのまま使用してください。実行中の言語 (つまりデバッグが必要な言語) とは異なる言語でコードを記述するのが難しい場合は、Javascript に戻ってください。

于 2012-04-24T10:56:36.210 に答える