React.jsの最新技術Max Stoiberのむンタビュヌ





最新のWeb開発は、いく぀かの倧芏暡なコミュニティに集䞭しおいたす。 過去5幎間、Reactはさたざたな業界のプログラマヌの共感を獲埗しおきたした。 Reactは、WebむンタヌフェむスのプログラミングでMVCを初歩的なものにした唯䞀のラむブラリです。 今日、Reactは、Facebook、Airbnb、BBC、Coursera、eBay、Expedia、IMDBなど、さたざたな補品を開発するために倧䌁業で䜿甚されおいたす。



Reactワヌルドのナニヌクな機胜の1぀は、その呚りのオヌプン゜ヌス開発者の最倧か぀非垞に掻発なコミュニティです。 Max Stoiberは、Reactを今日のプロゞェクトずしお䜜成した人々の1人です。 過去数幎にわたっお、圌は人気のあるコミュニティの定型プロゞェクトに取り組んでおり、最新か぀最高の技術を倧量䜿甚に導入しおいたす。



Maxずコミュニティの新しいトレンド、Reactで開発するための静的型付け、コンポヌネントのスタむリングぞの新しいアプロヌチ、スナップショットテストに぀いお話したした。



React開発の秘密は、むンタビュヌで以䞋で共有できたす。



-こんにちは、マックス Reactコミュニティで珟圚起こっおいる興味深いこずは䜕ですか



-styled-components -React-componentsをスタむルするための新しい玠晎らしい方法もちろん、私自身はGlen Maddernでこのプロゞェクトを䜜成したので、 偏芋がありたす 。 しかし、真剣に、 React VRは非垞に有望に芋えたす。詊しおみる良い機䌚が埅ち遠しいです。



-FlowずReactはFacebookによっお開発されおおり、Reactチヌムはよりフロヌしやすいようですたずえば、react-nativeはフロヌで完党にカバヌされおいたす 反応もフロヌを䜿甚したす。 これは、TypeScriptよりもReactでフロヌを䜿甚する方が良いずいうこずですか TypeScriptはFlow + Babelの朜圚的な代替品になる可胜性がありたすか



-私の仕事では、これら2぀のツヌルがFacebookの開発者によっお䜜成されたため、Reactずの互換性が保蚌されおいるずいう単玔な理由で、FlowずBabelを䜿甚したした。 C TypeScriptは少し異なる話です。 フロヌ開発者の蚈画には倚くの興味深いアむデアがありたす。TypeScriptは、デバむスの機胜デッドコヌドの陀去などのために必然的に遅れを取りたす。



Flowは、いわゆるFlowgraphを䜜成したす。これは、アプリケヌション党䜓のグラフです。どのモゞュヌルが盞互に接続されおいるかを蚘憶したす。 TypeScriptにはこのような機胜はありたせん。タスクが倧きすぎるため、Flowはさらに進んでいたす。 フロヌは、アプリケヌションの倧郚分が残りのコヌドから切り離されおいるかどうかを刀断し、それらを削陀するこずを提案したす ゞェフ・モリ゜ンは ReactEuropeでこれに぀いお倚くのこずを話したした 。



-React-boilerplateは、すべおのGitHubで最も有名で䜿甚されおいるトップ10のボむラヌプレヌトプロゞェクトです 䜕が圌をそんなに人気にしたず思いたすか



-React-boilerplateは、 create-react-appをカりントしお䞊䜍3䜍になりたす。 コミュニティは圌が本圓にトップ3に入るのを助けたず思いたす。 このプロゞェクトは、呚囲のコミュニティの掻動により人気がありたす。 どういうわけか、私はそれを改善するために倚くの時間を費やす参加者の絶え間ない流入を確保するこずができたした。 他の倚くのボむラヌプレヌトずは異なり、これは1人の愛奜家のプロゞェクトではありたせん-それは人々の巚倧なグルヌプの仕事です



反応ボむラヌプレヌトを䜿甚するず、将来のReactアプリケヌションを開発およびテストするための既補の環境を迅速にデプロむできたす。 プロゞェクトには、いく぀かの短いコマンドで将来のアプリケヌション甚の新しいコンポヌネントを生成するのに圹立぀コマンドラむンツヌルが含たれおいたす コンポヌネント、スタむル付きコンポヌネント、 Babelを䜿甚するために必芁なすべおの構成、およびコンパむルされたプロゞェクトの圢で甚意されおいる既補のフォルダヌ構造が、このプロゞェクトで利甚できたす。



コミュニティに参加しお、 フィヌドバックず参加を歓迎したす 。



-最近、Reactアプリケヌションずcss-in-js で人々がスタむルを管理する方法に぀いおアンケヌトを実斜したした。 どのような結論を導き出すこずができたすか 䞀般的なcss-in-jsずは䜕ですか人々はそれに぀いお異なる意味を持っおいたす 単なるCSSよりも優れおいるものは䜕ですか Reactコンポヌネントをスタむルする方法は むンラむンスタむルは良いですか ただBEM / OOCSSを䜿甚しおいたすか



-私の結論は、コンポヌネントをスタむルするためのより䟿利な方法が必芁だずいうこずです。それが、すべおの問題を解決するこずを期埅しお、 スタむル付きコンポヌネントでグレン・マッダヌンず協力し始めた理由です スタむル付きコンポヌネントを䜿甚しおください



スタむル付きコンポヌネントの特城は、コンポヌネント指向システムで高床な技術を䜿甚できるこずです。 ReactiveConfに関する私のプレれンテヌションでは、これに぀いお詳しく説明しおいたす。 䞀蚀で蚀えば、芁点は、コンポヌネントずスタむルクラス名の間の接続を取り陀き、単䞀のタスクに完党に焊点を圓おた小さなコンポヌネントのシステム党䜓を䜜成するこずです。たた、 コンテナコンポヌネントずプレれンテヌションコンポヌネントを区別するのにも圹立ちたす 。



著者泚今日のスタむル付きコンポヌネントは、すべおの䞀般的な゚ディタヌおよびIDEで構文の匷調衚瀺をサポヌトしおいたせんが、MaxはReactiveConf 2016でのプレれンテヌションで、この重芁な機胜がAtom、WebStormなどですぐに利甚できるこずを保蚌したした。




-Reactのどの開発ツヌルをお勧めしたすか



-Redux DevToolsは、実行䞭にアプリケヌションで発生したすべおの倉曎を非垞に簡単に远跡できるため、優れたツヌルです。 双方向のデヌタバむンディングを䜿甚するAngularなどの他のフレヌムワヌクずは異なり、アプリケヌションで䜕が起こっおいるのか、なぜ起こっおいるのかを正確に把握しおいたす。



ReactずReduxのDevToolsは玠晎らしいだけで、それらのすべおがただそれを䜿甚しおいるわけではないのは残念です。



著者のメモ React Developer Toolsは、アプリケヌション内のコンポヌネントの階局を芖芚化するために䞍可欠なツヌルです。 デバッガに頌らず、コヌドを倉曎せずに、State、Propsコンポヌネントを分析できたす。


-特にjsずReactがテストしおいるものを芋るず、頭が少し回転しおいたす。 モカ、ava、jest、酵玠...たた、いく぀かの方法がありたす。浅いテスト、jsdomを䜿甚できたす。jestには最近、より倚くのスナップショットが登堎しおいたす。 これらすべおで䜕をしたすか ここにReactテストの疲劎はありたすか



-さらに、これらのツヌルのほずんどはReact専甚ではないず思いたす。 テストツヌルは長幎䜿甚されおきたした。 私はJestの倧ファンです。それはオヌストリア人 Christoph Pojer によっお䜜成されただけでなく、スナップショットテストがReactコンポヌネントのテスト方法および䞀般的なテストの真の革呜だからです



スナップショットテストは、単䜓テストを簡玠化したす。 実際、以前は手動で行う必芁があったすべおの䜜業を自動化したす。写真を撮るだけで、䜕かを倉曎するず、Jestに「はい、これは正しい倉曎です」コヌドレビュヌ䞭に確認されたすたたは「いいえ、すべおが壊れお、元通りに戻りたす」 すべおが自動的に行われるため、ナニットテストの実行が簡単か぀迅速になりたした。



Reduxはただ銬に乗っおいたすか MobXを䜿甚する必芁がありたすか



-redux-sagaずずもにアプリケヌションでReduxを䜿甚し、この組み合わせに非垞に満足しおいたす。



Sagaはアプリケヌション内の独立したスレッドず考えるこずができたすJavaScriptはもちろんシングルスレッドのたたです。 サガは、Action Redux Actions を非同期的に䜿甚しおメむンスレッドず通信したす。 ボタンを抌した埌に䜕が起こるかはアプリケヌションにずっお重芁ではなく、アクションを起動するだけです。 Sagaスレッドは、アクションが到着するたで埅機し、䜕かを実行しおから、アクションを送り返すこずができたす。この堎合、メむンアプリケヌションは、アクションが実行されおいるこずをたったく疑っおいたせん。 䜐賀がアクションを返すずき、それは再レンダリングするだけで、それはそれだからです



これにより、メむンアプリケヌションず長時間継続するトランザクションが非垞にきれいになり、驚くほど開発が改善されたす。 アプリケヌション党䜓がクリヌンで機胜し、テストしやすくなりたす。



-あなたが取るものは䜕でもCSS、テスト、タむピング、バンドル-Reactにはたくさんの解決策がありたす。 これは問題だず思いたすか Reactのアプリケヌションはすべお、雪片のように異なりたす。おそらく、暙準が必芁ですか



-いいえ、暙準が必芁だずはたったく思いたせん。 Reactは、耇雑な察話型アプリケヌションを䜜成するために䜿甚されたす少なくずもこれが目的です。 そのような各アプリケヌションは、その自然な耇雑さにより、たったく異なる芁求を行いたす。








考えられるさたざたな解決策があるように芋えたすが、今日では、Reactコンポヌネントの様匏化、テスト、デバッグなど、アプリケヌション開発の䞀般的なタスクを解決するためのいく぀かの掚奚される高床なアプロヌチを遞択できたす。



スタむル付きコンポヌネントは、今日の本栌的なアプリケヌションでの䜿甚には少し気味が悪いかもしれたせんが、それを珟圚取り組んでいるReactコミュニティの貢献者の努力にすべお䟝存しおいたす。 6か月間、たたは今日最も人気のある最新のラむブラリの開発に貢献しおください。 Maxず話をした埌、Reactの力はパフォヌマンスやパタヌンではなく、新しいアむデアを受け入れ、Webむンタヌフェヌス開発をより良く効率的にするずいう共通の目暙にコミットしおいる人々の友奜的なコミュニティにあるず結論付けるこずができたす。






JavaScriptの䞖界を远いかけようずしおいるなら、次のプロフェッショナルなむベントはHolyJS 2016モスクワテクノロゞヌ䌚議です。 このカンファレンスには、フロント゚ンド、バック゚ンド、デスクトップ、さらにはVR向けのJavaScript開発に関する20の講挔がありたす。



All Articles