Ember.jsでは、オブジェクト属性にアクセスするために、this.get
とthis.set
を使用することを推奨/必要とするEmber独自のオブジェクトバリアントを使用します。Ember.jsでコードミスをキャッチするためのより良いプラクティス(具体的には、変数名が壊れている)
これがなぜ行われたのか理解していて、Emberのプログラミング体験に一貫性と柔軟性を加えてくれてありがとうございます。しかし、私はIDEの健全性チェックを失うと感じています。
Jetbrain製品(または深い分析と完成度の高いIDE)では、通常、正しい変数名を選択しているかどうかを確認するためにシンボルの提案に頼ることができます。エバーと一緒に弦を入力すると、私は正しい名前を得ることができます。私は虚弱な人間です。
私は考えられる解決策について考えています。
- アンES6または代替を使用する正しい文字列を提案するために静的解析を行い、一部のIDEプラグインは自動的に私が必要とする文字列定数を確立するためのいくつかの方法でデフォルト
- によって部材燃えさしの道にアクセスし、言語を蒸散しましたそれらは
- 私は定義されていない変数を取得しようとすると、少なくとも警告をスローするいくつかのデバッガ設定。
- emberが属性を未定義に設定しようとしたときに警告を発することも便利です。
これらの解決策の1つが存在するか、より良いことが考えられているか、または問題が実際に問題ではないことを誰かが教えてくれることを願っています。
(私の問題を説明するための例:)次のスニペット
const email = this.get('email');
const newInvitation = this.store.createRecord('invitation', {email: email});
で 私は属性email
が、私はemailAddress
と呼ばれていた取得するもので、実際の属性を取得しようとしています。私がレコードを作成するとき、コードの後半まで捕捉されない未定義の電子メールフィールドでレコードを作成します。
デバッグは面倒ではありませんでしたが、何かスペルミスをするたびに手動でコードの各行を調べなければならなかったので、多くの時間を無駄にして悲しいデバッグボイスになります。助けて!
これはまだ入力が必要ですが、私が見つけた解決策は[EmberScript](http://emberscript.com/)です。ほとんどのIDEがEmberScriptをサポートしないため、このソリューションが私の投稿の前提に適切に対応しているとは思えません。適切な識別子で文字列検索を置き換えますが、IDEコード分析を使用して文字列ルックアップを利用することができないため、そうすることの価値はありません。 (また、それは解決策のどれほど侵略的であるか不安定である/維持されていない)。 – pixelpax