並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 282件

新着順 人気順

awaitの検索結果81 - 120 件 / 282件

  • 並列/並行基礎勉強会でasync/awaitをDisってきた - ぐるぐる~

    async/await不要論 from bleis tift 3/23 に開催された、並列/並行基礎勉強会で「async/await 不要論」という発表をしてきました。 一番言いたかったこと 一番言いたかったことは、実は並列とかとは全く関係ないことです。 それは、言語への機能追加に関することです。 C# は 5.0 で非同期処理のための専用の構文として、async/await を導入しました。 これは、F# が計算一般という抽象度の高いものための汎用的な構文として、コンピュテーション式を採用しているのとは対照的です。 専用の構文を用意するかしないかは、その言語を取り巻く環境次第です。 専用の構文の利点と欠点 専用の構文の利点は、その使用用途が明確であるというところにあります。 そのため、書き方さえ覚えてしまえば、その裏で何がどうなるかなどを一切気にせずに使えてしまえたりします。 欠点は、専

    • Next.js + esa.io + VercelでJAMStackな爆速ブログを構築する - パンダのプログラミングブログ

      追記: 本記事がesa.ioの公式Twitterに取り上げられました! esaに書いた記事をNext.jsで公開する Next.jsのバージョン9.3から、ビルド時に外部ソースからデータを取得するgetStaticPropsというAPIが公開されました。 ブログは静的なコンテンツです。ブログの内容はユーザーに応じて動的に変わるということはありません。そして、getStaticPropsは静的なページを構築するために最適なAPIです。 そこで、esaにmarkdownで書いた記事をNext.jsで表示するサイトを構築しました。 実際にサイトにアクセスして記事を開いてみてください。爆速で遷移するのが体験できます。Lighthouseの成績もバツグンです。(blog-starterをベースに利用したため、コンテンツはそのレポジトリの内容を踏襲しています) デモサイトのコードはGitHubにアップ

        Next.js + esa.io + VercelでJAMStackな爆速ブログを構築する - パンダのプログラミングブログ
      • ES6 Generatorを使ってasync/awaitを実装するメモ - maru source

        こんにちは丸山@h13i32maruです。 ES6のGeneratorを勉強する題材としてasync/awaitを実装してみたので、そのメモです。 Genratorとは ES6のGeneratorとは「任意の時点で処理を中断/再開することができる関数」というもの。一般的にはコルーチン(coroutine)と呼ばれるもので、サブルーチン(通常の関数)を一般化したもの。ES6でGeneratorを理解するには3つのキーワードがある。 Generator Function 処理の中断/再開が行われる特殊な関数 function* generatorFunction(){}のようにfunction*を使って定義する Generator Object 中断された処理を再開したり、値を取得し対するオブジェクト var generatorObject = generatorFunction()のように取

          ES6 Generatorを使ってasync/awaitを実装するメモ - maru source
        • Promiseとasync-awaitの例外処理を完全に理解しよう - Qiita

          はじめに JavaScriptは非同期処理との闘いです。 人類が非同期処理を倒すために、Promiseやasync-awaitという最終兵器を生み出して、劇的にクリーンで平和な世界が生まれたという話は以前しました => (もしかして: JavaScriptは如何にしてAsync/Awaitを獲得したのか Qiita版) しかあぁし!!! 甘い、甘いのですよ!!!!! 人類を苦しめ続ける非同期処理が、そんな簡単に完全に倒せるわけがないのですよ。 非同期処理の本当にヤバイ深淵、それが「例外処理」です。 みなさんはPromiseで開発していて、 「なんか途中までうまく行ってたんだけど気づいたら例外が外側に飛ばなくなった…なんでだ…」 「助けて!Promiseにcatch書いてるのに何故か例外がcatch出来ないの!!!」 という経験はないでしょうか。私は何度もあります。 この記事では、具体的に何

            Promiseとasync-awaitの例外処理を完全に理解しよう - Qiita
          • Promiseに出来てasync/awaitに出来ないこと (JavaScriptを例として) - FOOBAR's Blog

            JavaScriptで非同期処理をasync/awaitを使って同期的なスタイルで書いていると、すべてのコードをそのスタイルで統一して書きたくなる。なので非同期処理を開始して実行を明け渡したいときはもちろんawaitを使うし、非同期処理に失敗したときはtry-catch構文で例外ハンドラに制御が移るようにする。ただ、同期的なスタイルで書けない処理が存在するために、どうしてもすべてを統一することはできない。Direct styleで書けないcontrolは継続渡しスタイル(CPS)を使って書くしかないからだ。 JSの場合でいうと、並行制御周りがそれにあたる。Promise.all() や Promise.race() などは対応する構文がJS側に存在しない。 例えば Promise.all() に対応する awaitall みたいな構文が言語側に欲しくなる。こんなふうに: const [x,

              Promiseに出来てasync/awaitに出来ないこと (JavaScriptを例として) - FOOBAR's Blog
            • ES2017 async/await + Promise で解決できる事、とES2015(ES6) generators (yield) + Promise + npm aa (async-await) で解決できる事 - Qiita

              ES2017 async/await と Promise を使うと非同期処理をすごく簡単に処理できる。 とても便利なのだが、それだけでは、どうも機能が足りない様に見える。 この記事は... TL;DR ES2017 async/await を使っても、まだいろいろと課題は残ってるよ。 ES2015 (ES6) generators と npm aa (async-await) だと、より良い解決策があるよ。って話。 以下の図の様な非同期処理フローを考えてみる。 横軸は時間だ。左から右へ時間が流れていくものと考えて欲しい。 縦線は複数の処理を同期させたい、という意味だ。 ES2017 async/await 版のコード例を見てみよう。 'use strict'; //require('babel-polyfill'); // おまじない //require('regenerator').ru

                ES2017 async/await + Promise で解決できる事、とES2015(ES6) generators (yield) + Promise + npm aa (async-await) で解決できる事 - Qiita
              • Puppeteer +Lighthouse +GitHubActionsで認証付きWebアプリのWebperfを定期計測

                Puppeteer + Lighthouse + GitHub Actions を使って Web アプリのフロントエンドパフォーマンスを定期計測するプロジェクトを作ってみたら良い感じだったので紹介です。 何を作った? このように GitHub Actions 上で 認証付きの Web アプリに対して Puppeteer 介し Lighthouse を定期実行し、結果を Datadog に送信するプロジェクトを作りました。 実際にそのプロジェクトの計測値を使った Datadog のダッシュボードはこちらです。 Webperf の主要指標をページ別に時系列で表示しています。 サンプルプロジェクトはこちらにあります。 以降で実装について簡単に解説します。 Puppeteer + Lighthouse によるパフォーマンス計測 Puppeteer + Lighthouse によるパフォーマンス計測

                  Puppeteer +Lighthouse +GitHubActionsで認証付きWebアプリのWebperfを定期計測
                • Rustのasync/awaitとスケジューラの話 / rust-async-await

                  Effectで作る堅牢でスケーラブルなAPIゲートウェイ / Robust and Scalable API Gateway Built on Effect

                    Rustのasync/awaitとスケジューラの話 / rust-async-await
                  • JavaScript の async/await の仕様をずっと誤解していた

                    すごい初歩的なことかもしれないのだけれど、年単位ぐらいで誤解したままコードを書いていたので懺悔のためにも書いておく...。 何が違ったかというと、async function の扱いである。async function も function と同じだとおもっていて、 Promise を返さないと呼び出し側で await できないと勘違いしていた。そのため、今までは

                      JavaScript の async/await の仕様をずっと誤解していた
                    • pprof を使って nodejs アプリケーションのプロファイルを取る - その手の平は尻もつかめるさ

                      pprof って go のやつでしょ? node のプロファイルが取れるわけ無いやろ,と僕も思っていたんですが以下のライブラリを使うことで取れることがわかりました. github.com 使い方については Using the Profiler に書いてあるとおりで,アプリケーション側に const profile = await pprof.time.profile({ durationMillis: 10000, // time in milliseconds for which to // collect profile. }); const buf = await pprof.encode(profile); fs.writeFile('wall.pb.gz', buf, (err) => { if (err) throw err; }); という風に書いてあげるとwall time

                        pprof を使って nodejs アプリケーションのプロファイルを取る - その手の平は尻もつかめるさ
                      • Rx時代の先にあるもの

                        こんにちは、アプリケーション共同開発部のみなみです。 iOSアプリ開発を始めてから様々なライブラリを使ってきました。その中で特に強力でおもしろいと感じたのが、Rx (Reactive Extensions)に影響を受けたReactiveCocoaや、RxのSwift実装であるRxSwiftです。Rxライブラリとそれが実現するリアクティブプログラミングは、アプリ開発を大きく変えました。この記事では普段の開発で感じたRxライブラリの威力や課題、そして未来について書きたいと思います。 Rxライブラリは何を変えたのか イベント通知の統一 フラグ変数、深いネストを一掃して見通しが良くなった 複雑な非同期処理を分かりやすく表現 Rxライブラリの課題 依存度の強さ イベントを実行することの影響が予測できない 高い学習コストが割りに合わない部分がある 課題への解決策 async/await Redux 未

                          Rx時代の先にあるもの
                        • CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する

                          Talked at CEDEC 2018, 2018/08/22 - https://2018.cedec.cesa.or.jp/session/detail/s5b559852a6405

                            CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
                          • Pythonにおける非同期処理: asyncio逆引きリファレンス - Qiita

                            Pythonのasyncio、またasync/awaitについてはあまり実践的な例が出回っていなかったため、収集した情報をもとに用例ベースの逆引きリファレンスを作ってみました。 ただ、この辺はほんとに情報がなくて何が真実なのか謎に包まれている点があるので、情報をお持ちの方はぜひご連絡をいただければと思います。 今回紹介する例は、以下のgistにまとめてあります。実装時の参考にしていただければと思います。 icoxfog417/asyncio_examples.py はじめに Pythonにはthreading、multiprocessing、asyncioとどれも並列処理に使えそうなパッケージが3つあります。これらの違いをまず押さえておきます。 これらのパッケージの違いは、そのまま「マルチスレッド」、「マルチプロセス」、「ノンブロッキング」の違いに相当します。まず、マルチスレッドとマルチプ

                              Pythonにおける非同期処理: asyncio逆引きリファレンス - Qiita
                            • Rust と非同期 IO の歴史 - Qiita

                              この記事は Rust LT #1 で発表したものです 自己紹介 某社でサーバサイド Rust 書いてる 最近のサーバサイド Rust の話題 iron, gotham が開発停止 tokio-core が tokio runtime になった RFCS に async-await が入った futures 0.2 が yank されそう された 疑問 2018 年にもなって非同期 IO で疲弊している Rust は 2006 年に開発が始まった node.js も go も 2009 年には存在していた 今まで Rust は何をやっていたのか? 今まで Rust は(非同期 IO で)何をやっていたのか? 2006~2010 この頃の Rust Graydon Hoare が Rust を開発開始 この時代 2006: Firefox2.0, jQuery, Twitter, AWS 20

                                Rust と非同期 IO の歴史 - Qiita
                              • リアルタイム通信におけるC# - async-awaitによるサーバーサイドゲームループ - Grani Engineering Blog

                                CTOの河合(@neuecc)です。Game Tech Session ~AWS Summit Tokyo 2017~にて「『黒騎士と白の魔王』の gRPC による HTTP/2 API/ストリーミング通信の実践」と題して登壇しました。参加いただいたみなさま、ありがとうございます。 4 月にリリースした「黒騎士と白の魔王」では、iOS/Android のモバイルアプリケーションからの全ての通信を gRPC による HTTP/2 で行っています。API リクエストからストリーミングまで、gRPC のあらゆる機能を使って実現した「黒騎士と白の魔王」のアーキテクチャについて、AWS 上でのスケーリングやデプロイを考慮した構成も含めてご紹介します。 「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践 from Yoshifumi Kawai 5/10にUnite

                                  リアルタイム通信におけるC# - async-awaitによるサーバーサイドゲームループ - Grani Engineering Blog
                                • ⭐️🎀 JavaScript Visualized: Promises & Async/Await

                                  If you're already somewhat familiar with promises, here are some shortcuts to save you some precious scrolling time. Introduction When writing JavaScript, we often have to deal with tasks that rely on other tasks! Let's say that we want to get an image, compress it, apply a filter, and save it 📸 The very first thing we need to do, is get the image that we want to edit. A getImage function can tak

                                    ⭐️🎀 JavaScript Visualized: Promises & Async/Await
                                  • async await の使い方 - Qiita

                                    これからはasync,awaitが読み書きできないと生きていけなそうだったので調べてみました。 ※コード例は一応TypeScriptですが、ほとんどJavaScriptです。 参考: async function - JavaScript | MDN

                                      async await の使い方 - Qiita
                                    • ES7 async/await でのエラーハンドリング - おなか周りの脂肪がやばい

                                      async/await は ES7 の機能で、非同期処理を記述する上で非常に便利な機能である(仕様は安定していないと思う) まだ実装している処理系はないと思うが、babel などの transpiler をつかうと利用できる async/await をつかうと非同期処理を以下のように書くことができる function a() { return new Promise(function(resolve, reject) { setTimeout(function() { resolve('hello, ') }, 0) }) } async function b() { var value = await a() return value + 'world' } async function c() { var value = await b() console.log(value) ret

                                        ES7 async/await でのエラーハンドリング - おなか周りの脂肪がやばい
                                      • async/awaitで非同期処理はシンプルになる - Qiita

                                        javascriptで非同期処理を書こうとした時、普通に処理を書くと上から書いた通りの実行順序では完了しません。非同期処理の部分が、往々にして遅延して処理が完了してしまうからです。 非同期処理として有名なものには ajax や setTimeout、XHR(XMLHttpRequest) が存在します。 コマンドライン上で実行する簡単な例を書くと $ node > console.log('hello'); console.log('world'); hello world undefined > setTimeout(() => console.log('hello'), 500); console.log('world'); world undefined > hello 普通に連続で書くとhello と world が順序通り表示されますが、setTimeoutを使った方は順序が逆に

                                          async/awaitで非同期処理はシンプルになる - Qiita
                                        • ES async/awaitを全力で使ってみて発見したイディオム - Qiita

                                          // 注意: 最初のバージョン、async function がundefinedを返すと思い込んでて、色々間違えてた 手元の趣味コード(諸事情により未公開)に向けて全力で適用してみた結果学びがあった。以下babel。 事前に確認 async/await は Promise と Generator の糖衣構文である await は Promiseのインスタンスの式を与えると(見た目上)停止する await するには async functionで囲う必要がある async function は必ず非同期で実行され undefinedPromise を返す 以下イディオム とりあえず実行したい (async () => { await new Promise(done => { setTimeout(1000, done); }) })(); 解説: async ブロック作ってからの即時実行

                                            ES async/awaitを全力で使ってみて発見したイディオム - Qiita
                                          • 負荷試験との向き合い方 - スタディサプリ Product Team Blog

                                            こんにちは。SRE の近藤(@chaspy)です。 先日、より高い信頼性でサービスを提供するために、スタディサプリ小中高大のサービスの最後の砦であるデータベース、MongoDB のインスタンスクラスのスケールアップを行いました。また、スケールアップをするにあたり、負荷試験を行いました。 本記事では、データベースインスタンスのスケールアップの際に行なった負荷試験に対する考え方と、得た学びを紹介します。 なぜスケールアップするのか サービスの急成長に伴い、アクセス数もデータ量も増加しています。数年前に「しばらくは大丈夫」と判断できるインスタンスクラスにスケールアップをしたデータベースも、高負荷時には性能が劣化してしまう問題に遭遇しました。 私たちの MongoDB は AWS 上に EC2 インスタンスとしてセルフホストしており、MongoDB Cloud Manager を使って運用の一部を

                                              負荷試験との向き合い方 - スタディサプリ Product Team Blog
                                            • axe-core/playwrightとmarkuplintを導入しアクセシビリティの自動テストをできるようにした

                                              Web アクセシビリティに興味があったので、まず機械的なチェックツールから学んで知識を増やそうということでこのサイトに @axe-core/playwright と markuplint を導入してみました。 @axe-core/playwright のセットアップ 既に Playwright が導入されている状況を想定し進めます。まず@axe-core/playwright をインストールします。 pnpm add -D @axe-core/playwright このサイトの場合 VRT として Playwright を動かしているテストがあるので(過去資料)、そのプロセスに同居する形で axe を実行することにしました。 e2e.test.tsimport AxeBuilder from "@axe-core/playwright"; import type { Page, TestI

                                                axe-core/playwrightとmarkuplintを導入しアクセシビリティの自動テストをできるようにした
                                              • neue cc - .NET 6とAngleSharpによるC#でのスクレイピング技法

                                                C# Advent Calendar 2021の参加記事となっています。去年は2個エントリーしたあげく、1個すっぽかした(!)という有様だったので、今年は反省してちゃんと書きます。 スクレイピングに関しては10年前にC#でスクレイピング:HTMLパース(Linq to Html)のためのSGMLReader利用法という記事でSGMLReaderを使ったやり方を紹介していたのですが、10年前ですよ、10年前!さすがにもう古臭くて、現在ではもっとずっと効率的に簡単にできるようになってます。 今回メインで使うのはAngleSharpというライブラリです。AngleSharp自体は2015年ぐらいからもう既に定番ライブラリとして、日本でも紹介記事が幾つかあります。が、いまいち踏み込んで書かれているものがない気がするので、今回はもう少しがっつりと紹介していきたいと思っています。それと直近Visual

                                                • .NET開発における非同期処理の基礎と歴史(1/2) - @IT

                                                  連載:C# 5.0&VB 11.0新機能「async/await非同期メソッド」入門 第1回 .NET開発における非同期処理の基礎と歴史 鈴木 孝明 2012/08/31 「大事なことは分かっているが、とにもかくにも面倒くさい。」 「非同期処理」というと、そんなイメージがある。開発中の業務アプリなどで非同期処理を実装しなければならなくなったら、大半の方は、何か重たいものを肩に乗せられた気分になり、「待ってました!」などと意気揚々と作業に入ることはないのではないかと思う。もちろん筆者もその1人だ。 それは、通常書いている同期処理と比べてコーディング量が非常に多くなる(多くなった経験がある)ことが最大の理由だろう。「もっと楽に書きたい」というのが開発者の総意であることは間違いない。 そして今回、Visual Studio 2012と同時にリリースされた.NET Framework 4.5と、そ

                                                  • async await に書き換えて、Promiseと 同期による例外の区別でハマった - Qiita

                                                    // async function の中 try { load().then(data => { console.log(data) }).catch(e => { // ... }) } catch (e) { // ... 例外処理 } わかりやすく簡単にしている。実際にはもっと複雑なコードだった。Promise にすれば try と catch を一本化して綺麗にできるやん!と思っていた。最初は。 書き換えた // async function の中 try { const data = await load() console.log(data) } catch (e) { // ... 例外処理 } catch が一個減ってリファクタできたーと思っていた。確かに異なる例外処理のブロックが減ってしまっていたが、どうせ何かしらのデッドコードだろと思って消してしまった。 注: 意味的に

                                                      async await に書き換えて、Promiseと 同期による例外の区別でハマった - Qiita
                                                    • Rust大好きっ子のためのデータベース考

                                                      経緯 趣味プロジェクトとしてRustをサーバーサイドに採用したWebアプリケーションをぼんやり考えています。その過程で、データベースのチョイスについてかなり悩んだので、一度ここでまとめておきます。 前提 データベースに入れるデータは ・ユーザーデータ(名前、メールアドレスなど) ・アイテムデータ(ユーザーが登録するもの。アイテム名、更新時間など) といったごく一般的なものを考えます。 サーバーサイドのフレームワークは、actix-web…で考えていましたが、最終的には非同期ランタイムとしてtokioを使うaxumにしました(理由は後述)。 また、データ量やアクセス頻度については仮定をおきません。巨大なデータを扱うということになれば、おそらくその時点でかなり候補が絞られることになるかと思いますが、今回は運用面でのパフォーマンスの差については扱わないものとします。 特に今回は「趣味」なので、趣

                                                        Rust大好きっ子のためのデータベース考
                                                      • GitHub - avajs/ava: Node.js test runner that lets you develop with confidence 🚀

                                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                          GitHub - avajs/ava: Node.js test runner that lets you develop with confidence 🚀
                                                        • ServiceWorkerをproductionで使ってる話 - 橋本商会

                                                          https://gyazo.com/343caf0f14cc565ce656a43e9a02aad2https://gyazo.com/471d8cab15bf364febe29e6f2cafb5ad

                                                            ServiceWorkerをproductionで使ってる話 - 橋本商会
                                                          • redux-thunkなのかredux-promiseなのかredux-sagaなのか、それともredux#bindActionCreatorsをやめるのか - Qiita

                                                            前提 ここで書くのはあくまで個人的な意見です。 react, reduxはどちらも使い方次第でフレームワークっぽくも使えるし、ただのツールとしても使える。だからreact, reduxを使ったフロントアーキテクチャはいくらでもあっていいと思う。 これはそのうちの一つを提案するものです。 とはいえ特別な実装方式を編み出したわけでは全然なくて、むしろ1周して出戻りしたかんじ。 結論 非同期処理をコンテナ(またはそこで使うモジュール)に書くだけ。 今は、非同期処理をするためのredux middlewareを使ってないです。 過去記事(react, redux周りのパッケージ選定とKPT[2016-05-27現在])にて、この辺についてもなんやかんやと言っているけど、今はthunkもpromiseもsagaも使っていない。その実装が凄くシンプルで気に入ってるので紹介します。 どうやるのか red

                                                              redux-thunkなのかredux-promiseなのかredux-sagaなのか、それともredux#bindActionCreatorsをやめるのか - Qiita
                                                            • Windows ストア アプリで重要な非同期プログラミング(C#)について復習 - かずきのBlog@hatena

                                                              ここでは、C# 5.0で追加された非同期プログラミングのための構文について説明します。 非同期プログラミングの必要性 非同期プログラミングは、Windows ストア アプリでは重要な要素です。50ms以上かかる可能性のあるAPIのほとんどが非同期として提供されています。これは、時間のかかる処理を、同期的に呼び出した場合にアプリケーションの応答が、止まってしまうという問題を起こさないためです。時間のかかる処理を同期的に行った場合のイメージを以下に示します。 このような処理は、タブレットなどのタッチユーザーインターフェースではユーザーに非常にストレスになります。Windows ストア アプリでは避けるべき挙動になります。ここで、時間のかかる処理を非同期に行った場合のイメージを以下に示します。 このような処理を簡単に実装できるようにC#5.0から導入されたasync修飾子とawait演算子につい

                                                                Windows ストア アプリで重要な非同期プログラミング(C#)について復習 - かずきのBlog@hatena
                                                              • おーい磯野〜 callback使ってる関数をPromiseでラップしてasync/awaitで書こうぜ〜 - taiki-t's diary

                                                                例1 const sleep = (ms) => { return new Promise(resolve => setTimeout(resolve, ms)); } const something = async () => { await sleep(100) doSomething() } 例2 Geolocation.getCurrentPosition() - Web API インターフェイス | MDN から // 元メソッドの構文は // navigator.geolocation.getCurrentPosition(success, error, options) // クラスの中 getCurrentPosition(options) { return new Promise((resolve, reject) => { navigator.geolocation.g

                                                                  おーい磯野〜 callback使ってる関数をPromiseでラップしてasync/awaitで書こうぜ〜 - taiki-t's diary
                                                                • ES7 の Async/Await を使ってみた - Qiita

                                                                  Taming the asynchronous beast with ES7 babel の experimental に ES7 の Async/Await が入ったというので、さっそく導入してみた。対象は画像を点字を変換するわりかしどうでも良いモジュール。 seurat - JavaScript utility to generate a braille text from an image 導入前 ファイル読み込みや画像の変換に非同期処理を多用しており、node.js スタイルの 非同期API(コールバックを渡すやつ) を prominence というユーティリティ関数で Promise 化していたが、行ごとに then が出てきたり、複数の値を渡すために Promise.all を使ったりと、あまり読みやすいとは言えないコードだった。(コールバック地獄になるよりはマシだと思うけど.

                                                                    ES7 の Async/Await を使ってみた - Qiita
                                                                  • Rust Advent Calendar 2019 1日目 Rust の非同期プログラミングモデルはランタイム観点だと Go のそれに似ている - keno_ssの日記

                                                                    この記事は Rust Advent Calendar 2019 の1日目の記事になります. 明日は topecongiro さんの予定です. TL;DR 去る 11/07 に Rust 1.39.0 がリリースされました. これはユーザー待望の async/await 構文が言語機能として取り込まれた安定版リリースとなります. Advent Calendar 最初の記事としては取り上げないわけにはいきません. もう既に他の良い記事がたくさん書かれていますが, この記事ではそれらを補完する視点から説明してみようと思います. Rust と非同期 IO の歴史 κeenのHappy Hacκing Blog -- async/awaitと合成可能性 async/await の実装と利便性のバランスの良さについて. κeenのHappy Hacκing Blog -- RustのFutureとその

                                                                      Rust Advent Calendar 2019 1日目 Rust の非同期プログラミングモデルはランタイム観点だと Go のそれに似ている - keno_ssの日記
                                                                    • ブラウザとNode.jsで動く1kBのキーバリューストレージライブラリを書いた

                                                                      azu/kvsというブラウザとNode.jsで動くファイルサイズが小さいキーバリューストレージを作りました。 モチベーション ファイルサイズが小さくIndexedDBを使っていて、Node.jsでも透過的に同じAPIで利用できるライブラリが必要となったため作りました。 textlint-editorというアプリを書いていて、キャッシュストレージとしてlocalstorage-ponyfillを使っていました。 しかし、localstorage-ponyfillはブラウザとNode.jsで透過的に動くストレージライブラリですが、LocalStorageベースとなっています。 textlint-editorでは、スクリプトをWeb Workerで動かすため同期的なAPIであるLocalStorageは利用できません。 そのため、IndexedDBベースでシンプルなキーバリューストレージを扱える

                                                                        ブラウザとNode.jsで動く1kBのキーバリューストレージライブラリを書いた
                                                                      • 実例とともに学ぶECMAScript 2015 〜Generator〜 | PSYENCE:MEDIA

                                                                        Introduction この記事は最近JavaScriptに入ったGeneratorと呼ばれる機能について知りたい、もっと詳しく知りたいという方をターゲットとしています。 今回はECMAScript 2015に入った機能のgeneratorについて解説していきたいと思います。 generatorはNode界隈では2014年ごろから非同期処理を同期的に書くことができるツールとしてよく使われていました。 最近ではasync/awaitをよく耳にすることがあると思いますが、async/awaitはgeneratorを使ったものに変換可能なので挙動としては近いものと考えてもらって大丈夫です。 ECMAScript Async Functions What is generator 前置き では、generatorとはなんでしょうか?「実はgeneratorはIteratorを返す関数なのです!」

                                                                          実例とともに学ぶECMAScript 2015 〜Generator〜 | PSYENCE:MEDIA
                                                                        • Puppeteer と ARIA Handler

                                                                          先日、社内の技術共有会で https://github.com/puppeteer/recorder という npm パッケージの話が挙がったのだけど、ここで登場する ARIA Handler という機能が面白い内容だったため、それを書いていこうと思う。 https://developers.google.com/web/updates/2020/11/puppetaria で触れられている内容と重複する部分も多いため、先に参考として挙げておく。 また、Puppeteer の Undocumented な機能であったり、CDP の Experimental な機能への言及となるため、その点は承知した上で読んでもらえると。 Puppeteer Recorder@puppeteer/recorder 自体は名前の通り、Headless Chrome ラッパである Puppeteer を使って

                                                                            Puppeteer と ARIA Handler
                                                                          • Node.jsに入る新しいCJSからESMへの読み込み方法の紹介 - hiroppy's site

                                                                            新しくCJSとESMの間での解決方法が変わる提案が出てきました。 まだマージされてませんが、すでに複数の承認があり、この方針から変わることはないように見えるので紹介したいと思います。 module: support require()ing synchronous ESM graphs by joyeecheung · Pull Request #51977 · nodejs/node Summary This patch adds require() support for synchronous ESM graphs under the flag --experimental-r... 新しい提案 この仕組みを利用する場合、--experimental-require-moduleフラグが必要となります。 以下は、わかりやすいようにpackage typeを指定せずにデフォルトはCJS

                                                                              Node.jsに入る新しいCJSからESMへの読み込み方法の紹介 - hiroppy's site
                                                                            • iOSDC 2021セッション資料まとめ - Qiita

                                                                              iOSDC2021登壇資料、スライドのまとめです。 Twitter等で見つけ次第掲載しますが、もし資料を見かけた方or資料を公開した登壇者の方がいらっしゃいましたら、コメント等でお声がけください。 スライドや資料のリンクが見つかった場合はタイトルにリンクをつけてありますので、タイトルがリンクになっていない場合はまだ資料が見つかっていないものになります。 Day 0 Track A 大規模リファクタリングの極意 forteeのリンク SwiftUIで使ったアプリを1年運用してみてわかったこと forteeのリンク Initiatives in Rakuma iOS App forteeのリンク SwiftUI で実プロダクトを音速リリースした話 forteeのリンク Track B agoraを使ってライブ配信機能を1ヶ月半でリリースした話 forteeのリンク A Swift Stack

                                                                                iOSDC 2021セッション資料まとめ - Qiita
                                                                              • Node.js v18 の主な変更点 - 別にしんどくないブログ

                                                                                Node.js v18がリリースされました 🎉 nodejs.org この記事では Node.js v18 の主な変更点を抜粋して紹介します! fetch() がフラグ無しで実行可能に (experimental) HTTP requestTiemout()のデフォルト値の変更 node:test モジュール(テストランナー)の追加 (experimental) V8 アップデートによる新しい JavaScript の API の追加 Array#findLast(), Array#findLastIndex() Intl.supportedValuesOf() その他の改善 Web Streams API のグローバルへの追加、実行時の警告の削除 (experimental) まとめ fetch() がフラグ無しで実行可能に (experimental) github.com Node

                                                                                  Node.js v18 の主な変更点 - 別にしんどくないブログ
                                                                                • Async/Await - 非同期プログラミングのベスト プラクティス

                                                                                  async void を避ける 使用できる戻り値の型には、Task、Task<T>、および void の 3 つがありますが、async メソッドで自然な戻り値の型は Task と Task<T> だけです。同期コードから非同期コードに変換する際、型 T を返すメソッドはすべて Task<T> を返す async メソッドになり、void を返すメソッドはすべて Task を返す async メソッドになります。次のコード スニペットは、void を返す同期メソッドとそれに相当する非同期メソッドを示しています。 void MyMethod() { // Do synchronous work. Thread.Sleep(1000); } async Task MyMethodAsync() { // Do asynchronous work. await Task.Delay(1000);

                                                                                    Async/Await - 非同期プログラミングのベスト プラクティス