並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 268件

新着順 人気順

asyncの検索結果41 - 80 件 / 268件

  • FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)

    FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ PythonのWebフレームワークとしていま注目を集めるFastAPIは、シンプルにコードが書けるだけでなく、パフォーマンスが高いWebアプリケーションのバックエンドサーバーが構築可能です。同フレームワークの勘所をPythonスペシャリストの杜世橋さんが、初心者向けのハンズオン、そしてより実践的な画像への自動タグ付けサービス実装をとおして解説します。 FastAPIはいま非常に注目されているPythonのWebフレームワークの1つです。Flaskのようにシンプルに書ける一方でPythonのType Hintの機能をうまく活用し、HTTPのリクエスト/レスポンスをPythonの関数の引数/戻り値とシームレスにマッピングして非常に効率的に開発ができるのが最大の特徴です。非同期処理にも対応していてその名

      FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)
    • Next.js v13をSupabaseのデータフェッチと一緒に理解する | DevelopersIO

      こんにちは。データアナリティクス事業本部 サービスソリューション部の北川です。 Supabaseとは、firebaseの大替サービスとも言われるBaasです。データベースにRDBを採用しているのが特徴です。 Next.js v13を学んでいる時に以下の記事を見つけました。Next.jsプロジェクトから、Supabaseのデータ取得を行っており、わかりやすかったです。 Next.js v13のインプットにも、Supabaseの入門にも役に立つチュートリアルだと思います。 今回は、こちらの記事を元にNext.js v13の機能を、v12と比較したりしながら試してみました。 Supabase側の設定 Supabaseにログインし、新しいプロジェクトを作成します。 左サイドバーから[SQL Editor]に移動し、以下のコードをエディタに貼り付けます。右下の[RUN]ボタンから、クエリを実行します

        Next.js v13をSupabaseのデータフェッチと一緒に理解する | DevelopersIO
      • Welcome to Comprehensive Rust 🦀 - Comprehensive Rust 🦀

        Welcome to Comprehensive Rust 🦀 This is a free Rust course developed by the Android team at Google. The course covers the full spectrum of Rust, from basic syntax to advanced topics like generics and error handling. The latest version of the course can be found at https://google.github.io/comprehensive-rust/. If you are reading somewhere else, please check there for updates. The course is also av

        • RustのTokioで非同期とグリーンスレッドを理解する

          この記事はRust Advent Calendar 2022 - Qiitaの13日目の記事です。 はじめに Rustの非同期I/Oライブラリ tokio の解説記事になります。初めに概要説明をします。その後でちょっとしたソースコードを見せながら解説をしていきます。理論より実践、実際にどう書けば良いのか知りたい人向けの記事になります。 tokioはライブラリの一つに過ぎませんが、hyper、actix-webなどのWebフレームワーク、Denoのイベントループ、Solanaのツールなどで利用されており、デファクトスタンダード的な重要なライブラリになっています。 またDiscordはtokioのスポンサーをしており、GoからRust(Tokio)で書き換えた話は小説を一冊読み終えたかのようなブラボーな興奮がありました。 ちなみに、tokioのネーミングは開発者のCarl Lercheが東京観

            RustのTokioで非同期とグリーンスレッドを理解する
          • 非同期処理の道具箱 — HACK The Nikkei

            この記事はNikkei Advent Calendar 2022の 13 日目の記事です。 こんにちは、Web チームの井手です。最近 Web チームで働く魅力について語ったので是非とも読んで欲しいです。 今日は非同期ランタイムについて書きます。 私は非同期ランタイムやサーバー進化論が好きで、たまにブログを書いたり、前職でもアドベントカレンダーに書いたりしていました。 本稿では効率的な非同期処理を実現するライブラリが中で何をしているのかを、低レイヤーの非同期処理そのものを解説しながら見ていきたいと思います。説明の都合上 Rust を使うので、Rust 特有の話もありますが、低レベルな API があればどの言語でも当てはまる話だと思います。この辺りは Rust, Scala(JVM), Erlang, Go などはお互いがお互いのアイデアを参考にしていて切磋琢磨しつつも似た仕組みをそれぞれが

              非同期処理の道具箱 — HACK The Nikkei
            • ライブラリを使わない非同期処理(前編)

              この記事は Rust アドベントカレンダー 5 日目の記事です。OGP 画像は間に合わなさそうな画像です。 Rust そのものには非同期処理の仕組み自体はありますが、非同期のタスク群をスケジューリングして実行する仕組みがありません。これはユーザーもしくはライブラリに任されています。例えば代表的なライブラリである tokio は schadular や executor を提供します。 非同期処理は関係してくる分野が多くさまざまなレイヤーが重なるのでとても難しいと思っています。そこで非同期処理を深く理解するために tokio を使わなければレイヤーをひとつ剥がせて理解が深まると思いました。そこで tokio を使わずに Rust の公式  crate だけで非同期処理を実現してみましょう。 ちなみに前編とついているのはアドベントカレンダーに間に合わせるために志半ばで切り上げたからです。という

                ライブラリを使わない非同期処理(前編)
              • SQS + Lambda という⾮同期処理 ⻩⾦パターン再⼊⾨ #AWSDevDay / SQS-Lambda-DevDay2022

                Talked at AWS Dev Day Japan 2022. - 解説動画 : https://www.youtube.com/watch?v=hT7Se0oFEkU - イベントページ: https://aws.amazon.com/jp/events/devday/japan/ - Proposal:https://github.com/aws-events/aws-dev-day-online-japan-2022-cfp/issues/82

                  SQS + Lambda という⾮同期処理 ⻩⾦パターン再⼊⾨ #AWSDevDay / SQS-Lambda-DevDay2022
                • 個人ブログの Next.js v13 移行でやったことまとめ

                  Next.js v13 への移行でやったことまとめ 準備 基礎となる記事に目を通した -> https://zenn.dev/link/comments/eefa4975aaedaf マイグレーションガイドを見て一つずつ対応しようかなと思ったけど、記事が長いのでnext devで動かして出てきたエラーを潰していく方法にした。とりあえずビルドできるようになったら、見落としやより良いやり方があるか確認するために読む。 ページコンポーネントに対して pages にあるファイルを app ディレクトリに移動させる 規約 通りに page と layout にコンポーネントを分割する getServerSideProps の処理をasync function getData() に変更する コンポーネントを async 関数にする props ではなくコンポーネントの中でgetData()の返り値を

                    個人ブログの Next.js v13 移行でやったことまとめ
                  • async/awaitのaの違い~async wait説への反論 - Qiita

                    はじめに ncaq氏の記事を読んで様々なことを学習できました。 asyncが「syncしない」なのにawaitが「waitする」なのは何故か。awaitがasync waitであるという説は正しいのか。async/awaitの語源について学習したことを記事にしました。 asyncとawaitのa-の違い asyncはsynchronize(同期)にa-(否定)が付いてasync(同期しない)となります。 awaitはwait(待つ)にa-(否定)が付いて「待たない」となりません。a-(方向)が付いてawait(待つ)となります。 a-(否定)とa-(方向)の違いです。 a-(否定)は「エイ」と発音する傾向 asynchronous エイスィンクロナス 非同期 Ajax エイジャックス(Asynchronous JavaScript And XML) asymmetry エイスィメトゥリィ

                      async/awaitのaの違い~async wait説への反論 - Qiita
                    • Reactを学ぶ上で知っておくべきJavaScriptの基本概念 - Qiita

                      はじめに 今回はFlyCode氏が紹介していた、Reactを学ぶ上で知っておくべきJavaScriptの基本概念を紹介します。 具体的なJavaScriptでのコード解説と、Reactではそれがどのように使われるのかを紹介します。 この記事の対象者 JavaScriptのよく使う基本文法を学びたい人 Reactの初心者から中級者 この記事の目標 React開発でよく使われるJavaScriptの文法や処理を理解する JavaScriptの基礎文法 本記事では下記の7つをピックアップして紹介します 三項演算子 分割代入 スプレッド構文 配列操作 アロー関数 非同期処理(Async/Await/Promise) APIコール 三項演算子 三項演算子はMDNでは下記のように解説されています。 条件 (三項) 演算子は JavaScript では唯一の、3 つのオペランドをとる演算子です。 三項演

                        Reactを学ぶ上で知っておくべきJavaScriptの基本概念 - Qiita
                      • 最速攻略! Reactの `use` RFC

                        皆さんこんにちは。最近のReact界隈で話題になっているのは次のRFCです。 そこで、この記事ではさっそくRFCを理解することを目指します。 ただし、このRFCはSuspenseに深く関わるものです。SuspenseはReact 18でもう正式リリースされていますから、この記事ではSuspenseは前提知識とします。もしまだSuspenseをよく知らないのであれば、ぜひ次の記事で学習してください。 また、RFCはあくまでReactの新機能のアイデアを公開するものであり、これが必ず実装されるとは限らない点にご注意ください。例えば、過去にはuseEventというRFCが注目を集めていましたが、意見が集まった結果としてそのRFCは実装されずにクローズされました(RFCが無駄だったというわけではなく、再度検討してよりアイデアがブラッシュアップされることになります)。 新しい use API このR

                          最速攻略! Reactの `use` RFC
                        • RFC: First class support for promises and async/await by acdlite · Pull Request #229 · reactjs/rfcs

                          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

                            RFC: First class support for promises and async/await by acdlite · Pull Request #229 · reactjs/rfcs
                          • Async UI: a Rust UI Library where Everything is a Future | Wisha Wanichwecharungruang

                            Async UI: a Rust UI Library where Everything is a Future Lifetime-Friendly, Component-Based, Retained-Mode UI Powered by Async Rust This blog post is intended for readers with some experiences in async Rust. It assumes you know what a Future is! What is Async UI? Async UI is a proof-of-concept Rust UI library with backends for the web (HTML/JS) and GTK 4. Screenshots Todo List Demo (interactive ve

                            • Why Async Rust

                              Why Async Rust — 2022-09-26 language hierarchy async under the hood rust's async features ad-hoc cancellation ad-hoc concurrency combining cancellation and concurrency performance: workloads performance: optimizations ecosystem conclusion A lot of system design is about thinking of the nature of the domains we encounter. And only later, once we understand them, encoding this understanding in a way

                                Why Async Rust
                              • スプラトゥーンの非同期処理の話 ~なにがラグのせいなのか~|まけトピア

                                さて、みなさんはこういう叫びを聞いたことはありませんか? 「ラグやば!これ絶対当てたのに死なねえんだけど!」 「ラグすぎてワープするんだけど!」 「同期ズレえぐ!!!」 スプラトゥーンは、インターネットを介してゲームの情報をやり取りすることで、離れた人たちとも遊べる対戦アクションゲームです。 まず、大前提として、インターネットを介している時点で、少なからず通信遅延(ラグ)が発生します。ラグのないゲームは存在しません。 スプラトゥーンでは、通信環境が悪くても比較的不快になりにくい実装がされているのですが、これの仕様が結構ややこしくて、自分のプレイのガバさをラグのせいにする人もしばしば見かけます。 (とんでもないラグがあるともちろんキツイですが) この記事では、 一般的なゲームにおける通信同期方式 スプラトゥーンにおいては、どうやって何を同期しているか これはラグのせいなのか、自分のガバのせい

                                  スプラトゥーンの非同期処理の話 ~なにがラグのせいなのか~|まけトピア
                                • 第2章 ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント | gihyo.jp

                                  [速習] Puppeteer ~ヘッドレスChromeでテスト&スクレイピング 第2章ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント 第2章では、実際にヘッドレスChromeを自動化するうえで必要となる、最新のJavaScriptの構文やPuppeteerのAPIについて解説します。 進化し続けるJavaScript PuppeteerのAPIを解説する前に、第1章の冒頭で掲載したサンプルコードを見返してみましょう。もしかすると、中にはまったく見慣れない構文が見つかったかもしれません。 const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await b

                                    第2章 ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント | gihyo.jp
                                  • Timers Promises API が最高 - Panda Noir

                                    名前から既にワクワクするこのAPIは、なんとPromiseを返すsetTimeout、setInterval関数を提供しています!最高です… というわけで今回はそれの紹介です。 基本的な使い方 await setTimeout(1000) ←これができるんです!素晴らしくないですか?? top-level await や for-awaitと組み合わせるとこんな感じで書けます import { setTimeout } from 'timers/promises'; console.log('start'); await setTimeout(1000); // これでいける!! console.log('1s passed'); import { setInterval } from 'timers/promises'; console.log('start'); for await (

                                      Timers Promises API が最高 - Panda Noir
                                    • リーダブルなテストのための、jest モックファクトリー関数

                                      単体テストを書く時、モジュール間の関連を検証するため、一部のモジュールをモックする必要が出てくることがあります。モックは様々な手法がありますが、書き方によって、メンテナンス性やテストの可読性が変わります。一般的に行われるモック手法を確認しつつ、よりリーダブルなテストを書く方法を紹介します。 ログイン API を呼び出す Web API クライアント 今回紹介する、モック対象の Web API クライアントです。Native Fetch API を関数でラップした、自作の Web API クライアント(ログインするためのlogin関数)です。 export type Data = { redirectUrl: string; }; export type Input = { email: string; password: string; }; export async function l

                                        リーダブルなテストのための、jest モックファクトリー関数
                                      • その並列処理待った! 「Python 並列処理」でググったあなたに捧ぐasync, threading, multiprocessingのざっくりとした説明 - Qiita

                                        ※ 本記事ではざっくりとした理解を目的とするため、スレッドとプロセスとコア、非同期処理と並列処理と並行処理の違いについて詳細には取り扱いません。気になる方は下記の記事などをご参考ください。 async スレッド数もコア数も1 だから並列処理じゃなくない? というツッコミは正解です。正確には並列処理ではなくて「非同期処理」といいます。フロントエンドのJavascriptから始めた方にはなじみが深いかもしれませんが、「非同期処理」と「並列処理」は全く違う概念なのでご注意ください。 処理の概要としては、最初に複数のリクエストを投げておいて、レスポンスが全部帰ってくるまで待ち、応答が揃ってから処理を再開します。 これにより、応答に 3~7秒(平均5秒)かかるスクレイピングを100回行う場合、同期処理なら500秒程度かかるところ、asyncを使った非同期処理なら7,8秒程度で実行できます。 (外部と

                                          その並列処理待った! 「Python 並列処理」でググったあなたに捧ぐasync, threading, multiprocessingのざっくりとした説明 - Qiita
                                        • neue cc - async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス

                                          async/awaitの鬼門の一つとして、適切なキャンセル処理が挙げられます。別に基本的にはそんな難しいことではなく、CancellationTokenSourceを作る、CanellationTokenを渡す、OperationCanceledExceptionをハンドリングする。というだけの話です。けれど、Tokenに手動でコールバックをRegisterしたときとか、渡す口が空いてないものに無理やりなんとかするときとか、タイムアウトに使った場合の始末とか、ちょっと気の利いた処理をしたいような場面もあり、そうした時にどうすれば良いのか悩むこともあります。 こういうのはパターンと対応さえ覚えてしまえばいい話でもあるので、今回はAlterNatsの実装時に直面したパターンから、「外部キャンセル・タイムアウト・大元のDispose」が複合された状況での処理の記述方法と、適切な例外処理、そして最

                                          • 非同期処理を使いこなそう ! -第 2 回 非同期処理と同期処理の処理構造 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

                                            皆さんこんにちは。プロフェッショナルサービス本部のデジタルトランスフォーメーションチームでマネージャーをしています堀場です。 さて、いきなりですが、先日、ふと、頭に思い浮かんだ単語があります。それがこちら。 「機能」「情報」「連絡」「手順」「時間」・・・ 25 年以上前に覚えた単語がふと出てきたわけで・・・・この後、何が続くかご存知でしょうか ? 答えは、「論理」「暗号」です。 これは、モジュール強度 (または凝集度) の段階を表すもので「暗号」は凝集度が低く「機能」がもっとも高いと定義されています。なぜ、思い出したのかは謎です。ちなみに、10 年前の資料ですが IPA が提供している IT 人材育成用の汎用コンテンツ の 講義ノート に簡単な解説がありましたので興味がある方は読んでみてください。 凝集度が高いほど、堅牢性、信頼性、再利用性が高く、コードの読みやすさなどの点で好ましく、凝集

                                              非同期処理を使いこなそう ! -第 2 回 非同期処理と同期処理の処理構造 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
                                            • JavaScriptのES2023・ES2022の新機能まとめ - ICS MEDIA

                                              JavaScriptの仕様であるECMAScriptはEcma Internationalによって定められています。ECMAScript 2015(ES6)の登場以降は、ECMAScript 2016、ECMAScript 2017・・・と、年次で仕様が更新されています。ECMAScript 2022(ES2022)は2022年6月22日のEcma InternationalのGA 123rd meetingにて、ECMAScript 2023(ES2023)は2023年6月27日のGA 125th meetingで承認されました。 ES2022とES2023はすでに多くのブラウザやNode.js環境で利用可能です。本記事では新仕様と使いどころを紹介します。 ES2023 - 配列の非破壊操作 ES2023では配列を非破壊で操作できるメソッドが追加されています。非破壊とは、元の配列を変更せ

                                                JavaScriptのES2023・ES2022の新機能まとめ - ICS MEDIA
                                              • 1時間半で克服するJavaScriptの非同期処理/async_javascript_kokufuku

                                                モバイルアプリで機械学習入門/introduction-to-machine-learning-in-mobile-app

                                                  1時間半で克服するJavaScriptの非同期処理/async_javascript_kokufuku
                                                • FastAPIでPath Operationに def と async def どちらを使うべきか - Carpe Diem

                                                  背景 FastAPIでは以下のようにデコレータ関数を使うことでHTTPサーバのpathを設定することができ、これをPath Operationと呼びます。 from fastapi import FastAPI app = FastAPI() @app.get("/") async def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") async def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q} このPath Operationでdefを使うべきかasync defを使うべきかの方針を説明します。 環境 Python 3.9.11 FastAPI 0.74.1 方針 結論から言うと以下の方針で

                                                    FastAPIでPath Operationに def と async def どちらを使うべきか - Carpe Diem
                                                  • The curse of strong typing

                                                    Contents Different kinds of numbers Conversions and type inference Generics and enums Implementing traits Return position Dynamically-sized types Storing stuff in structs Lifetimes and ownership Slices and arrays Boxed trait objects Reading type signatures Closures Async stuff Async trait methods The Connect trait from hyper Higher-ranked trait bounds Afterword It happened when I least expected it

                                                      The curse of strong typing
                                                    • (async) Rust doesn't have to be hard

                                                      An article titled Rust Is Hard, Or: The Misery of Mainstream Programming came out today and it's getting a lot of attention. I have a feeling that it's viewed in a wrong context, so I'd like to comment on the issue raised there. A lot of the comments to the article are in a tone of "this is precisely the reason why I don't learn Rust, it's just too hard" or "just don't use async, it's too hard, ot

                                                      • The ultimate async setup: FastAPI, SQLModel, Alembic, Pytest

                                                        FastAPI is a popular topic nowadays and I have decided to share my setup for an async web-server using this framework. Here is a short description of python packages used in the article (just to make a whole picture to save your time): Poetry (https://python-poetry.org) — is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and

                                                          The ultimate async setup: FastAPI, SQLModel, Alembic, Pytest
                                                        • Remixの凄みを紹介したい

                                                          Cloudflare WorkersとKVで キャッシュを非同期に更新する | Cloudflare Meetup Nagoya

                                                            Remixの凄みを紹介したい
                                                          • はじめに - Rustで学ぶ非同期処理ランタイム

                                                            この本を手にとってくれたそこのあなた!はじめまして(あるいはお久しぶり!)本書の著者、nasa と申します。 まず、この本が生まれた背景をお話していきますね。本書はボクの「非同期処理の仕組みをなるべく隅から隅まで理解したい」という思いから生まれました。主に JavaScript を使う場面で、async/awaitを用いた非同期処理、非同期プログラミングをしています。しかし、その具体的な仕組みを知らないままで使っています。たとえば「アプリケーションサーバーにリクエストを投げる」という処理があったとします。このタスクはいつ実行されるのでしょうか?そして、実行のタイミングを誰が決めているのでしょうか? プログラマーである私でしょうか? どのタスクをいつ実行するかを決めているのはランタイムと呼ばれるものになります。本書ではこのランタイムの実際のコードを読んでいくことで非同期処理、非同期プログラミ

                                                            • V8エンジンによる内部変換コードでasync/awaitの挙動を理解する

                                                              はじめに JavaScript の「非同期処理」ってやっぱりかなり難しくないですか? 自分も色々試行錯誤しましたが、結局「完全に理解した🤓」→「やっぱり何も分からん😭」っていうループの中で泥臭く理解を深めていくしかないようです。 さて、非同期処理の制御をある程度予測できるようになるには、非同期 API を提供する環境のことやイベントループ、マイクロタスクなどの仕組みについて理解する必要があります。 そして環境に埋め込まれた JavaScript Engine のことも理解する必要があります。 今回の記事では、JavaScript Engine の1つである V8 が内部で変換するコードから async/await の挙動を理解するための解説を試みたいと思います。V8 エンジンからアプローチすることで async/await の分かりづらい挙動を掌握して非同期処理を打倒します。 今回の記

                                                                V8エンジンによる内部変換コードでasync/awaitの挙動を理解する
                                                              • GoとRust - 並行処理編

                                                                GoとRustの変更処理を比較することで両者を深く理解する試みです。 詳しい内容やスライドでは省いたところをブログに書きました https://zenn.dev/nasa/articles/compare_rust_go_concurrency

                                                                  GoとRust - 並行処理編
                                                                • How Async Functions in Traits could Work in Rustc

                                                                  One of the major goals for the Rust Async Working Group is to allow async fn everywhere fn is allowed, especially in traits. In this post, I'd like to distill some of the proposed designs and show how async functions in traits could be implemented. We'll look at one possible way this could work, although I'd like to emphasize that this is not the only way, and many details of the design that we'll

                                                                  • 『マンガでわかるJavaScriptのPromise』がKindleで無料公開

                                                                    『マンガでわかるJavaScriptのPromise』は、JavaScriptで通信などの処理を書く際に必須の仕様であるPromiseを、マンガで基礎から学ぶことができる。 『マンガでわかるJavaScriptのPromise』は、マンガ部分は76ページ、コードのまとめやコラム部分は51ページ、全体で167ページの構成で、コールバックを多用するJavaScriptの特徴や、Promise登場の背景、Promiseの仕組みや書き方、async/await、Promiseの静的メソッドまでを解説する。 目次は以下の通り。 第1話「JavaScriptのPromise」 第2話「同期処理と非同期処理」 第3話「コールバック関数」 第4話「コールバック関数のネスト」 第5話「Promiseの概念」 第6話「Promiseを使ったコード」 第7話「Promiseを使ったコード 2」 第8話「reso

                                                                      『マンガでわかるJavaScriptのPromise』がKindleで無料公開
                                                                    • JestのTips集10選。サーバーサイドでNode.jsのJestを書いたことない人向け

                                                                      対象 業務レベルでサーバーサイドでJestを書いたことはないけれど、新プロジェクトでは書くことになったみたいな方を想定して記述しています。 Jestについては中々ベストプラクティスが集まりにくいので、経験的にこう書くと「きれいに」・「早く」・「正確に」書けるよというTipsを集めてみました。もし、よろしければお読みください。 前提 TypeScript Node.js Jest DBアクセスありの状態を想定しています 1. it文内では、必ず1回は、expectをつかって検証をする JestのPRをレビューしてるとたまに見受けるのですが、expectを使ってないケースがあります。 // NG it('userを正常に、作成できること', async() => { await createUser({ name: 'Mike' }); }); // OK it('pdfが正常に削除できること

                                                                        JestのTips集10選。サーバーサイドでNode.jsのJestを書いたことない人向け
                                                                      • JSの非同期処理を理解するために必要だった知識と学習ロードマップ

                                                                        はじめに JavaScript の非同期処理を学習してみて「ある程度自信を持って理解できたと言える」状態に到達したので、その感想とまとめの学習ロードマップとその中でどのような知識が必要になるかを紹介したいと思います。 あるいは、自分が実際に学習してきた道筋に基づいているのでショートカットとして参考にしてもらったり、使えるリソースなどの情報が共有できると思います。もしくは「JavaScript 初心者が非同期処理を理解できるようになるまでの道筋」というストーリーで1つのサンプルとして見ていただけるといいかもしれません。 ChangeLog 大きな変更のみをトラッキングしています。 2022-11-16 本の内容を反映させた追記・修正を追加 2022-05-21 構成を修正 「V8 エンジンから考える」の項目を追加 2022-04-30 「イベントループの共通性質」の項目を追加 「ロードマップ

                                                                          JSの非同期処理を理解するために必要だった知識と学習ロードマップ
                                                                        • return と return await の3つの違い

                                                                          Promise を返す非同期関数を扱うとき Promise をそのまま返す書き方と Promise を await してから返す二通りの方法があります。 const fetchUsers1 = async () => { return axios.get("/users"); }; // または const fetchUsers2 = async () => { return await axios.get("/users"); }; 上記のコード例は一見するとどちらも同じように動作するように思えますが、以下のような違いがあります。 例外がキャッチされる場所 スタックトレースの出力 マイクロタスクのタイミング 例外がキャッチされる場所 初めに考えられるもっとも顕著な例として try/catch ブロックと共に使用されている場合です。端的に説明すると return の場合には関数の呼び出し元

                                                                            return と return await の3つの違い
                                                                          • 14 Linting Rules To Help You Write Asynchronous Code in JavaScript

                                                                            Debugging asynchronous code in JavaScript can feel like navigating a minefield at times. You don't know when and where the console.logs will print out, and you have no idea how your code is executed. It's hard to correctly structure async code so it executes in the right order as you intend it to. Wouldn't it be nice if you had some guidance while writing asynchronous code, and to get a helpful me

                                                                              14 Linting Rules To Help You Write Asynchronous Code in JavaScript
                                                                            • Remixing React Router

                                                                              The first versions of React Router actually had an async hook to help with data loading called willTransitionTo. Nobody really knew how the heck to use React at the time and we were no exception. It wasn't great, but it was at least going in the right direction. For better or for worse, we went all in on components for React Router v4 and removed the hook. With willTransitionTo gone, and component

                                                                                Remixing React Router
                                                                              • Studyplus iOSアプリにasync/awaitを導入してみた - Studyplus Engineering Blog

                                                                                こんにちは、Studyplus事業部モバイルクライアントグループの上原です。 中途入社でiOSエンジニアとして入社して、StudyplusのiOSアプリの開発を主にしています。 また、最近はiOS以外にもFlutterを触り新機能を開発したりしています。 趣味の方では、Apex Legendsを数年やっているのですが、最近愛用していた武器が弱体化&武器生成必須になりモチベーションがどんどん低くなっています。新しい複数人でやれて人口の多いゲームの発売を切実に期待しています。 さて、今回は、Swift 5.5から導入されたasync/awaitをStudyplusのiOSアプリに一部導入したことについて書きます。 docs.swift.org async/await導入以前の非同期コード iOSでは、ネットワーク処理などの時間がかかる処理で、非同期的に動作させるためにクロージャーを呼び出す必要

                                                                                  Studyplus iOSアプリにasync/awaitを導入してみた - Studyplus Engineering Blog
                                                                                • 実行環境依存のコードに対してテストを書く考え方

                                                                                  社内用の啓発記事ですが、閉じる理由がないのでここに投げます。 ブラウザにべったりなコードを書いてると、ブラウザや node.js 固有の環境をインラインで記述してしまうことが多々あると思います。 あえてダメダメなブラウザ向けのエントリポイントの例を書きます。 // main.ts let id = localStorage.get('id'); if (!id) { id = `${navigator.userAgent}-${Math.random()}`; localStorage.set('id', id); fetch('/auth', { method: 'POST', credentials: 'include', body: JSON.stringify({ id, at: Date.now(), }), headers: {'Content-Type': 'applicat

                                                                                    実行環境依存のコードに対してテストを書く考え方