誰かが発表されるとすぐに会議に行くことを決めます。昨年あなたが会議に出席していて、すべてが好きだったら、間違いないでしょう。 また、会議プログラムの準備ができたときに誰かが決定を下し、参加したいレポートを正確に理解できます。
今日、2番目の資料があります。 HolyJS 2018 Piterプログラム(5月19〜20日)の最終的な仕上げはまだ行われていますが、最終的な結論はすでにそこから得られます。 さまざまなトピック(TypeScript機能やRxJSを使用してJSコンパイラをElbrusプロセッサに移植する際のメモリリークなど)-この投稿では、HolyJSレポートについて既に知られているすべてのことについて説明します。
初日
Vitaliy Fridman-フロントエンドの新しい冒険、シーズン2
前のHolyJSの最も注目すべきパフォーマンスの1つは、 Vitaliy Fridmanのレポート「レスポンシブWebデザインの新しい冒険」でした。 個人的に出席していない場合は、 ビデオを見ることができます。
そして今、Vitaliyは新しい「New Adventures」で戻ってきています。 Smashing Magazineを率いると、多くのフロントエンドの微妙さ、複雑さ、汚いトリックを学ぶことができるので、レポートではさまざまなトピックを取り上げます。 著者が警告しているように、「あなたは学んだことを認識できない」と認識し、その後の悪夢に対して責任を負いません。
マリーナ・ミロノヴィッチ-React、AWS Lambda、Serverless:ミックスするがシェイクしない
サーバーレスコンピューティングについて耳にするのはこれが初めてではありませんが、Marinaは彼女のレポートがあなたに自分で試してみるように説得することを望んでいます。 そして、AWS lambdaに慣れていない人のために、追加機能と便利な開発ツールが表示されます。 レポートでは、コンソールから手作業でラムダを簡単に作成し、完全に自動化されたデプロイメントで終わるプロジェクトで、AWSラムダで同形アプリケーションを作成する方法を段階的に説明します。
Taylor Lovett-Node.jsでAlexaスキルを構築する
Amazonが作成したAmazonの音声アシスタントAmazonは、Amazon Echoだけでなく、Sonosなどの他の会社のデバイスでも使用されるようになりました。 AIは世界を占領し、Amazonはここでの先駆者の1人です。
開発者は、Node.jsを使用してAlexaに独自の「スキル」を作成できます。 すでに何万ものスキルがありますが、エコシステムはまだ非常に若く、すべてが始まったばかりです。 テイラーは、どのように記述し、ローカルでテストし、基本スキルを正しく展開するかを示します。 また、どのデザインパターンがスキルに最適であるかも把握します。
エフゲニー・グセフとイリヤ・タラトゥキン-マッド・ドッグス、シーズン2:React vs Vue
「匂いがする? これはフロントエンドです、息子。 そんな臭いは世界にはもうありません。
朝のフロントエンドの香りが大好きです。 1つの機能を12時間連続でリファクタリングすると、 そして、それがすべて終わったとき...単一の変更されていないファイルはありませんでした。
いつかこのフレームワーク戦争は終了します...」
はい、私たちは再びあなたと一緒です! 今回、専門家のシニー(イリア・タラトゥキン)とゼレニー(エフゲニー・グセフ)が新たな高みに突入しています:私たちの昔の知り合いである星条旗のReactは、急速に進むVueのフロンティアを守ろうとしています。 あちこちで爆発があり、フロントエンドのベンダーがあちこちにあります...それで、このアナロジーは行き過ぎです。 簡単に見てみましょう。2つのフレームワークを見て、それらがどのように似ているか、どのように異なるか、誰がこの戦争に勝つかを理解してください。
Roman Dvornov-コンポーネントカタログ:再考
Romanが勤務するAvitoでは、コンポーネントのカタログを開発しています。 このレポートは、「なぜ?」という質問に対する答えです。すでに既成のソリューションがある場合。 対処すべきトピック:
- コンポーネントの提示方法、その機能のデモ、このための技術的ソリューション
- デザイナーや開発者に役立つ機能
- コンポーネント、メタ情報の収集と結合、知識ベースの編成を識別する方法
- コンポーネントの場所とコードの所有権に関する情報
- カタログの境界を越えて、他の内部サービスとの「友情」
Sergey Nikolaev-React.jsを使用したThree.jsアプリケーションの開発
React.jsは、複雑なユーザーインターフェイスを開発するための優れたAPIを提供します。 ほとんどの開発者は、これを使用してDOMを開発することに慣れています。 ただし、React Reconcilerははるかに強力で、3次元シーンの構築や、宣言型React.js APIのおかげでできる限り単純化されたキャンバスコンポーネントの作成など、さまざまな目的でカスタムレンダラーを構築できます。
Nikolay Matvienko-エンタープライズのNode.js
エンタープライズアプリケーションアーキテクチャは進化しており、Node.jsはすでに企業で広く使用されています。 Nikolayは、大規模なエンタープライズeコマースプロジェクトでNode.jsを実装した経験、使用した技術ソリューション、受け取ったメリット、モノリシックアーキテクチャの段階的な再プラットフォーム化と断片化のプロセスについて説明します。
Kirill Cherkashin-JavaScript抽象構文ツリーの操作
モスクワで生まれたキリルは、現在ニューヨークに住んでおり、Google for Firebaseで働いています。また、世界最大の角度ミタップを開催しています。 この講演では、彼は構文に基づいてJavaScriptコードを解析および変換する方法を調査し、結果の抽象構文ツリーを操作します。 例ではbabelとESLintを使用します。
Imad Elyafi-モバイルWebを復活させる
Imadが現在作業しているPinterestでは、モバイルWebバージョンが大幅にやり直され、11週間管理されています。 その結果、ネイティブアプリケーションに近い結果が得られ、同時に高速ダウンロード速度を維持することが判明しました。 ユーザーエンゲージメントの指標は急上昇しています。 しかし、この道にはバラが散らばっていなかったので、イマドは彼らが道に沿ってどのような困難に遭遇し、どのように克服されたかを教えてくれます。
Alexey Bogachuk-ソリューションアーキテクチャとJavaScript
多くの場合、JavaScriptのアーキテクチャは、フロントエンドの世界の最新のトレンドに応じてフレームワークを選択することになります。 そして、技術の選択が設計決定を下すための第7ステップにすぎないと言ったら? 誤って選択されたアーキテクチャにより、多くのプロジェクトが毎日損失を被ったり、ばらばらになったりします。
Alexeyは、現代のアプリケーションにおけるアーキテクチャのビジョンと重要性を正しく定式化するのに役立つストーリーを共有し、プロジェクトを単純に破壊する可能性のあるミスを回避します。
Evgeny Pozdnyakov-RxJS:大規模アプリケーションでのパフォーマンスとメモリリーク
RxJSとその哲学について話しましょう。 RxJSを使用する場合に発生する可能性のあるメモリリークと主要なエラーについて。 大規模なAngular 4アプリケーションでRxを使用した個人的な経験と、メモリリークを修正して回避する方法について。 これについて話す人はほとんどいません。ドキュメントにはほとんど何も書かれていません。 また、RxJSで何をすべきか、また何をすべきでないかについても説明します。
セバスチャン・ゴラシュ-EME? Cdm? DRM? CENC? IDK!
このレポートでは、EME(Encrypted Media Extension)、WidevineなどのCDM(Content Decryption Modules)、およびDRM(Digital Rights Management)などの恐ろしい略語の背後にある技術的な詳細について説明します。 これをどうやってやるの? Netflixリバースエンジニアリングと独自のNetflixビデオプレーヤーの作成!
Denis Radin-ブラウザーでの暗号のマイニング:GPU、WebAssembly、JavaScript、および試すべきすべての良いこと
たとえば、HolyJSの訪問者は、「ピクセルシェーダーのUIコンポーネント」というレポートに既に精通しており、彼の主な仕事はフォトリアリスティックなWebゲームに関連していますが、今ではまったく異なるトピックについて話しています。 1年前、彼は「GPUを使用してブラウザーで暗号通貨をマイニングすることは可能ですか?」という質問について相談を受け、デニスはこの質問を調査しました。
二日目
Dmitry Patsura-React Native Deep Inside
Dmitryは開発に豊富な経験があり(React / React Nativeに加えて、PHP、C、C ++、Goを手荷物に入れています)、React Nativeについて最初に話したことはありません。 しかし、今回、既存の経験から離れて、彼は腸に登ります。 レポートの過程で、完全に没入できるように、iOSおよびAndroid用のネイティブモジュールがすぐに作成されます。
マキシムYuzva-ソフトスキル
このレポートは、「Elon Muskが世界最高のJavaScript、React、Angularを知っていれば、ロケットを打ち上げて着陸させることができますか?」という質問に答えます。
では、21世紀のエンジニアになるにはどうすればいいのでしょうか? EPAM Systemsのフロントエンドチームリーダー、雇用およびリソースマネージャーであるMaxim Yuzvaが語ります。 FrontSpotコミュニティオーガナイザーおよびBeerJSレギュラー。
Dmitry Bezhetskov-JSをElbrusに移植した経験
Elbrusプロセッサなどのエキゾチックな機能を使用したものはほとんどありません。 そして、Dmitryは彼に対処しただけでなく、UNIPROで、さまざまなJSコンパイラをV8 FullCodegenからSpiderMonkeyのIonに移植する経験を積んでいます。 会議では、プラットフォームに依存する新しい機能の移植とソーイングに関して、エンジンの長所と短所について話します。 一般的に、頻繁に聞こえないものについて-そのような異国情緒に興味がある場合は、レポートをスキップしないでください。
Sebastien Chopin Atinux-書かずにNode.jsのREST APIドキュメント
Node.jsを使用する場合、正しいAPIドキュメントの作成は非常に時間がかかる場合があります。 ただし、Swagger、OpenAPI、Postmanなどのソリューションがあります。 そして、セバスチャンは、開発者が開発に集中できるようにすることで、通常よりも強力にすべてを自動化できると考えています。 そして、カンファレンスで彼はあなたにその方法を正確に教えてくれます。
Vitaliy Friedman-ダーティリトルトリックスフロムザダークコーナーズオブeコマース
eコマースプロジェクトで何が問題になる可能性がありますか? はい、それですべてです。製品を選択してバスケットに追加することから、確認と実際に商品の配達を伴う手紙まで。 起こりうるエラーや誤解について、各ステップを慎重に検証する必要があります。
このレポートでは、Vitaliyがコンバージョンを増やす方法を検討し、いくつかの小さな助けを借りてユーザーエクスペリエンスを単純に改善します。 このレポートにより、既成のアイデアやアプローチを残すことができます。
Dmitry Karlovsky-コード実行の量子力学
クライアントのデバイスが低速で、UIスレッドで大量の重い操作を行う必要があるとします。
コードをスパゲッティに変えずに毎秒60フレームを達成する方法は?
より関連性の高いデータで繰り返し実行する必要がある場合、すでに開始されている計算をキャンセルするにはどうすればよいですか?
1ミリ秒から10秒までの要求に対する応答を計算するサーバーがあるとします。
リクエストごとにスレッドを作成せずに、高速タスクをブロックしない長いタスクを作成するにはどうすればよいですか?
クライアントが切断したときにすでに開始されている計算をキャンセルするにはどうすればよいですか?
スポイラー:スタックフルファイバーは、各タスクのCPU時間を16ミリ秒単位で与えるのに役立ちます。
Alexey Kozyatinsky-Chrome DevToolsを使用したJavaScriptデバッグ
AlexeyがChrome DevToolsチームのメンバーであり、そこでJavaScriptデバッグツールを作成および改善した最初の年ではありません。 また、レポートではこれらのツールについて説明します。Alexeyは、ブレークポイントから開始して非同期スタックとメモリプロファイリングで終了する方法について説明します。
Andrey Starovoit-TypeScript:なぜそんなに複雑なのですか?
講演では、TypeScript型システムの進化について説明します。 主な質問:
- どのようにすべてが始まりましたか?
- TypeScriptの型の何が問題になっていますか?
- ランタイムで一般的な情報を「ストレッチ」することは可能ですか?
- TypeScriptの型は他のプログラミング言語の型とどう違うのですか?
- 今後何を期待しますか?
ビクターバーシャンスキー-マングースの微妙さ:弁別者、入れ子になったスキーマ、バーチャル
学生は、Mongoose.jsに埋め込まれた均一であるが異種のデータ構造のライフサイクルで作業する原則に精通します。
マングースの基本:
-働くための基本原則とアプローチ。
-典型的な初心者の間違い。
理由と方法:
-仮想フィールドと仮想メソッド。
-ネストされたスキーマ。
-差別者。
Mikhail Poluboyarinov-2018年にJavaScriptに期待すること
1月、TC39委員会の別の会議が開催され、ES2018仕様が最終的に形成されました。 彼女に続いて、PiterJSのオーガナイザーであるMikhail Poluboyarinovと、HolyJSプログラム委員会のメンバーである18年の経験を持つ開発者であるIT Global Meetupのパフォーマンスが行われます。
Denis Kolodin-Yew:単一ページアプリケーションを作成するためのRust + WASMフレームワーク
このレポートは、 Yewフレームワークがどのように開発されたかを示します。ReactとElmの類似物で、完全にRustで記述され、正直なWebAssemblyにコンパイルされています。 Rustデータの所有権の規則とRustをWebAssemblyに変換する際の機能のおかげで、状態をコピーする必要なしに、ガベージコレクタなしでフレームワークを作成し、効果的に不変を確保できます。
Lyza Danger Gardner-ウェブ注釈:ウェブの会話レイヤー
W3C標準になったWeb注釈は、Webを介した通信のためのレイヤーを作成するように設計されています。 理論的には、誰でも任意のインターネットコンテンツに注釈を付けることができます。これは、インターネット自体の精神における高潔な目標であり、民主的で、オープンで、標準化されています。
しかし、この無料では、困難が伴います。 コンテンツを公開する人は、それについて人々が言うことに対するコントロールを失います。 また、標準自体は、トロールによる議論のキャプチャからの保護を意味するものではありません。 Web Annotationの進化は、インターネット全体の進化をミニチュアで示しています-セキュリティ、識別、および自由の問題は同じです。
最後に、レポートの説明を提供する準備がまだできていない3つのケースがありますが、何か言うことができます。
最初に、 Alexey Kalmakovはトピック「オフラインVSオンラインクライアント速度メトリック」を提示します。
第二に、 ニコライ・リジコフは別の講演者になります:ClojureおよびFProgコミュニティの活動家、FHIR標準開発委員会のメンバー、Health SamuraiプロジェクトのCTO。
そして第三に、 イリヤ・クリモフの報告が会議を終了します。 それに先立ち、彼はHolyJSで「厳格な」JavaScriptというテーマで話をしました。「タイプ対現実」であり、 ビデオの 6,000回の視聴はそれ自体を物語っています。 おそらく、今回はそれほど興味深いものではないでしょう。
HolyJSで必要なものがようやく実現した場合は、サイトでチケットを購入できます 。 まだ理解しておらず、さらに情報が必要な場合(レポートの正確なスケジュールなど)は、そこで見つけることができます。