2013幎のJavaScriptおよびWebテクノロゞヌの開発の興味深い偎面

すべおの人に良い䞀日を



倚くのブログ、レポヌト、プレれンテヌションを分析し、いく぀かの䌚議を蚪れ、異なるプロファむルのWeb開発者ず話し合っお、JavaScript開発の分野で掻発に開発䞭たたは開発を始めたばかりの䞻芁な領域を自分で特定したしたそしお、私の意芋では、慣れに泚意しおください。 蚘事の目的は、それらを照らし、思考のための食物を提䟛するこずであり、埗られた知識をいかに正確に実践できるかです。



私の名前はミハむル・クリシュトパです。私はameriaでタむプセッタヌhtml / css / jsおよびPlone開発者ずしお働いおいたす。 自己教育プログラムの䞀環ずしお、このレポヌトで共有したいJavaScript蚀語の開発ず䜿甚の䞻な傟向を研究するのに時間を費やしたした。 経隓豊富な開発者が笑顔でレビュヌをめくる可胜性はありたすが、深く掘り䞋げお、誰かが結果の資料に興味を持っおくれるこずを願っおいたす特に、読者がこの業界の動向に觊れなかった堎合。 党䜓ずしお、私は各技術の完党な深さを明らかにする仕事がありたせんでした、私は簡単な説明ずそれに぀いおの私の意芋を䞎えたす。



これはHabrでの私の最初の「ペンのテスト」です。ミュヌゞシャンを撃たないようお願いしたす。圌はできる限り最高の挔奏をしたす。 だから...



クラむアントずサヌバヌ甚の1぀の蚀語



そもそも、クラむアントブラりザヌずサヌバヌの䞡方でアプリケヌションを開発するためにJavaScriptを䜿甚する傟向を匷調する䟡倀がありたす。 数幎前ぱキゟチックでしたが、今では開発フレヌムワヌクの幅広い遞択があり、長い間来おいるようです。 このような組み合わせには利点がありたす。サヌバヌ蚀語ずクラむアント蚀語を別々に知る必芁はありたせん。これは「ツヌむンワン」の堎合に圓おはたりたす。



最も有名なものの䞭には、NodeJS、AngularJSGoogleによっお促進され、積極的に䜿甚されおいる、KnockoutJS、BackBone.js、Meteor、PhantomJSがありたす。 それらのすべおが掻発に開発されおおり、毎日倚くのモゞュヌルがそれぞれの愛奜家によっお発行されおいるこずに泚意したす。 圓然、これはすべおオヌプン゜ヌスです。



「構文糖」



Brendan Eichは、時間に敏感な環境でJavaScriptを開発したした。蚀語は10日で開発されたした「レクサヌ、パヌサヌ、バむトコヌド゚ミッタコンパむラ、むンタヌプリタ、組み蟌みクラス、デコンパむラを䜜成する10日」。 おそらくそれが、倚くの開発者がその構文、構造、および倚くの機胜を奜たない理由です。 たずえば、蚀語には、通垞の意味ではクラスがなく、継承のかなり珍しいメカニズムなどがありたす。



CoffeeScript


JavaScriptの「アドオン」ずしお蚭蚈されおおり、本質的に新しい蚀語です。その目的は、JavaScriptの開発を容易にし、ルヌチンを削陀し、コヌドの蚘述プロセスを簡玠化しおスピヌドを䞊げるこずです。 JavaScriptでコンパむルされおいたす。 ゜ヌスマップを䜿甚しお、ブラりザでコンパむル枈みアプリケヌションをデバッグするこずができたす。 構文はRubyに䌌おいたす。 平均しお、CoffeScriptを䜿甚する堎合の同じアクションでは、玔粋なJavaScriptの2分の1の行しか必芁ありたせん。





TypeScript


2012幎にMicrosoftによっお導入され、JavaScriptを拡匵するWebアプリケヌション開発ツヌルずしお䜍眮付けられおいるプログラミング蚀語。 たた、JavaScriptでコンパむルされ、䞋䜍互換性がありたす。 OpenSourceの䞋でリリヌスされたした。



TypeScriptは、明瀺的に型を定​​矩する機胜静的型付け、本栌的なクラスの䜿甚のサポヌト埓来のオブゞェクト指向蚀語のように、およびモゞュヌルの接続のサポヌトにおいおJavaScriptず異なりたす。 理論的には、このようなむノベヌションは、コヌドの開発、可読性、リファクタリング、再利甚の速床、開発およびコンパむルの段階での゚ラヌの怜玢、プログラムの実行速床を向䞊させるはずです。





ダヌツ


グヌグルはささいなこずをしないず決め、 ブラックゞャックの䜎゚ントリヌしきい倀ずクラスで「りェブの新しい蚀語」をれロから䜜成したした。 DartはJavaScriptの代替/代替ずしお䜍眮付けられおおり、進化の開発では修正できない「基本的な」欠陥に悩たされおいたす。 JavaScriptでコンパむルしたすが、特別なDartiumブラりザヌChromiumクロヌン、Dart甚の仮想マシンを远加で起動できたす。 蚀語甚の゚ディタヌがあり、メむン゚ディタヌ甚のプラグむンがありたす。





HTML5 Canvasタグ



JavaScriptではありたせんが、以䞋で説明するものに盎接関連しおいたす。 HTML5タグのセットからこのツヌルを受け取るず、開発者は文字通り手を攟したした-動的に䜜成されたものを含め、ブラりザペヌゞにグラフィックを衚瀺するこずが可胜になりたした以前はこれはFlashでのみ可胜でした。 これは、2Dおよび3Dグラフィックスを操䜜するためのラむブラリの開発に匷い刺激を䞎えたした。 以䞋に䟋を瀺したす。



Webgl



WebGLWebベヌスのグラフィックラむブラリは、互換性のあるさたざたなWebブラりザヌで動䜜するむンタラクティブな3Dグラフィックを䜜成できるJavaScript甚の゜フトりェアラむブラリです。 䜎レベルのOpenGLサポヌトツヌルを䜿甚しおいるため、WebGLコヌドの䞀郚をビデオカヌドで盎接実行できたす。



私の意芋では、このテクノロゞヌは実際には登堎しおいたせんが、䜕らかの圢で最新のすべおのブラりザヌでサポヌトされおいたす。 セキュリティの問題が解決され、モバむルデバむスがそれをサポヌトし始めるず、それは青々ず咲きたす。 そしおこれは、すべおの携垯電話やタブレットのさたざたなマルチプレむダヌゲヌムに、黄耐色のない耇雑な3Dグラフィックスが詰め蟌たれおいないこずを意味したす。



three.js


䞉次元グラフィックスで䜜業するための軜量でクロスブラりザのラむブラリ。 これは、「どこに向かっおいる」Webを理解するために芋られるべきです。



  1. ドラむバヌの堎合、以䞋を確認する必芁がありたす。

    http://threejs.org/examples/webgl_materials_cars.htmlFireFox、Chrome 
  2. ブラりザで人をレンダリングしたすか 問題ありたせん

    http://threejs.org/examples/webgl_materials_normalmap2.html

    http://threejs.org/examples/webgl_loader_json_objconverter.html

    http://threejs.org/examples/webgl_loader_ctm.html

  3. プロシヌゞャルテクスチャの生成

    http://threejs.org/examples/webgl_terrain_dynamic.html

  4. 特定のタむプのアヌトむンタラクティブフィルム、狂人のせん劄、たたは新しいタむプのアヌトに起因するこずさえ困難なアヌトプロゞェクト

    http://www.ro.me/Chromeのみ



asm.jsMozillaから+ Emscripten



別の行は、ブラりザの「アセンブラ」ずしおJavaScriptを䜿甚するずいう考えです。 JavaScript自䜓は蚀語であり、控えめに蚀っおも高速ではありたせん少なくずも、Google ChromeのV8の開発者が採甚するたではそうでした。



Asm.js開発者は蚀語のサブセットを䜜成し、そこからさたざたな「抑制」コンポヌネントを陀倖したり、匷力な型付けを远加したりしたした。 結果ずしお埗られる方蚀は、通垞のJavaScriptよりも䜕倍も高速に動䜜し、ブラりザメヌカヌはそのための個別のコンパむラを開発し始めおいたす。 珟圚、asm.jsを䜿甚するず、通垞のCアプリケヌションの50の速床が埗られたす。 そしおこれは本圓にずおもクヌルです。



しかし、asm.jsだけでは、Emscriptenコンパむラずの組み合わせほど意味がなく、asm.jsでC / C ++コヌドを「远い越す」こずができたす。 圓然、結果のJavaScriptは刀読できたせんが、これは必須ではありたせん。



䟋ずしお、わずか4日で、Unreal Engine 3のようなプロゞェクトがWebに転送されたした。芋た目-デモを芋る䟡倀がありたす  http : //www.unrealengine.com/html5/ 特に、ITがブラりザで機胜するこずを理解しおいる堎合は魅力的です 



コヌド品質管理



グラフィック郚分から少し離れお、JSHint、JSLintなどのラむブラリの開発者による広範な䜿甚に泚意を喚起したいず思いたす。



JSLintはJavaScriptコヌドをスキャンしたす。 問題を芋぀けるず、コヌド内の説明ず堎所を含むメッセヌゞを返したす。 倚くの堎合、問題は構文゚ラヌではありたせん。 JSLintは、構造のコヌディング芏玄ず問題にも泚意を向けたす。



「コヌドをコミットする前に、JSLintを実行しお、芋萜ずす可胜性のある゚ラヌをチェックしたす。」



メむン゚ディタヌにはコヌドをチェックするためのモゞュヌルがありたすが、最も簡単なケヌスではオンラむン怜蚌サヌビスが圹立ちたす。





りェブワヌカヌ



JavaScriptシングルスレッド問題の解決。 個別に起動されたバックグラりンドプロセスunixシステムの「デヌモン」など。ここで、蚈算、サヌバヌぞの芁求などを実行できたす。 メむンプロセスからワヌカヌに連絡し、結果に぀いお䜕らかの回答を埗るこずができたす。



コヌド文曞



JS Doc 3ラむブラリに蚀及したいのですが、プロゞェクトコヌドのコメントからAPIドキュメントを生成したす。





テスト䞭



JavaScriptだけでなく、アプリケヌションをテストするこずをお勧めしたす。 しかし、その䞭にはすでに、あらゆる味ず色のためのテスト甚のかなり幅広いフレヌムワヌクの遞択肢がありたす





GruntJavaScriptタスクランナヌ



「GruntはJavaScriptプロゞェクト甚のタスクベヌスのコマンドラむンビルドツヌルです。」



䞀蚀「自動化」。 モゞュヌルアヌキテクチャのプロゞェクトで䜜業するためのJavaScriptツヌルキット。これにより、JSHintコヌド怜蚌、SASSたたはCoffeeScriptからのコンパむルなど、さたざたなルヌチン操䜜の自動化機胜を匕き受けるコヌドの操䜜が簡単になりたす。 愛奜家によっお曞かれた倚くのプラグむンの助けを借りたモゞュラヌアヌキテクチャのおかげで、開発者の生掻を楜にする幅広い機胜が実装されおいたす。



簡単な䟋ずしお、プロゞェクトをビルドするずきに、アセンブリおよび最小化埌の特定のラむブラリのサむズが仕様で蚭定された制限よりも倧きいこずを通知するgrunt-microプラグむンを考えおください。



JSシェル



実隓甚のペヌゞを䜜成せずにコヌドを詊すたたは蚘述するこずを可胜にする「サンドボックス」。 ほんの数分で、新しいアむデアを詊したり、䟋を他の開発者ず共有したり、ペヌゞの䞀郚で共同䜜業したりできたす。 プラグむンJSフレヌムワヌクの遞択、倉曎の履歎、コヌド品質管理JSLint、およびその他の「利点」。





JSビデオコヌデック



「Mozillaは、プラグむンORBX.jsの必芁性を排陀する新しいJavaScriptビデオコヌデックを開発したす。」 JavaScriptおよびWebGLビデオコヌデック。 そしおそれは本圓にクヌルです。 玔粋なJSで、コヌデック、ブラりザヌなしでHDビデオを衚瀺したす。 プラグむンは䞍芁、フォヌマットの問題はありたせん。 適応ビットレヌト、H.264ず比范しお25優れた圧瞮、長いプラスのリスト。





JSオヌディオコヌデック



オヌディオコヌデック。 これらの圢匏をサポヌトしおいないブラりザでも、MP3、Apple Lossless、FLAC、およびAACを再生できたす。





頭郚远跡


おいしい-最埌に。 Webカメラを介しおナヌザヌの頭の䜍眮たでスクリプトを远跡できるテクノロゞヌ。 頭は倚くの方法で䜿甚するこずができたす-それは考えるこずができ、食べるこずができたす。 制埡にも䜿甚できたす。 䜕でも、習慣から銖は傷぀きたす。



鮮明な䟋は、ゲヌムFaceKat Chromeでテスト枈みです。 私たちは、原始的な普遍的な混chaosを貫き、激しい頭の揺れによっお額を飛んでいる円を避けたす。 ちなみに、銖の良い運動。



もう1぀の興味深い䟋は、頭を回転させる機胜です。遠近法ず前景オブゞェクトを芋る-http://auduno.github.io/headtrackr/examples/targets.html 。 この実斜圢態では、ほずんど圹に立たないが、店舗のアむデアずしおは完党に。



このテクノロゞヌをGoogleストリヌトビュヌず組み合わせお䜿甚​​する方法の䟋 http : //alexhancock.github.io/street-facing/



モゞュヌル自䜓は「headtrackr」ず呌ばれたす  https : //github.com/auduno/headtrackr



この技術のさらなる発展は、仮想オブゞェクトの管理です。 badassjs.com/post/44786596458/an-iron-man-like-3d-hologram-controlled-by-leap-motionの䟋は、JavaScriptず80ドルのLeapMotionデバむスを䜿甚しお、指で仮想地球のホログラムをねじる方法を瀺しおいたす。 トニヌ・スタヌクのように。



おわりに



それは私が私の仕事を終えるずころです、私はあたり疲れおいないこずを願っおいたす。 たた、この蚘事に぀いお、たた芋逃した瞬間や䞍正確な点に぀いお意芋を聞きたいず思いたす。 たあ、誰かが本圓にやりたいなら、あなたはトマトさえ挜くこずができたす-それがケヌスに觊れただけであれば...;



All Articles