タグ

javascriptに関するterazzoのブックマーク (313)

  • JavaScript で遅延評価を導入して起動を高速化した話

    この記事は、JavaScript で Flash Player の実現を頑張った(もしくは現在進行系で頑張っている)人たちの集う Flash Advent Calendar 2020 に参加しております。 Flash Player を JavaScript で実装していた際に、現場から「起動の高速化」という難しい要求をもらった際、「遅延評価」を導入したところ大変効果がありました。今回、その遅延評価について簡単なご紹介をしたいと思います。 Flash Player 起動までのステップ 当時 Flash Player を JavaScript で提供していた際、当時のスマートフォン端末においてロード完了から最初の画面が出るまで大体 150ms くらいかかっていました。普通の Web ページであれば 150ms はロード時間の中に吸収され許容範囲になる可能性が高いのですが、当時 Flash Pl

  • lodashの代わりにjustを使う

    なるべくlodashを使わず標準の機能で済まそうとしている[^1]が、どうしても標準だと面倒で欲しくなるケースがある。 例えば1つの配列をn個に分ける_.chunkなどはちょうどよいだろう。 You Dont Need Lodash Underscoreを参考に自前実装すると最低でもこのぐらいは必要だ。 const chunk = (input, size) => input.reduce((arr, item, idx) => idx % size === 0 ? [...arr, [item]] : [...arr.slice(0, -1), [...arr.slice(-1)[0], item]] , []);

    lodashの代わりにjustを使う
  • JSフレームワーク事情2020年始め|erukiti

    この記事では面倒なので名前に .js が付いているものは省きます。例えばNext.js は Next と表記します。 まず結論から日ではVueReactと二分する人気があるように観測されますが、世界的な数字で人気・シェアを見るとReactが圧倒的です。 シェアだけで見るとAngularAngularJS(Angular系の1.x系)の合計値はVueよりも高いですが、「今後はもう採用したくない」と考える率が高く、Angular/AngularJSの人気が低下しているということは間違いありません。 ※追記: Angularのシェア、人気度に関しては、Angular及びAngularJS両方を含む数値であり、AngularJSとAngularは別物であるものが混ざってカウントされているため、Angularのシェア及び人気度はあやふやかもしれません。他の数値に関して信頼性を疑うべきかどうかは

    JSフレームワーク事情2020年始め|erukiti
  • Callback を撲滅せよ

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。言語サポート(Node.js)チームの伊藤(@koh110)です。 Node.js v10 も10月にLTSとなり async/await によるフロー制御は当たり前のように利用されるようになってきました。JavaScriptの非同期処理は async/await から覚える人も今後増えていくでしょう。今回はそんな非同期処理について、社内での事例を交えて記事を書いていこうと思います。 index Promise 化がなぜ重要なのか ユーザーに promisify をさせる落とし穴 Road to Promise まとめ Promise 化がなぜ重要なのか ちょうど3年前のアドベントカレンダーで、今後はいろいろなモジュー

    Callback を撲滅せよ
  • 今年、JavaScriptでの仕事の幅を広げた技術6選 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは。久しぶりのQiita投稿です。 今回は「ex-KAYAC Advent Calendar」の13日目の記事として寄稿させていただきます。 さて、改めて私の今やっていることを紹介させていただきますと、独立してから株式会社Lucky Brothers & co.という会社を設立し、主にWebの受託制作を行っています。 かれこれ3期目に突入致しました。 アドベントカレンダーということで改めて2018年という年を振り返ってみたのですが、一言で言うと「今年はフロントエンドエンジニアにとって大きな当たり年であった」と言えるのではないかと

    今年、JavaScriptでの仕事の幅を広げた技術6選 - Qiita
  • Node.jsにおけるプロトタイプ汚染攻撃とは何か - ぼちぼち日記

    1. はじめに 最近わけあってNodeのセキュリティ調査をしているのですが、今年の5月に開催された North Sec 2018 でセキュリティ研究者の Olivier Arteau 氏による 「Prototype pollution attacks in NodeJS applications」という面白い発表を見つけました。 この発表の論文や発表資料、デモ動画などもgithubで公開されていますし、ちょうどタイミングよくセッション動画も最近公開されました。 github.com Olivier Arteau -- Prototype pollution attacks in NodeJS applications この発表で解説されているのは、悪意のある攻撃者が、JavaScript言語固有のプロトタイプチェーンの挙動を利用して、Webサーバを攻撃する方法です。 発表者は、npmからダ

    Node.jsにおけるプロトタイプ汚染攻撃とは何か - ぼちぼち日記
  • JavaScriptフレームワーク選定の議論 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 相談内容 既存の管理ツールを新しく作り直すために新しいJSフレームワーク/言語使いたいのですが、何を選んだらよいでしょうか? ここで選んだものは今後新しく作る時にも使用していく予定のため、学習コストよりメンテナンスしやすいものを選びたいと考えています。 利用者は社内外で特定の権限を持った人のみであるため、サーバサイドレンダリングはしない予定です。 言語は型があるものを利用したいのですが、TypeScriptとFlowのどちらがよろしいでしょうか? 時間に余裕があれば、テストフレームワークやビルドツールについてもお聞きしたいです。 現在の

    JavaScriptフレームワーク選定の議論 - Qiita
  • 結局VanillaJSである。 - nobkzのブログ

    anond.hatelabo.jp nida3001.hatenablog.com 上記のブログに刺激されて私もフロントエンドというかJavaScriptに対する思いを綴ったポエムをば。しかし、なんか書くのダルいので、大分大雑把にかくぞ。 さて、さっそく結論を述べよう。今のフレームワーク論争やらに対する解決策はVanillaJSを使うってことである。 フロントエンドSPAのフレームワークについて まず、今のほとんどのフレームワークが使えないってのはそのとおりである。その話してみよう。その理由は、「フロントエンド」 ってのは一括りにできないからである。「ハッカーと画家」のとある言葉をアレンジして言えば「フロントエンドはユーラシア大陸のようなものである」。フロントエンドが関わる範囲が大きすぎるのである。ヨーロッパもあればアジアもあれば中東もあるという感じである。 範囲が大きすぎて、フレームワー

    結局VanillaJSである。 - nobkzのブログ
  • フロントエンドが嫌い

    ウェブフロントエンド技術の進歩と興亡の速度には目を見張るものがある。 browserifyが生まれ、Gruntが生まれ、Gulpが生まれた。 そしてその全てが死んだ。 Webpack, Babel, Flow, 今栄えている技術だってそのうちに死ぬだろう。Reactだって例外ではない。 一部はもう死につつあるし、少し前にあれだけ持て囃されたTypeScriptも今や消えつつある。Coffeeは全エンジニアから嫌われた。 そんな万華鏡のように目まぐるしく変わる情勢に追い付かんと研鑽を続ける者等がいる。アーリーアダプターを自称し最新技術のケツを追いかけQiitaにクソを垂れ流す彼らこそ我らがイケイケウェブフロントエンジニアである。 最新技術に目を凝らし、やれ新たなこれイケてるだの古臭いあれはイケてないだのと宣いチュートリアル記事を量産する彼らであるが、彼らの存在は決して無駄ではなく、生まれた

    フロントエンドが嫌い
  • 脱jQueryのためにしたこと - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    脱jQueryのためにしたこと - Qiita
  • ソースマップの自作は割とコワくない。 - Qiita

    「めんどくさそう」先入観で敬遠していたのですが、仕様を見たらそんなでもなかったので書き残しておきます。手っ取り早くコードを見たい方はこちらをどうぞ。 ユーザとして、ソースマップに接する機会は多いですが、AltJSを作るとかでもない限り、あまり提供側に回ることはないかもしれません。私自身、次のような疑問というか誤解を抱えたまま、深入りしなかったクチです...。 誤解1: ソースマップを作るにはASTを作る必要がある → 実際はもっとシンプル 誤解2: なんかすごいエンコード(AAAA;AACA;AACA;AACA...)がされてる → ただのBase64 よく見かけるソースマップの説明記事(というほど、記事自体ないけれど)では、「ソースを構文解析してASTを構築して...」という手順が出てくるのですが、 ソースマップにASTは必要ありません。 もちろん、実際にAltJSを作るならASTの作成

    ソースマップの自作は割とコワくない。 - Qiita
  • JavaScriptはフレームワークについて考え直すときが来ています - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? JavaScriptはフレームワークについて考え直すときが来ています / Svelteを使ってみた これはFrameworks without the framework: why didn't we think of this sooner?の日語訳です。 フレームワークのないフレームワーク 何故我々はこの可能性をもっと早く考えなかったのか 素のJavaScriptでは重要なアプリを書こうとしても必ず壁にぶつかってしまう。 でもコンパイラなら…コンパイラならきっと何とかしてくれる…!! 待って、このFWはランタイムが入ってるのかい?

    JavaScriptはフレームワークについて考え直すときが来ています - Qiita
  • JavaScript界隈の流行の変遷を調査する時は「npm trends」がオススメ - Qiita

    最近は比較的ゆったりしていますので、以前ほど頻繁にみることもなくなりましたが、JS界隈の最新の状況は気になるもの。 そういった時の実際のトレンド調査には、Googleトレンド ではなく 、npm trendsの利用がオススメです。 npm trendsとは? npm trendsは、npm上に登録されているパッケージのDL数の変遷をグラフとして可視化し、比較までができるWebサイトです。 これまでも、Googleトレンドなどで調査は可能でしたが、これらはあくまでも「検索ボリューム」の話でした。 しかしながら、このnpm trendsを利用することによって、検索数やブックマーク数などの「興味を持っている人の数」ではなく、「実際に使ってみている人の数」を見ることができます。 話題ではあるものの、利用者がまだそこまで多くない技術というのは少なくありませんので、事前調査の一つの指標として、非常に有

    JavaScript界隈の流行の変遷を調査する時は「npm trends」がオススメ - Qiita
  • Essential Electron : Electronの簡潔・平易な概要 | POSTD

    Electronとは? Electronは JavaScriptHTMLCSS を使ってデスクトップアプリケーションを作ることができる ライブラリ です。作ったアプリケーションはMacWindowsLinuxで動かせます。 次は: なぜ重要? 定義: JavaScriptHTMLCSS はWeb用の言語で、Webサイトの基的な構成要素です。Chromeなどのブラウザは、コードをふだん目にするグラフィックに変えて表示します。 Electronはライブラリです Electronはコードですが、再利用でき、自分で書き起こす必要がありません。ユーザはその上にプロジェクトを構成します。 参考資料 Apps built on Electron Electron API Demos (Electronで何ができるかをみてください) なぜ重要? 一般に、デスクトップアプリケーションは各オペレ

    Essential Electron : Electronの簡潔・平易な概要 | POSTD
  • 革命と秩序とSPA

    Frontend Meetup vol.1 LT http://connpass.com/event/38112/ react + flux + floetypw

    革命と秩序とSPA
  • Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsの仕組みとコーディング例

    Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsの仕組みとコーディング例 清水智公(Mozilla) 連載の第1回目は asm.jsの紹介と、asm.jsが導入された背景を概観しました。 Just in Timeコンパイルによって高速にJavaScriptを実行できるようになりましたが、立ち上がりが遅い、やり直しが発生する、コンパイルによって一時的に負荷が向上する、といった問題が残されています。 これを解決するためにプログラムの実行を行うより前にネイティブコードへとコンパイルするAhead of Timeコンパイルを導入したいのですが、JavaScriptは柔軟すぎて効率の良いネイティブコードを出力することが難しい、という問題がありました。 asm.jsはこの問題に一定の解をあたえるものとなります。今回はそのasm.jsがどのようなも

    Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsの仕組みとコーディング例
  • phiary

    phi I'm a Game Programmer and Frontend Engineer passionate about programming education. Math / C / C++ / C# / JavaScript / HTML5 / CSS3 / Python はじめに 「webpack インストールしといてー」, 「gulp 導入して watch しながら開発してー」, 「React だから ES6 でコード書いてー」 最近こんな会話が当たり前のように現場で飛び交っています. フロントエンドの開発者には HTML, CSS に特化している人 (coder, markup engineer) JavaScript は得意だけど CSS はちょっと弱い人 (javascripter) HTML, CSS, JavaScript 全てを統べる者 (frontend

    phiary
  • RxJS の代わりに xstream を使う - Qiita

    xstream を開発する動機 xstream の開発者である Staltz さんは RxJS のコントリビューターでもあり、RxJS を使ったフレームワークである Cycle.js の作者です。Staltz さんは WHY WE BUILT XSTREAM の記事のなかで xstream を開発する動機を述べています。 ストリームとは何か、リアクティブプログラミングとは何かについては「あなたが求めていたリアクティブプログラミング入門」の記事が参考になります。「Everything is stream」(すべてがストリーム) がマントラです。 xstream の位置づけは RxJS を補うものであり、一般的なリアクティブプログラミングの用途では RxJS のほうがすぐれているとのことです。 xstream のオペレーターの数は RxJS と比べて少なく、初心者にわかりやすい直感的な名前にし

    RxJS の代わりに xstream を使う - Qiita
  • async関数が実装された - JS.next

    概要 非同期な処理を同期的に書ける関数タイプが実装された。 基 「async」キーワードに続けて関数定義を書くと、async関数となる。 async function afn1() { } afn2 = async () => { } obj = { async afn3() { } } async関数を呼び出すとプロミスが返される。 console.log( afn1() ) // <Promise> このプロミスは、async関数が終了するとその返り値で解決され、例外が起こると棄却される。 async function afn4( flag ) { if ( flag ) return 'Yes' else throw 'No' } afn4( true ).then( v => console.log( v ) ) /// "Yes" afn4( false ).catch( v

    async関数が実装された - JS.next
  • Observableってなんなんね? - パステル色な日々

    ついにRCのリリースも間近となったAngular2ですが、私はこの間のハンズオン以来全然触れてません。 少しづつ触っていきたいものですが、ここ最近の勉強会の経験からAngular2を学ぶならWebの最新技術を学ぶことが大切なのだとわかったので、まずは、Observableを調べてみようと思います。 学習教材を探す Observableについて学ぶぞ!と意気込んでみたもののどうやって学べばいいのでしょう。 どこかにObservableの正体について書かれた資料はないでしょうか。 github.com ここにObservableがリストアップされています。 TC39、ECMAScriptを策定してる組織です。ECMAScriptはJavaScriptの仕様だと前に教えてもらったことがあります。 どういう人達なのか 何が目的なのか そのために何をしているのか 思うことはいろいろありますが、とりあ

    Observableってなんなんね? - パステル色な日々
    terazzo
    terazzo 2016/04/25
    C#のRxとおんなじ感じっぽい