先日、Facebookは 膨大なプルリクエスト をReactにマージして、既存のビルドシステムを Rollup ベースのシステムに移行しました。 その結果 、 何人もの人々 から「なぜwebpackではなくRollupを選んだのか」という質問が寄せられました。 これは、もっともな疑問でしょう。 webpack は、近年JavaScriptコミュニティで最も評価されているツールの1つです。毎月のダウンロード数は何百万件にもおよび、何万個ものウェブサイトやアプリケーションに使用されています。巨大なエコシステムがあり、コントリビュータも多くいます。さらにオープンソースプロジェクトとしては珍しく、 かなりの寄付金 が集まっています。 それに比べるとRollupは小規模です。しかしReact以外にも、Vue、Ember、Preact、D3、Three.js、Momentなど、数々の有名なライブラリに
Node@10.5.0で入った worker の話です。 この記事は、Roppongi.js #4の登壇資料です。 5min で話しきれないので記事にまとめました。 実は、自分が Node.js に関わって、最初から最後(今現在)までずっと追っている珍しいモジュールです。 worker_threads とは? worker: initial implementation by addaleax · Pull Request #20876 · nodejs/node Hi everyone! 👋 This PR adds threading support for to Node.js. I realize that this is not exactly a ... 実装著者は Anna (この PR は io.js 時代に petkaantonov が実装したのをベースに現環境へ移した
何年も前、SeleniumやWebDriverの話で盛り上がった記憶があります。ただ、その当時はまだRailsなどバックエンド中心の文脈でした。今、フロントエンドに軸足が移る中、ブラウザテストの状況はどうなったのでしょう? 不思議なことに、フロントエンド界隈でそれほど話題に上がって来ないですよね (私の周りだけ?)。結構大事なのに。実は皆さん、「Seleniumアレルギー」なんじゃないですか? 公式サイトに漂う ゼロ年代感(下図)。Javaへの躊躇、「めんどくさい」と聞かされ続けた過去、無意識に避けてしまうのがSeleniumです。 ただ、フロントエンドの文脈でこそ、ブラウザテストは重要度を増しています。そこで「Selenium触りたくない病」の筆者が、 四苦八苦した背景 と、2016年だからこそ 見えてきた落とし所 を書いてみたいと思います。 註: 思ったより長文になってしまいました。先
2018-06-22社内勉強会 TechLunch で"JavaScript AST ことはじめ"という発表をしましたみなさん、こんにちは。開発本部エンジニアの平木です。こちらのブログの投稿自体はほぼ 1 年ぶりになりそうな勢いですが、みなさまお元気でしょうか? 弊社で定期的に開催してる社内勉強会 TechLunch で自分の順番が回ってきたため、どうしようか迷った末にJavaScript AST ことはじめという発表をしたので、そのことについて書いていきます。 なぜ JavaScript AST について話そうと思ったのか現在、弊社のエンジニアメンバーのバックグラウンドで一番多数派なのは「元サーバサイドエンジニア」です。もちろん、業務ではサーバサイド・フロントエンド・ネイティブアプリとバックグラウンドに関わらず、必要に応じて分け隔てなく開発しています。 とはいえ、ちゃんとサービス開発自体
発端 npm@5 になるときに、 prepublish の挙動が大きく変更されました。 Node.js の 8.x が LTS になった当時、Node.js@6 は npm@3 でしたが、Node.js@8 では npm@5 になるため、 その内容をちゃんと把握できていなかったので、調べました。 作業して結果をまとめたリポジトリがあるので、それの日本語訳+アルファ を書きます。 "ステップ4" と "ステップ 5" とはなにか まとめを読むのに必要な用語(?)なので、先に説明しておきます。 https://github.com/npm/npm/issues/10074 で言ってるやつです。 ステップ 4 は、 In a year or so, make a semver-major bump to npm and make prepublish's behavior match prepu
This article describes some key fundamentals that are common to all JavaScript engines — and not just V8, the engine the authors (Benedikt and Mathias) work on. As a JavaScript developer, having a deeper understanding of how JavaScript engines work helps you reason about the performance characteristics of your code. Note: If you prefer watching a presentation over reading articles, then enjoy the
この記事はECMAScript 2015の事始めとして、ライブラリをECMAScript 2015で書いて公開するというところから始めるのがいいのではという内容です。 ECMAScript 2015(ES2015)はES6とも呼ばれていてどちらも同じものを指しますが、この記事ではES2015に統一します。 ECMAScriptのバージョンについては次のページを参照してください。 ECMAScript · JavaScriptの入門書 #jsprimer 2018-12-27: 追記 textlint/textlint-rule-helperのmasterはTypeScriptの実装へ変換されています。 Babelの実装はhttps://github.com/textlint/textlint-rule-helper/tree/2.0.1から参照できます Babel から TypeScrip
JavaScript has been among the most influential technologies for almost a decade now. A lot of this is due to the sophisticated JavaScript engines in modern browsers, Node.js, and Electron. This talk explores important ingredients of these modern JavaScript engines, and focuses on the fundamental features that V8, Chakra, SpiderMonkey, and JavaScriptCore all have in common. Joint talk by @bmeurer a
これは、個人でどんなエディタを使うべきか、ではなく、「チームとして」新しいものを採用するとき、あるツールがエディタ横断で便利かどうかを考える必要がある。 自分個人としては、基本はAtomを使って、TypeScriptを書くときだけVS Code を使っている。ターミナルでは Vim。 環境でエディタを選ぶ 最近の新規プロジェクトでは、とくにブロッカーがなければ TypeScript を使っていいと思う。TypeScript を使うなら当然 VS Code を使うことになる。Atom や Vim でもいいが、TypeScriptのエディタとしては、流石に完成度が頭一つ抜けてる。JavaならJetBrains 的なノリで、TSならVSCode、そういうものと思ったほうが楽。 TS以外なら、エディタはなんでもいいが、ある程度流行ってるものでないとエコシステムに追いついてくれない。 prettie
JavaScriptで非同期処理をasync/awaitを使って同期的なスタイルで書いていると、すべてのコードをそのスタイルで統一して書きたくなる。なので非同期処理を開始して実行を明け渡したいときはもちろんawaitを使うし、非同期処理に失敗したときはtry-catch構文で例外ハンドラに制御が移るようにする。ただ、同期的なスタイルで書けない処理が存在するために、どうしてもすべてを統一することはできない。Direct styleで書けないcontrolは継続渡しスタイル(CPS)を使って書くしかないからだ。 JSの場合でいうと、並行制御周りがそれにあたる。Promise.all() や Promise.race() などは対応する構文がJS側に存在しない。 例えば Promise.all() に対応する awaitall みたいな構文が言語側に欲しくなる。こんなふうに: const [x,
超強力な関数型プログラミング用ライブラリ Ramda.js を学ぼう #2 - lens でオブジェクト操作も思いのまま wakamsha lens とは? 端的に言うと、 getter や setter を関数型プログラミング的に抽象化したものです。対象となるオブジェクトや配列の特定のプロパティやインデックスからデータを取得したり変換することが出来ます。と、これだけ聞くと何の凄さも伝わってきませんが、ネストの激しい複雑なデータ構造に対して不変性を保ちつつアクセスできるというのが一番の特徴として挙げられます。 元々は Haskell に lens というパッケージがあり、これを Ramda.js の API として実装したものだと思っていただければ OK です。 参考: lens: Lenses, Folds and Traversals 諸説ありますが、対象のプロパティに対し『レンズのよ
TL; DR JavaScriptでブラウザゲームを作りました。 UFOを操作して動物を誘拐するゲームです。 TwitterのOGPを設定すると、ツイートに埋め込むことができます。 『Alien Abduction』 こちらからプレイできます。 https://alien.laineus.com/ 画面をタップするだけのミニゲーム的なやつです。 ツイートに埋め込む なんとツイートに埋め込むことができました! UFOを操作して動物を誘拐するゲームを作りました! PCだとタイムライン上で直接プレイできます↓ Alien Abduction https://t.co/7qAtPXTnGj #phina_js — らいね (@Laineus) 2018年4月25日 (↑ぜひリツイートお願いします!) TwitterのOGPのカードタイプに、playerというものがあり、オリジナルの音声・動画プレイ
Transcript ϑϩϯτΤϯυͷٕज़બఆ� 3PQQPOHJ�KT��� None ࠷ۙͷϑϩϯτΤϯυք۾ʹ� ͋Γ͕ͪͳ ࠷ۙͷϑϩϯτΤϯυք۾ʹ� ͋Γ͕ͪͳ w7VFͰ͠ΐʂ� w"OHVMBSͰ͠ΐʂ� w3FBDUͰ͠ΐʂ� ɾɾɾͱܾΊ͚ͭͯ͠·͏ ͲΕૉΒ͍ٕ͠ज़ None ͱ͍͑ଟ͘ͷϑϩϯτΤϯυٕज़͕� ଘࡏ͍ͯ͠ΔதͰ� Ͳ͏ٕͬͯज़બఆΛ͍͚ͯ͠ྑ͍͔ʁ (JU)VC�4UBS (JU)VC�4UBS w(JU)VCϦϙδτϧͷӈ্ʹ͋Δɺ ϦϙδτϦͷਓؾΛද͢�ͭͷࢦඪ� wࣈ͕ଟ͍͔Βͱ͍ͬͯɺաͳ৴༻͠ͳ͍� wϦϙδτϦ࡞͕͔ͬͨΓɺ ϢʔϞΞ͕͋Δ͚ͩͰελʔ͕ଟͭ͘͘߹ (JU)VC�1VMTF (JU)VC�1VMTF w(JU)VCϦϙδτϦ����*OTJHIUT����1VMTF� wϦϙδτ
V8 uses code caching to cache the generated code for frequently-used scripts. Starting with Chrome 66, we are caching more code by generating the cache after top-level execution. This leads to a 20–40% reduction in parse and compilation time during the initial load. Background #V8 uses two kinds of code caching to cache generated code to be reused later. The first is the in-memory cache that is av
ちょっとタイトルが言いすぎていて大反省です (適宜アップデートします, 仮)
Recently we’ve seen how WebAssembly is incredibly fast to compile, speeding up JS libraries, and generating even smaller binaries. We’ve even got a high-level plan for better interoperability between the Rust and JavaScript communities, as well as other web programming languages. As alluded to in that previous post, I’d like to dive into more detail about a specific component, wasm-bindgen. Today
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く