Manage the Cost of Javascript - by Paipo Tang (Front-end engineer @ Mercari) Tech talk given on the Mercari Global Engineers Meetup on Jan 25, 2019.

Manage the Cost of Javascript - by Paipo Tang (Front-end engineer @ Mercari) Tech talk given on the Mercari Global Engineers Meetup on Jan 25, 2019.
2019年7月6日、株式会社サイバーエージェントが主催するイベント「Battle Conference U30」が開催されました。30歳以下のエンジニアによる30歳以下のエンジニアのための技術カンファレンスである本イベントには、さまざまな領域で活躍する若手が登壇。企業の枠を超えて、自身の技術・事業・キャリアに関する知見を発表しました。「複数プロダクトで利用する共通ライブラリの戦略と運用経験」に登壇したのは、株式会社CureApp・井上真吾氏。登壇資料はこちら CureAppは「アプリで治療する未来を創造する」 井上真吾氏:みなさんおはようございます。さっそくですが「複数プロダクトで利用する共通ライブラリの戦略と運用経験」という題でトークさせていただきます。よろしくお願いします。 まず自己紹介になります。井上真吾と申します。株式会社CureAppというところでチーフエンジニアをやらさせていた
第一部 JavaScript、その起源 1995年 NetScape社のブレダン・アイク氏が開発 ポケモン赤・緑とタメ 最初はLiveScriptって名前だった 「Javaっていう言語が超ナウいらしいぞ」 1995年にJavaによるブラウザWebRunnerが、HotJavaという名で世界に公開 NetscapeがJavaのサポートを表明 今、Javaが熱い!! 「せや!名前もらったろ!」 改名 LiveScript -> JavaScript 第二部 スクリプト戦国時代 ライセンスの乱 1996年 MicrosoftがIE3.0を発表「JavaScript使わせてやー」 NetScape社「だが断る」 Microsoft「ほな勝手に作るわ」 => JScript誕生 各ブラウザベンダが独自言語を実装する戦国時代へ Webエンジニアは血の涙を流す 想像図 「JavaScriptってどうよ?
YARN vs NPM (vs pnpm) in 2019: comparison and verdict A comparative analysis of the most used package managers for JavaScript and Node.js and what to use in 2019 In this article I'll talk about Yarn and NPM, arguably the most popular JavaScript package managers available as of today, with the precise intent of compare their respective features and explain what I'm (mostly) using nowadays and why:
JSer.info #446 - シングルページアプリケーション向けのJavaScriptフレームワークであるMithril 2がリリースされました。 Release v2.0.1 · MithrilJS/mithril.js 破壊的変更としてm.redraw()がデフォルトで非同期となり、代わりにm.redraw.sync()が追加されています。 その他にもm.withAttrの削除、m.requestが返すPromiseがサーバエラーの場合にもrejectされないように変更、IE10以下のサポート終了なども含まれています。 また、m.requestがtimeoutやresponseTypeのサポートなどの機能追加も含まれています。 Electron 6.0.0がリリースされました。 Release electron v6.0.0 · electron/electron Stable R
As one of the most popular programming languages and the staple of web development, JavaScript is constantly evolving and with each iteration it gets some fresh internal changes. Let’s check out some of the new proposed features of ES2019 that could soon find a way into our everyday code: Array.flat() You can now flatten nested arrays recursively up to a specified depth. The default value is 1 and
You can count on this guide to always be recent. We update it after every major change in React. It was last updated after the 17.0 release. Before you begin, please note that this is a beginner-friendly guide that covers the concepts I classify as fundamentals for working with React. It is not a complete guide to React but rather a complete introduction. At the end of this guide, I list a few nex
イテレータは今となっては多くのプログラミング言語に存在する概念で、繰り返し処理やループ、ストリームといった対象を抽象化してくれるものです。JavaScriptにはES2015でイテレータが追加されており、JavaScriptを触っている方にとっては既に馴染み深いものとなっています。 とはいえ、JavaScriptのイテレータにはひとつ問題点がありました。それは「イテレータを直接変換・操作できるメソッドが存在しない」という点です。従来イテレータが持つメソッドはイテレータから一つ値を取り出すnextメソッドのみであり1、それ以上の機能は何も提供されていませんでした。これにより、Rustなどのイテレータが強い言語に比べてJavaScriptのイテレータは有用性が大幅に低いものとなっていました。 この記事では、この問題を多少解消するプロポーザル「Iterator Helpers」を紹介します。これ
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます ソフトウェアを一度記述すれば、あらゆるスマートフォンやコンピュータで実行できるとしたら、どうなるだろうか。 実現までの道のりがまだ長そうな夢ではあるが、ウェブブラウザを汎用コンピューティングプラットフォームに変えて、極めて要求の厳しいアプリも実行できるようにする取り組みが進行中だ。 「WebAssembly」は、そのビジョンの実現に寄与するバイナリ命令形式であり、ブラウザのソフトウェア実行速度を「JavaScript」使用時の通常速度よりも10%~800%高速化する。 WebAssemblyが可能にするパフォーマンス向上により、非常に負荷の高いデスクトップソフトウェアもいずれウェブブラウザで実行できるようになるかもしれない。WebAss
じまぐ @nakajmg Frontend Engineer at PixelGrid Inc. + 副業 (元DMM.comラボ 7年前?
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Reactは便利なライブラリですが、ライブラリの想定を外れる使い方をするとうまく動かないとか、進化が続いているのですでに古くなってしまった書き方とかが存在します。 ここでは、そのような、Reactでやるべきでない書き方についてまとめてみました。 ★★★★ この「★★★★」は、「守らないと正常動作しなくなる」レベルのものについて扱います。 JSXを使うファイルでReactを用意し忘れる JSXはReact.createElementに変換されますので、直接アクセスしているように見えなくても、名前空間内にReactが必要です。 eslint
モバイルアプリに最適化した軽量JavaScriptエンジン「Hermes」、Facebookがオープンソースで公開。低スペックのスマートフォンでの実行速度を重視 Webアプリとして構築されているモバイルアプリケーションは、現在では非常に複雑で大規模なものになりつつあります。 これは同時に、アプリケーションのロードや起動にかかる時間が増大することに直結しており、特に発展途上国などで広く使われている低スペックなスマートフォンにおいてはその影響が顕著です。 Facebookがこうした大規模するモバイル向けWebアプリケーションの課題を取り除くべく調査したところ、JavaScriptエンジンを改善する必要があることを認識し、Hermesを開発することにしたと説明しています。(追記:ただし後述のようにHermesは現時点ではWebアプリケーション用ではなくReact Nativeのオプションとなって
原文(投稿日:2019/05/06)へのリンク Svelteフロントエンドフレームワークは先頃、Svelte 3をリリースした。Svelte 3では、ユーザーインターフェイスの実装に関連して、エンティティをリンクするインバリアントを宣言的に表現する、新たな方法を導入している。これによって開発者は、パフォーマンスを意識して再レンダリングを実施したり、状態依存の部分を意識的に同期するような処理が不要になる可能性がある。新しいロゴとキャッチフレーズ、Webサイトも用意された。Sapper(Svelteを搭載したNext.jsスタイルのアプリケーションフレームワーク)とSvelte Native (モバイルアプリケーション開発をターゲットとする)は、Svelte 3にアップグレードされている。InfoQは今回、Svelteの開発者であるRich Harris氏にインタビューして、Svelte 3の
Yahoo! ID連携(Yahoo! ID連携 v1,v2)をご利用の皆様 いつもYahoo! ID連携をご利用いただきありがとうございます。 不正アクセス防止のために改めて実装方法のご確認をお願いいたします。 ■Yahoo! ID連携を利用しサーバーサイドでユーザー認証を行う場合 下記のような実装方法をされている場合は実装のご変更をお願いいたします。 ▼脆弱性のある実装方法 フロントエンドのJavaScriptやiOS,Androidのネイティブアプリで ユーザー識別子(sub)を取得しサーバーサイドへ送信するような実装をしている場合、 第三者のユーザー識別子を送信することでそのユーザーとしてログインできてしまう可能性があります。 そのため、上記のような実装は推奨しておりません。 ▼推奨する実装方法 フロントエンドのJavaScriptやiOS,Androidのネイティブアプリではユーザ
V8のJSON.parseについて 最近(ちょっと前か)話題のオブジェクトリテラルよりもJSON.parseのほうが早い件について。 その理由を内部実装の観点から書く。 また注意点を最後に書いた。 話題のブログは以下から https://v8.dev/blog/cost-of-javascript-2019 パースについて V8はjavascriptコードをパースするにあたって、Lazy Parseを行っている。 Lazy Parse javascriptはブラウザという特殊な環境で実行される言語であるため、パースにも少々工夫が必要になる。 基本的にV8はすべてのソースコードをパースしない。 一旦グローバルスコープにあるものだけをちゃんとパースして、それ以外はPreParserというパーサで関数だけをかき集める。 function foo() { } function bar() { fu
News 2024-01-13: New release (Changelog) 2023-12-09: New release (Changelog) Introduction QuickJS is a small and embeddable Javascript engine. It supports the ES2023 specification including modules, asynchronous generators, proxies and BigInt. It optionally supports mathematical extensions such as big decimal floating point numbers (BigDecimal), big binary floating point numbers (BigFloat) and ope
Serving the right code to the right browsers can be tricky. Here are some options. Serving modern code to modern browsers can be great for performance. Your JavaScript bundles can contain more compact or optimized modern syntax, while still supporting older browsers. The tooling ecosystem has consolidated on using the module/nomodule pattern for declaratively loading modern VS legacy code, which p
フロントエンドの開発に用いられる人気のフレームワーク(ライブラリ)に、ReactとVue.jsおよびAngularがあります。これらフレームワークのフロントエンド開発における役割と、3つの違いについて簡単にご紹介します。 データバインディングとコンポーネント化 フレームワークReactとVue.jsおよびAngularは、いずれもHTMLの要素(DOM)をデータと関連づけて(データバインディング)、データの変化に応じた動的なページ構成を行います。 DOMの操作には、かつてはjQueryが用いられました(今だに、使われていることは少なくはないでしょう)。けれど、モダンブラウザが対応するECMAScript 2015(ECMAScript 6)以降でしたら、標準JavaScriptでもDOMの操作は難しくありません。 動的にページを構成するコンテンツの典型は、シングルページアプリケーション(S
ウェブ業界の当たり前だと思っていることでも、同業他社の人には違う常識があるかもしれません。自分が業界多数の傾向と違うところはどこなのか・・・ この連載ではアンケートデータから国内のウェブ業界の傾向を分析します。 連載第5回目となる本記事ではウェブ業界の「フロントエンドエンジニアにとっての2019年」と題してアンケート結果を紹介します。 JSでブラウザ挙動をどうやって防ぐ? ウェブページでインタラクションを作るときに、ブラウザのデフォルト挙動が邪魔になることがあります。たとえば、aタグのリンクはJavaScriptでキャンセルでき、自前の処理に置き換えることができます。 ブラウザ挙動のキャンセルのやり方にはさまざまな手段があるのですが、主流のやり方はどれでしょうか? addEventListener()メソッドやonclick属性のイベントについて質問しました。 187票の回答があり「ret
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く