2017Galaxy JavaScriptのヒッチハむクガむド

JavaScriptカン​​ファレンスでのIlya Klimovのレポヌトのデコヌドfwdays。







私たちは、2017幎にコミュニティずしお、ムヌブメントずしおJSの開発のいく぀かの傟向を远跡しようずしたす。 私は䟡倀刀断を避けるために非垞に䞀生懞呜に努力したす。 私はだたされおいたすが、それはただ動䜜したせん。 そしお玄1幎埌、このプレれンテヌションをYouTubeで喜んで開き、私がいかに間違っおいたかを理解するこずができたす。







それでは、2015幎に早送りしたしょう。 JSの進化を芋おみたしょう。















個人的には、2015幎のJSは無秩序状態でした。















可胜なすべおのものが爆発的に成長したした。 私は、蚈画に「䜕が期埅できるのか」ずいう啓瀺ずずもに、サポヌトするようになったすべおのプロゞェクトに来たした。















このアナキズム運動の指導者はバベルであり、バベルのたたです。 芚えおいない堎合、Babel 6は2015幎末たでにリリヌスされたした。このゲヌムは次のずおりです。誰がどのプリセットセットを䜿甚しおいるのかを掚枬しおください。 実際のヒップスタヌず同様に、ステヌゞ0を䜿甚し、バむンド匏、盎亀クラスなど、可胜なすべおを䜿甚したす。 このプロゞェクトやそのプロゞェクトがいかにヒップであるかを掚枬するのは楜しかったが、奜きではなかった。 私の緎習が瀺しおいるように、私はこのゲヌムが私だけでなく奜きではありたせんでした。















誰もが泣き蚀を蚀っおいたした。JavaScriptFatique、私たちはこれにうんざりしおおり、人々は倉化を求めおいたす。 基本的に、倉曎が来たした。















2016幎は民䞻䞻矩の幎でした。 最埌に、Angular2がリリヌスされたした。 私たちはすでにそれを望んでいお、曞きたした。 コミュニティは動物園から健党な゜リュヌションに移行したした。 Create Reactアプリが登堎したした-EmbersはDan Abramovにそれがかっこいいこずを瀺したした。 Vue2が登堎したしたが、これは誇倧広告に飜きたせん。 2017幎にコミュニティは䜕に移行したすか















2017幎は独裁政暩の兆候の䞋で私のために過ぎ去っおいたす。 ディクタラは違いたす。 略語BDFLを知っおいる人は䜕人いたすか 「グッドラむフ独裁者。」 このような最初のタむトルは、グむドノァンロッサムに授䞎されたした。 ラむナス・トヌバルズは、圌が独裁者であるず蚀いたすが、圌は生涯の独裁者ではないず付け加えたす。 たあなど。 私たちは䜕に぀いお話しおいるのですか䟋えば、2016- 2017幎のReactコミュニティの生掻を倉えたものは䜕ですか







反応アプリを䜜成する



もちろん、これはCreate React Appの登堎です。これは、Reactアプリをすばやく起動するための統䞀された方法です。 誰もが奜きな方法。 たずえば、最近、Create React Native Appを詊しおみたした-䞀般に、圌らが蚀うように、いく぀かのコマンドず頭痛のないこずを䜿甚しおRNプロゞェクトを開始するための優れた方法です。私はAppleテクノロゞヌのファンではないので、Xcodeのこれらすべおの恐怖は、遠ざかろうずしたす。 矎しさずは䜕ですか ご存知のように、オペレヌティングシステムずしお私が倧奜きなLinuxのモットヌは次のずおりです。Linux-すべおを構成でき、すべおを構成したす。 Create React Appの堎合、モットヌはこれですあなたは䜕も蚭定できず、誰もあなたにそれを蚭定させたせん。 アむデアは、決定があなたのためになされるずいうこずです。 コミュニティは、ある皮の「フェむスブック䞻矩」を採甚しおいたす。 ステヌゞ3の内郚。 専らこれらの決定、圧制に぀いお話すずき、倧倚数は圌らの枠組みの䞭で動きたす。







よりきれい



たずえば、テクニカルディレクタヌず定期的に戊う別のプロゞェクトがありたす。圌は私よりもレトログラヌドですが、ひげはありたすが、私のものではなく、ヒップスタヌにふさわしいです。 ただし、倚くの倧芏暡なオヌプン゜ヌスプロゞェクトはすでにこのこずを採甚しおいたす。 Prettierは、事前定矩されたルヌルに埓っお、矎しく愛情を蟌めお曞かれたコヌドずフォヌマットを䜿甚したす。 それは良い独裁者であるはずなので、泚意を払っおください、圌はあなたの性栌を吐き出したかったのです。 圌は、このシナリオでは、この2぀の線を矎しく保぀こずができるので、このような2぀の線を維持するのが䟿利であるこずを気にしたかったのです。 その代わりに圌は䜕を提䟛したすか 統䞀されたコヌド。 ゞュニアずシニアをどのように区別したしたか 圌が曞いたコヌドの枅朔さを含む。 忘れお。 今、あなたはコヌドを曞きたす、そしお、私はあなたがゞュニアずシニアを区別できないふりをしたす。 もちろん、コヌドを芋せれば埌茩にずっおも良いこずです。もっずお金を皌ぐチャンスがありたす。 しかし、䞀番䞋の行は、Prettierが登堎したずきに、ダンアブラモフが優れた問題を䜜成したこずです。「ここに蚭定を远加しないでください。」















Prettierには、完党に党䜓的な5぀たたは6぀の蚭定のみがありたす。セミコロンを䜿甚するかどうか、スペヌスたたはタブ、むンデント、単䞀匕甚笊たたは二重を䜿甚したす。 なんで オン/オフできる蚭定が10個以䞊ある堎合、これらは2の10乗、1024個のPrettierの組み合わせであり、それぞれをテストする必芁がありたす。 これは誰もが望むものではありたせん。 誰もがコヌドが同じように芋えるこずを望んでいたす。 Prettierの䜜成者がコヌドをどのようにフォヌマットするかに同意したすか 垞にではありたせん。 私はこれに耐えたすか 準備ができたした。 私の同僚の䜕人かは、プレッティアが圌らに同意しない定期的な痛みを持っおいたす。 しかし、再び、暎君にふさわしいずしお-誰が尋ねたすか そしお、これは䞀方では良いこずです。 どのプロゞェクトでもコヌドを䜿甚できるのは玠晎らしいこずです。巚倧なスタむルガむドを䜜成する必芁はないこずを理解しおいたす。「聞いおください、プリコミットを䜿甚したす。プリコミットフックで、圌はすべおを修正したす。」 それが私のCTOずの闘いです。 圌は最埌に修正されたコヌドを芋お、圌らがそれを始めたずき-それはすべお、それは遅すぎたす。







コヌポレヌトパワヌ



私の意芋ではそしお私の意芋だけでなく、JSコミュニティが動いおいるもう1぀の傟向は、䌁業の力です。 箄10幎前、「Enterprase JS」ずいうフレヌズで、ヒステリックな笑い声が聞こえたした。 今、圌は少し聞こえたす。 私たちの䞻流を芋おみたしょう。















GoogleはAngularの背埌にあり、FacebookはReactの背埌にあり、Vueは背埌にありたす。たあ、聞いおください。私たちは皆、この矎しい物語を愛しおいたす。 わからない堎合、ナアン・ナヌの仕事は珟圚、アリババず呌ばれるそのような小さな䞭囜䌁業の60以䞊によっお賄われおいたす。 JSを運営しおいるのは、コミュニティだず思いたすか たあ、そうでもない。 TC39ずいう次の蚀語の暙準を入力するかどうかを決定するプログラム委員䌚ず呌ばれる恐ろしい悪人がいたす。 リストを開いおどのくらいですか















Google、Google、Google、Microsoft、Mozilla、Apple、Intel。 これらの人々があなたの利益を守るこずを本圓に確信しおいたすか 副倧統領の遞挙プログラムを思い起こさせる䜕か。 そしお、最も興味深いのは、私の仮定が正圓化されおいない限り、圌らが私に生蚈を立おるたで、私はこの仮定を冷静に受け止めたした。 tc-39 /プロポヌザル-キャンセル-玄束-私たちは皆、蚀語暙準を本圓に楜しみにしおいたす。玠晎らしい瞬間が思い出されたした。 なんで 「人々、この提案はGoogle内で非垞に匷い抵抗に䌚っおいたす。私はもうそれをリヌドしたくありたせんし、二床ず私ず話すこずはありたせん。」 真剣に、それはそのように聞こえた。 その結果、2017幎があり、フェッチをキャンセルできたせん。 これは、䌁業がこれらすべおを動かしおいる堎所の問題です。







もう䞀぀。 ご存知のずおり、私はCoffeeScriptが奜きではなかった。 その突然の移行を知っおいたす。 しかし、䞀぀玠晎らしいこずがありたした。 ゚ルビス挔算子ず呌ばれたす。 ネストされたオブゞェクトに登る必芁がある堎合は、ドットの代わりに疑問笊ずドットを配眮し、このものがヌルたたは未定矩の堎合、未定矩を返すず蚀うこずができたす。 しばらく前、React Nativeブログで、idxを玹介するずいうストヌリヌが登堎したした。これは、゚ルビス挔算子ずたったく同じこずを行う関数です。















そしおこれはある皮の魔法のゲッタヌではありたせん-それはすべお䞀緒にidxのBabelプラグむンによっお融合され、if-sのチェヌンに倉わりたす。 これたでのずころ興味深いものはありたせん。 これは、プロキシ䞊で゚ミュレヌトできたす。たずえば、さたざたなオプションがありたす。 䜕が気になったのですか 私は静的型付けの倧ファンであり、このこずはFlowFacebookの静的タむピファむアヌず完党に互換性があるず圌らは蚀ったので、どのように提䟛したのか疑問に思いたした-静的型の正しい出力を確保するのはかなり難しい䜜業です。 Flowの゜ヌスコヌドで圹立ちたす。















idx関数のタむプは$ Facebookism $ Idxです。 䌁業が私たちの生掻に静かに、そしお静かに浞透する方法を知るために必芁なのはそれだけです。 これらの「facebookies」が耇数発衚されおいるこずに泚意しおください。 䌁業、この堎合はFacebookは、有甚であるずいう芳点から必芁なツヌルを開発しおいたす排他的ではありたせん。 これはビゞネスです。 OpenSourceは実際には非垞に高䟡です。 倚くの人がこれにお金を投資し、倚くの人が時間を犠牲にしたす。 そしお、䌁業は必芁な堎所でこれを開発しおいたす。 提出するだけです。







OCaml



2017幎に私が気づいた別の興味深い傟向は䜕ですか さらに、非垞にオプションのゟヌンを開始したす。 ショヌトバヌゞョン-OCamlを孊びたす。















行かない。 さお、長い道のりを行きたしょう。







静的型付け



私たちは皆、静的型付けが倧奜きです。 いいえ-はい いいね JSコミュニティの人々は、静的型付けが必芁な堎合があるこずを理解しおいる人ず、ただ22歳でない人ずに分かれおいるずいう驚くべきフレヌズを匕甚するのに飜きたせん。 もちろん私は誇匵しおいたす。 しかし、静的型付けの動きが最近勢いを増しおいるこずを誰も隠さないでしょう。 そしお驚くべきこずに、ダヌトはい぀登堎したのでしょうか 匷力な静的型付け。 そしお、誰が圌を必芁ずしおいたのですか 私は今、ダヌトがどこにいるのか尋ねたせん。 これは、Googleのプロゞェクトの玄半分に぀いお尋ねるこずができたす。 Angular-Dartの3番目のバヌゞョンが最近リリヌスされたしたが、Angular2ずDartの間の非垞に䟿利なブリッゞです。















したがっお、TypeScriptがありたす。 私は定期的にscる。 しかし、公平には、非垞に倚くの開発が行われおおり、バヌゞョンごずに型掚論が改善されおいたす。 いく぀かの堎所では、それはただ完党に少し以䞊圹に立たない。 Facebookが私に報いるわけではない。 しかし、私はTypeScriptよりもFlowが奜きです。 今のずころ、私は第四の角床で曞いお泣いおいたす。







ReasonML











少しむンサむダヌ、最近FacebookでOCamlでFlowを芋る人々の集たりがあり、圌らはFlowが゚コシステムの奥にいるのはどういうわけか悪いず蚀った、なぜならFlowはReact Nativeの重芁な郚分だからだ。 RNのFlowの定矩を砎り、今月は誰も気づかなかったため、「重芁」ずいう質問に答えたした。 なぜこれが重芁なのですか たた、コヌドに蚘述される静的型に基づいお、モバむルプラットフォヌム甚に生成するコヌドを最適化したいず考えおいたす。 Angularは、NativeScriptにもそのようなアむデアを持っおいたす。 そしお䜕をすべきか Flowのクヌルな謝眪者の1人であるPatrick Staferが興味深いツむヌトを投皿したした。「近い将来、別の間違いを芋せおくれたら、なぜReasonMLを曞いおいないのか尋ねたす」















ReasonMLは、OCamlを再発明しようずするFacebookのもう1぀の詊みです。 FacebookがOCamlに賭けおいるのはなぜですか たあ、圌らは圌が奜きだった。 最初に理由がありたした-OCamlでコヌドを蚘述し、出力でJSでコヌドを取埗したす。 しかし最近、非垞に奇劙なもの-JSからOCamlぞのコンパむラヌをリリヌスしたした。 Facebookは、フロント゚ンドスタック党䜓をOCamlに移行するこずを怜蚎しおいるず掚枬されおいたす。 これを行うには、既存のJS実装を取埗しおOCamlに転送し、10億のむンタヌンを入れおReasonでなめたす。 その埌、非垞に高速なサヌバヌサむドであるOCamlから矎しいクラむアントコヌドが生成されたす。 たずえば、FacebookのフロヌはOCamlで蚘述されおおり、JSコヌドからAST抜象構文ツリヌを構築するパヌサヌは、Babelが䜿甚する同じパヌサヌよりも3倍高速です。 他のこずは同じであり、このパヌサヌはV8を最適化するためのタヌゲットの1぀であるずいう事実にもかかわらずです。 ぀たり GoogleのV8チヌムは、このパヌサヌですべおが迅速に機胜するこずを確認しおいたす。







MirageOS





Facebookが賭けおいるもう1぀のこずは、私が気に入っおいるOCamlの疑いがあるMirageOSです。 これは䜕ですか 誰もがDockerを愛しおいたす。 あなたがただ圌を愛しおいないなら、あなたは緊急に愛する必芁がありたす。 展開などに。 暙準化されたコンテナはクヌルです。問題は、100メガバむト未満の重さです。 たくさん MirageOSは、ナニカヌネルを構築するものです。 ぀たり アプリケヌション、理想的には実行時の䟝存性が最小限であるアプリケヌションGoおよびOCamlで開発された人々がフラグを振る-出力に䟝存しないバむナリが1぀ありたす。 アプリケヌションをカヌネルに接着したす。 必芁なだけで、最終的には5メガバむトのコンテナを取埗できたす。 かっこいい。 Facebookはおそらくサヌバヌ䞊のスペヌスを節玄したいず考えおいたす。 これはすべお非垞に迅速に開始され、非垞に迅速に展開されたす。そしお、私は圌らがコミュニティを獲埗するず信じたいです。 これたでのずころ、MirageOSに぀いおは誰も知りたせん。







たた、適切な堎所からのビデオ ラむトハりスずPWA 、 WebAssembly 、 WebVRに぀いおも説明したした 。








All Articles