2013-01-16 4 views
15

明らかに、開発者はいつ廃止するべきか、いつ取り除くべきかについてはわかりますが、どうすればいいですか?開発者にはjavascript機能は廃止されましたか?javascriptライブラリで非推奨のアノテーションを使用する必要がありますか?

一部の形式では、ほとんどの言語(JavaC#Python)がサポートされています。

しかし、Javascriptの場合、開発者が関数が非推奨(コード内)であることを示す標準的な方法は見つかりません。私ができることは、(多くの)リリースノートに従うことです。 jQueryの1.8の完全なソースをgrepを例として

は、最小限のインラインコメントを示しています

# curl http://code.jquery.com/jquery-1.8.0.js | grep -i depre 
// jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode 
// *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 *** 
// Some plugins are using, but it's undocumented/deprecated and will be removed. 
// Deprecated 
// Limit scope pollution from any deprecated API 
// Deprecated, use jQuery.browser.webkit instead 

W3CとMDNは、標準的な方法を持っているか、これを処理する方法についての提案を提供していないようです。

私が見つけたベストは、JSDocの@deprecatedタグです。

javascript が見落としているかどうかは知りませんか?これを行うためのより良い方法またはより一般的な方法がありますか?

+3

'console.log( 'この関数は非推奨です。');' –

+0

@FlorianMargaine興味深いことに、これを回答として作成できますか?このアプローチを使用しているライブラリを知っていますか? – hafichuk

+0

はい、jQuery Migrate(1.8 - > 1.9アップグレードの場合)はそれを行います。 –

答えて

7

方法/機能を非推奨にする方法は、基本的にはではありません。開発者は廃止予定のメンバーを処理します。

唯一可能なことは、廃止された関数/メソッドのドキュメント化に最善を尽くし、ソースコードのドキュメント内に@deprecatedタグを使用することです。

次に、このタグを使用してコンパイルされたソースコードを検証し、廃止予定の機能が使用されている場合、警告を発生させるコンパイラ(Google Closure Compiler、これは私が間違っていないとします)と高度なIDEです。

9
console.log('This function is deprecated.'); 

これは、jQuery Migrate(1.8 - > 1.9アップグレード用)がコードをアップグレードする方法です。そのwikiから

:その機能のいずれかが呼び出されるたびに

古いjQueryのコードを移行するとき、開発者は互換性の問題を特定して修正できるようにするために、プラグインの開発(非圧縮)のバージョンは、コンソールの警告メッセージを生成します。メッセージは、一意のメッセージごとにコンソールに一度だけ表示されます。

+0

これは、機能を非難し、下位互換性を提供するための本当に面白い方法です(私が正しく読むと)。だから彼らは基本的にプラグインとして非推奨を扱っています。 – hafichuk

+0

これは動作し、私はそれを使用しました。ただし、Internet Explorerには注意が必要です。私はIE8で 'console.log( 'foo')'が開発者ツールが開いていないときに例外を引き起こすことを知っています。 https://stackoverflow.com/questions/690251/what-happened-to-console-log-in-ie8 – phylae

+0

は 'console.warn( 'deprecated')'の方が良いかもしれません。 –

関連する問題