並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 706件

新着順 人気順

asyncの検索結果201 - 240 件 / 706件

  • decoding="async" について詳しく調べてみる

    この記事は2023年7月19日時点の Chrome の最新版 115.0.5790.98 を使って検証しました。今後 Chrome の実装によって挙動が変わる可能性はございます。 はじめに 画像表示のパフォーマンス改善において、「decoding="async" をつけましょう」というのをよく見かけますが、おそらくほとんどの人がその実際の挙動を理解していない、あるいは誤った認識をしていると思います。今回詳しく調べる前の僕も含めて。 loading と decoding の違い 画像のパフォーマンス改善で decoding="async" のほかに、もう一つよく言及されるのが loading="lazy" です。decoding 属性について詳しく見る前に、まずは loading 属性との違いについて理解したほうがいいと思います。 loading とは、ブラウザがどのように画像を読み込むかを

      decoding="async" について詳しく調べてみる
    • V8エンジンによる内部変換コードでasync/awaitの挙動を理解する

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

        V8エンジンによる内部変換コードでasync/awaitの挙動を理解する
      • neue cc - async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス

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

        • AWS CDKを始めるハンズオン ─ IaCの第一歩をAWS LambdaとDynamoDBのシンプルな仕組みで学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)

          AWS CDKを始めるハンズオン ─ IaCの第一歩をAWS LambdaとDynamoDBのシンプルな仕組みで学ぶ アマゾン ウェブ サービスが提供するIaC(Infrastructure as Code)の開発キットがAWS CDK(AWS Cloud Development Kit)です。本記事はAWS CDK入門者向けのチュートリアルとして、AWSでソリューションアーキテクトを務める吉川幸弘(@WinterYukky)さんによる、AWS Lambda関数でDynamoDBテーブルをスキャンするシンプルなハンズオンです。 みなさん、こんにちは。アマゾン ウェブ サービス ジャパン合同会社でソリューションアーキテクトを務めている吉川幸弘と申します。私は普段、西日本のお客様を中心に技術的なご支援や課題解決などをしています。 さっそくですが、みなさんはInfrastructure as C

            AWS CDKを始めるハンズオン ─ IaCの第一歩をAWS LambdaとDynamoDBのシンプルな仕組みで学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)
          • Chromeに入るRecorder機能の利用と注意点 - 虎の穴開発室ブログ

            こんにちは。虎の穴ラボのH.Hです。 今回は先日発表されたChromeの開発中の新機能であるRecorder機能について使用方法や利用する際の注意点などをまとめました。 Recoder機能とは ブラウザのChrome97で追加される予定の機能で、ブラウザの画面上で操作した記録を取得してくれる機能になります。 この記事を書いている2021年11月17日では一般に提供されているChromeの最新版は96となり、開発中の「Chrome Dev」もしくは「Chrome Canary」でRecorder機能を使用することができます。 利用している時の様子はChromeの開発者向けのページに公開されています。 developer.chrome.com 主な機能は以下の通りです。 ・操作の記録及び再実行(リプレイ)できる ・再実行時にパフォーマンスの記録・確認できる ・記録した内容の編集ができる ・操作

              Chromeに入るRecorder機能の利用と注意点 - 虎の穴開発室ブログ
            • jQuery 4.0.0 BETA! | Official jQuery Blog

              jQuery 4.0.0 has been in the works for a long time, but it is now ready for a beta release! There’s a lot to cover, and the team is excited to see it released. We’ve got bug fixes, performance improvements, and some breaking changes. We removed support for IE<11 after all! Still, we expect disruption to be minimal. Many of the breaking changes are ones the team has wanted to make for years, but co

              • 保守・理解しやすいコードを書きたい! 〜VSCode拡張機能で循環的複雑度と戦う〜 - Qiita

                参考: 循環的複雑度 ちなみに githubで最もやべー関数を発掘するという記事では、循環的複雑度が高い関数が紹介されています。 ものによってはリンク切れしてしまっていますが、最も複雑度が高いのはnode(JavaScript)のjo関数で5505だそうです。想像もつかない... どのようにすれば循環的複雑度を低く抑えられるのか? 計算方法から考えると、forやifによる分岐を減らしていくことが必要となります。 そのために、分岐の入るロジックを別関数として切り出し、1つの関数でやる事を絞り、分離することを理想として目指していきます。 とはいえ、いちいち複雑度の計算なんてしていられないですね。 そこで役に立つのが次のVSCode拡張機能です。 Code Metrics (VSCode拡張機能) この拡張機能は、TypeScriptやJavaScriptの関数・メソッドに循環的複雑度を表示して

                  保守・理解しやすいコードを書きたい! 〜VSCode拡張機能で循環的複雑度と戦う〜 - Qiita
                • Cursor Proを3日間で300回も使い倒してみた所感

                  はじめに AI搭載コードエディターCursorが話題なので自分にとって使いやすいのか実験してみました。 まだまだCursorの実験途中ではありますが、CursorProをサブスクしてたった3日でgpt-4に332回聞いてました。 Cursorはプロンプトの会話から現在のコードにDiffで提案してくれたり、エラーを解決してくれたり本当に便利で最高なのですが、頼り過ぎも良くないなと反省することもあったので、やったこと全部と感想をシェアしていきたいと思います。 やったこととしては、Cursorのチャットに質問しながら予備知識のないChatVRMというオープンソースのチャットアプリケーションの追加実装をしました。わりと簡単に実装できたこととうまくできなかったことがあるので例を挙げて紹介していきます。 Cursorとは Cursor(カーソル)とは、VScodeをフォークして作られたOpenAIのg

                    Cursor Proを3日間で300回も使い倒してみた所感
                  • GCP の Application Default Credentials を使った認証 - ぽ靴な缶

                    公式ドキュメントで説明されているけど、同僚に何度か説明する機会があったり、作る必要のないサービスアカウントキーを目にすることも多いのでまとめておく。 認証情報が登場しないアプリケーションコード 例えば以下のコードで Secret Manager に保存したトークンを取得することができる。SecretManagerServiceClient にサービスアカウントキーを渡さずとも動作する。 const {SecretManagerServiceClient} = require('@google-cloud/secret-manager'); const client = new SecretManagerServiceClient(); (async () => { const [secret] = await client.accessSecretVersion({ name: 'proj

                      GCP の Application Default Credentials を使った認証 - ぽ靴な缶
                    • WebブラウザでPythonが動作する!PyScriptの詳解 | gihyo.jp

                      鈴木たかのり(@takanory)です。今月の「Python Monthly Topics」では、Webブラウザ上でPythonが動作するPyScriptについて、内部構造なども含めて詳しく解説したいと思います。 PyScript公式サイト(https://pyscript.net/) Warning:PyScriptは現在非常に活発に開発が進んでいるプロダクトのため、将来的にこの記事のサンプルコードが動かなくなる可能性があります。記事執筆時点では最新バージョンであるPyScript 2023.03.1で動作確認しています。うまく動かない場合はPyScriptの公式ドキュメントなどを参照してみてください。 PyScript - PyScript documentation PyScriptとは? PyScriptは公式サイトに「Run Python in Your HTML」と書いてあると

                        WebブラウザでPythonが動作する!PyScriptの詳解 | gihyo.jp
                      • 非同期処理を使いこなそう ! -第 2 回 非同期処理と同期処理の処理構造 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

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

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

                          export async function getUserById(id: User'id'): Promise<User> { ... }

                            React プロジェクトのディレクトリ構成 - fsubal
                          • アプリエンジニア育成プロジェクト - pixiv inside

                            アプリエンジニア育成に取り組んでいます こんにちは、ピクシブで新規事業部に所属しています、ああうえ(@_kwzr_)と申します。普段のプロダクト開発に加えて、全社的なモバイルアプリ領域の開発体験の向上に取り組んでいます。 最近モバイルアプリの世界ではネイティブなフレームワーク以外の開発手段を採用するものが増えてきましたね。 また、ネイティブアプリ開発の進化によって、iOSではUIKitからSwiftUI、AndroidではAndroid ViewからJetpack Composeが採用されることが増えてきました。 モバイルアプリ領域の中で採用できる技術が増えてきたことで、最近は採用したいエンジニアと、世の中にいるエンジニアの技術的なミスマッチが起こりやすくなってきたと感じます。 ピクシブのアプリでは、ビューアーなどの閲覧体験が重要になってくるものが多かったり、ライブ配信・視聴機能や、ドロー

                              アプリエンジニア育成プロジェクト - pixiv inside
                            • OpenAPI Generator と TypeScript で型安全にフロントエンド開発をしている話 - SmartHR Tech Blog

                              こんにちは、SmartHR でフロントエンド開発を担当している @Tokky0425 です。 この記事では、私のプロダクトでの OpenAPI Generator を使ったフロントエンド開発の取り組みを紹介していきます。 目次 OpenAPI とは 「ラクラク分析レポート」の DX 上の課題 OpenAPI Generator とは 実際に generate してみる 生成ファイルを使ってみる 型情報を出力してみる 組み込み・運用の工夫 chokidar で監視する lint-staged に組み込む メリット・デメリット メリット デメリット まとめ OpenAPI とは OpenAPI とは、「REST API のドキュメントの記述形式を定めた仕様」のことを指しています。 簡単な例ですが、下記のような YAML ファイルがあるとします。 schema.yml paths: "/some

                                OpenAPI Generator と TypeScript で型安全にフロントエンド開発をしている話 - SmartHR Tech Blog
                              • 保守性の高いReact hooksコードの指針

                                前提 本記事は保守性の高いReact hooksコードの指針を記述します。指針はtipsに近いものから原則に近いものまで雑多に含まれます。総じてReact hooksの標準的なAPIを上手く扱う方法が多めです。 これらは保守性の低いコードを反面教師とした私的な経験則に基づきます。(思い出し次第随時追加していきます) ご留意ください。 解消したい痛み 再現が困難な不具合の発生 容易に無限ループが発生しうる 不具合発生箇所の特定が手間 分岐が多くコードリーディングに手間がかかる 解消する手法 useEffectは1ページに1つ useEffectにdeps自動補完除外コメントを入れる stateはプリミティブにする propsにフラグがある場合はコンポーネントを分ける useEffectは1ページに1つ 悪例: ユーザーイベントの処理 const [foo, setFoo] = useStat

                                  保守性の高いReact hooksコードの指針
                                • Firebase利用時に発生しやすい脆弱性とその対策10選 - Flatt Security Blog

                                  はじめに こんにちは。株式会社Flatt Securityセキュリティエンジニアの梅内(@Sz4rny)です。 本稿では、弊社がこれまでに実施してきたFirebase診断の事例や筆者独自の調査をもとに、Firebaseを活用して開発されたサービスにおいて発生しやすい脆弱性の概要やそれにより引き起こされるリスクおよびその対策を深刻度や発生頻度の評価を踏まえつつお伝えします。本稿を通じて、Firebaseを活用したサービスにおいて発生しやすい脆弱性にはどのようなものがあるのか、また、そのような脆弱性を埋め込むことなくセキュアなサービス実装を実現するためにはどのような観点に気をつければよいのかについて理解を深めていただけますと幸いです。 なお、本稿では「Firebase活用時に限って発生しうる脆弱性(例:Firestoreのセキュリティルールにおけるバリデーション不備)」と「Firebaseを活

                                    Firebase利用時に発生しやすい脆弱性とその対策10選 - Flatt Security Blog
                                  • TypeScript エラー処理パターン - Object.create(null)

                                    M 年前にも N 年後にも人類は同じ話をしている. まとめ エラーの発生方法は throw と return に大別できる throw には簡潔さ, return には明瞭さと型安全性といった特徴がある どちらの方法がより適しているかはプログラムの規模, エラーの種類, ハンドリングの方法などが判断の材料になる 実際にどちらの方法を使うかは上の判断材料と, フレームワークやプロジェクトのコーディング規約なども合わせて複合的に決めるのがよい エラー発生方法の分類 まず前提として, 関数から呼び出し元にエラーを伝える方法は以下の 2 つに大別できます. 逆にこの記事ではこれ以上の具体的な方法についての議論はしません. throw エラーを throw して呼び出し元に伝える方法です. 例えば以下のようなものが当てはまります. throw new Error("...") Promise.rej

                                      TypeScript エラー処理パターン - Object.create(null)
                                    • PythonでDDDやってみた💪 - techtekt

                                      はじめに 実行環境 ディレクトリ構造 app migrations/model pyproject.toml ソースコードと簡単な解説 app/core app/core/abstract app/core/decorator app/core/exception app/core/interface app/core/middleware app/core/mixin app/ddd app/ddd/application app/ddd/application/schema app/ddd/application/schema/studnet app/ddd/application/usecase app/ddd/application/usecase/student app/ddd/domain app/ddd/domain/student app/ddd/infra app/ddd

                                        PythonでDDDやってみた💪 - techtekt
                                      • Recoil について勉強した

                                        Fecebook が新しく発表した Recoil について 自分の学習手順 Getting Started | Recoil を写経して動かす Facebook 製の新しいステート管理ライブラリ「Recoil」を最速で理解する - uhyo/blog で非同期周りを理解 公式ドキュメントの API Reference で理解 <RecoilRoot ...props /> | Recoil これは自分が写経しながら書いた型定義。色々足りてないがチュートリアルで出る範囲は理解できる。 declare module "recoil" { export type RecoilState<T> = {}; export const RecoilRoot: React.ComponentType<{ initializeState?: (options: { set: <T>(recoilVal:

                                          Recoil について勉強した
                                        • What's New In DevTools (Chrome 96)  |  Blog  |  Chrome for Developers

                                          Preview feature: New CSS Overview panel Use the new CSS Overview panel to identify potential CSS improvements on your page. Open the CSS Overview panel, then click on Capture overview to generate a report of your page’s CSS. You can further drill down on the information. For example, click on a color in the Colors section to view the list of elements that apply the same color. Click on an element

                                          • 一休レストランのふつうのRustバックエンド開発 - 一休.com Developers Blog

                                            この記事は一休.com Advent Calendar 2023 25日目の記事です。 一休レストランでは、よりスムーズな予約体験の提供を目的とするシステムのリニューアルを進めています。その一環として、2023年10月から、レストラン個別ページの表示から予約までのスマートフォンビューにおいて、バックエンドのサーバをRustで書かれたものに置き換えました。 一休レストランの Rust バックエンドが正式リリースされました。https://t.co/7N4VGv5ej9 このページのスマートフォンビューはバックエンドが Rust で書かれた GraphQL になってます— naoya (@naoya_ito) October 4, 2023 本番運用が始まって3か月近く経ちましたが、これまで安定して継続的な開発と運用ができています。これはRustだからと構えることなく、「ふつう」のバックエンド

                                              一休レストランのふつうのRustバックエンド開発 - 一休.com Developers Blog
                                            • React で作る中規模 SPA のレイヤードアーキテクチャ - GiXo Ltd.

                                              TAG : Advent Calendar | Firebase | Firestore | React | Refeed | TypeScript | トチカチ | フロントエンド AUTHOR :   ギックス POSTED :  2020.12.23 08:25 この記事は GiXo アドベントカレンダー の 23 日目の記事です。 昨日は、少人数の開発で Kubernetes を活用するための設計戦略 でした。 MLOps Div. の堀越です。本記事では、React と TypeScript で SPA の実装を行う際に採用しているレイヤードアーキテクチャについてご紹介します。 レイヤードアーキテクチャというとクリーンアーキテクチャや DDD が有名ですが、弊チームフロントエンド の場合はクリーンアーキテクチャから SPA にマッチする箇所を部分的に取り入れた簡易版のレイヤードア

                                                React で作る中規模 SPA のレイヤードアーキテクチャ - GiXo Ltd.
                                              • Axios 使うのやめたらビルドサイズが 10 KB 減って、なんか知らんがパフォーマンスも良くなった話

                                                この記事について Zenn では長らく通信処理に Axios を使っていました。 しかし、Fetch API が多くのモダンブラウザなどで普通に使えるようになった今、使う必要性があまり無くなったため、Axios を使っている処理を全て Fetch API に置き換えることになりました。 この記事では、その置き換え作業をどう進めていったのか、その結果どう良くなったのかを解説していこうと思います 🗽 解説より置き換えた結果を知りたいのよ私は!!! って方が居るかと思いますので、最初に置き換えたことで良くなった部分を紹介しようと思います。 まず一番良くなったところといえば、ずばりサイト全体のビルドサイズが 10 KB も減りました。( ちなみに、10 KB は圧縮時のサイズで、圧縮しない場合 100 KB になります 😇 ワーオ ) グローバルのビルドサイズが 103.35KB gzip 時

                                                  Axios 使うのやめたらビルドサイズが 10 KB 減って、なんか知らんがパフォーマンスも良くなった話
                                                • 俺が考える最強の「麻雀点数申告練習アプリケーション」を作ってみる ~ Pythonによる麻雀点数計算問題の自動生成と音声による点数申告 ~ - エムスリーテックブログ

                                                  こちらはエムスリー Advent Calendar 2023 1日目の記事です。 Overview エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。趣味は麻雀でフリー雀荘で毎年200半荘以上打ちます。好きな麻雀プロは園田賢さんです。 麻雀を始めるときに一番の障壁になるのは点数計算ではないでしょうか? 特に符計算が初心者の関門のようです。一方私のような初中級者でも突然のレアな点数申告にまごつくことがあります。 そこで、今回はその人に合った麻雀の点数計算問題(主に符計算が焦点となる問題)を生成して、自分で点数計算&点数申告の練習をする方法を探求したのでその紹介をします。麻雀用語が少しだけ登場するので、対象読者は麻雀を少しでもかじったことのあるエンジニアの方です。 Overview 麻雀の点数計算の難しさ 現状の点数計算の練習

                                                    俺が考える最強の「麻雀点数申告練習アプリケーション」を作ってみる ~ Pythonによる麻雀点数計算問題の自動生成と音声による点数申告 ~ - エムスリーテックブログ
                                                  • ARM に存在する JavaScript 専用命令「FJCVTZS」を追う(ついでに V8 をビルドする)

                                                    前回の記事では、JavaScript の実行エンジン V8 の JIT 出力コードを読んでみました。記事は M1 Mac 上で動かした結果でしたので、ARM アーキテクチャのアセンブラを読むことになりました。 さてそんな ARM アーキテクチャですが、最近の ARM には FJCVTZS という JavaScript 専用の機械語命令があるのをご存知でしょうか?CPU に、特定の言語(それもコンパイラを持たない JavaScript)専用の命令があると知ったとき、私は大いに驚きました(過去にも Jazelle みたいなものはありましたが) 今回は、この FJCVTZS 命令について、実際にどれだけ効果があるのか、V8 をビルドしながら調べてみましょう。 FJCVTZS 命令とは? FJCVTZS 命令は、Arm v8.3 から導入された JSCVT 命令の一つで、JavaScript の言

                                                    • ChatGPT APIをUnityから動かす。|ねぎぽよし

                                                      こんにちは。 先日AIエージェント開発の技術解説記事を書いて「今後ChatGPTライクのAPIが出てきた瞬間に進化すると思う」という話をしたのですが… まさか3日後にChatGPT APIが出てくるとは思いませんでした。 というわけで今回はUnityからChatGPT APIを叩く方法について書いてみます。 先日の記事で用いたGPT-3のTextCompletionAPIよりも(Langchainなどを使わず)カスタマイズ無しで実際のAI利用シーンに活用できそうな印象を受けました。 具体的には… 応答速度が早い(応答の文章の長さによりますが、手元の環境では1~3秒で返ってきました) AI側の応答の前提条件の設定ができる。(キャラクターの性格や語尾など) (過去のプロンプトや生成結果を次のプロンプトに引き継ぐような実装をすることで)会話の文脈を考慮した応答をすることができる。 という特徴があ

                                                        ChatGPT APIをUnityから動かす。|ねぎぽよし
                                                      • Makefileの代わりにnpm scripts+zxを使う - 詩と創作・思索のひろば

                                                        そこそこの規模があるプロジェクトで実行すべきタスクを定義するとき、初手として Makefile を使いがち。 Pros make は事実上どんな環境にもあることを期待してよい シェルで実行されるコマンドをそのまま書ける タスクの依存関係が明示できる Cons make では positional arguments が使えない 少し複雑なことをしようとすると Makefile 専用の文法を覚える必要がある 現代では、ファイルベースのタスクの依存関係は make が発明されたころほどは必要ではない Docker とか Go とか Webpack がよしなにしてくれることが多い 例: docker compose のラッパー ちょっとしたコマンドのラッパーを書きたいことがある。Makefile を書きはじめたらすべてのエントリポイントを make にしたい。ということで、以下のような Make

                                                          Makefileの代わりにnpm scripts+zxを使う - 詩と創作・思索のひろば
                                                        • あなたはフロントエンドの何をテストしたいのか。 - Qiita

                                                          フロントエンドのテストをしよう Webのフロントエンドの自動化を進めようか。という話をしていて、 「そもそもテストってなんだ?」 「フロントエンドに特有のテストってなんだ?」 「〇〇ってツール流行ってるらしいってどうよ?」 みたいなことを話をしていました。そうしたときに、やっぱり知識足らねぇなぁ。と思ったので、2,3日でゴリゴリと内容をまとめてみる作業をしてみました。 あんまりこういう書き方はしないんですが、私自身散発的な思考で、フロントエンドのテストを調べることをしたので、そのような語り口で書いてみようと思います。 以下の内容は、あくまで例なので、別にこういう仕事があったわけではないです。 とりあえず投げられた要求・仕様 とりあえずなんか仕事が振ってきた。パラパラと要求を聞いてみると、こんな感じだった。 承認のダイアログが欲しい メッセージのフォントはOswald メッセージは変更できる

                                                            あなたはフロントエンドの何をテストしたいのか。 - Qiita
                                                          • Dockerコンテナをサーバレス化する「Google Cloud Run」で、非同期処理やバックグラウンドタスクなどが実行可能に

                                                            Googleは、Dockerコンテナをサーバレスで実行するサービス「Cloud Run」の新機能として、非同期処理などを可能にする「CPU allocation on Cloud Run」機能をプレビューとして発表しました。 非同期処理などが難しかったCloud Run サーバレスコンピューティングでは一般に、何らかのイベントやリクエストをトリガーにインスタンスが起動し、処理が終わるとインスタンスが終了します。 Google CloudのCloud Runではこうした処理をDockerコンテナで実現するサービスです。HTTPやgRPCなどによるリクエストによってあらかじめ用意されていたDockerコンテナが起動し、レスポンスを返したところでDockerコンテナが終了してCPUの割り当てが解放されるようになっています。 そのため、Cloud Runでは処理を非同期にしてレスポンスを先に返し、

                                                              Dockerコンテナをサーバレス化する「Google Cloud Run」で、非同期処理やバックグラウンドタスクなどが実行可能に
                                                            • 100秒で理解するPromise

                                                              そもそも非同期処理とは? Promiseについて知るためには、まず非同期処理について知っておく必要があります。 以下の動画で、非同期処理について100秒で解説しているので、そもそも非同期処理をよく知らないなぁという人はぜひ確認してみてください! Promiseとは では、本題です。 Promiseとは、ES2015で導入された、非同期処理の状態や結果を表現するオブジェクトのことです。 PromiseはES2015で導入された非同期処理の状態や結果を表現するビルトインオブジェクトです。 非同期処理はPromiseのインスタンスを返し、そのPromiseインスタンスには状態変化をした際に呼び出されるコールバック関数を登録できます。 jsprimer - 非同期処理:Promise/Async Function 例えば、出前アプリでピザを注文することをイメージしてみましょう。 ピザを注文すると、

                                                                100秒で理解するPromise
                                                              • firebaseでのパスワードログイン機能の実装をやりきるためのTips

                                                                Firebase Authentification は OAuth 2.0 フローにのっとったログイン方法以外にも Email/Password を使ったログイン方法も提供しています。 このログイン形式をちゃんと使おうとすると、これまでは Provider が担ってくれていたパスワードの編集、パスワードの再発行、メールリンクでのログイン、アドレスの本人確認など様々なことを考慮しなければいけません。 この記事ではそういった考慮をした Email / Password ログインに挑戦します。 基本的にはmanage-users, password-auth, email-link-authといった公式ドキュメントを読むと IPASS ログインに必要なことは書いてあるのですが、action URL を自前で用意するフローを採用するとそれらのドキュメントで賄えなくなり試行錯誤をたくさんしなければい

                                                                  firebaseでのパスワードログイン機能の実装をやりきるためのTips
                                                                • 【第2回】TypeScriptもウェブも仕様や原理から楽しむ | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

                                                                  2022年4月に著書『プロを目指す人のためのTypeScript入門』が発売された鈴木僚太さん(https://twitter.com/uhyo_)。QiitaやTwitterでは「うひょ(uhyo)」さんとして、TypeScriptやフロントエンドの話題を中心にウェブ技術に対する踏み込んだ解説でも知られています。 著書ではあえて触れられなかったという「TypeScriptでウェブアプリケーションをどう書くか」という観点へのヒント、なぜそれを書かなかったのか、そして仕様や原理に立ち返って自ら考えることの楽しさについて、株式会社一休CTOの伊藤直也さん(https://twitter.com/naoya_ito)が聞き出します。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてな

                                                                  • コーディングルールはマジでしっかり決めろって話

                                                                    どうも、フリーランスエンジニアの人です。 今まで関わったプロジェクトにおいてコーディングルールが曖昧だった環境で苦労したので、例に出しながら振り返ろうと思います。 ※ 本記事に登場するコード例は実際に存在するコードではありませんがヤバさは忠実に再現しました。 2022/11/5 追記 曖昧かつ実態のズレた変数名 変数の命名というものはエンジニアによって少々偏った傾向が見られますが、その変数が指し示す実態と命名に大きなズレがなく、主旨が伝わればエンジニアリングにおいて大きな問題はないはずです。 ですが、世の中には曖昧かつ実態と一致しない変数名が書かれたプロダクトコードが存在します。 以下のコードをご覧ください。 ※ 今回はJSを例に出します // ユーザーのデータを取得 export const getUserData = async (id) => { const res = await

                                                                      コーディングルールはマジでしっかり決めろって話
                                                                    • useEffectをやめて、Suspenseを使おう

                                                                      Reactコンポーネントの開発時、データフェッチは欠かせません。 SPAで開発を行う時、あなたも含めてuseEffect()を使ったことがあるはずです。 あなたがSWRやReact Queryの代わりにuseEffect()を使う理由は、いくつかあるのでしょう。 そんな方のために、Reactが提供する<Suspense>を使ってデータフェッチを行う方法を紹介します。 追記: Suspenseではウォーターフォール問題を解決できないとの指摘について 「Suspenseの実装」に記載のコードを見た限り、ウォーターフォール問題を解決できないとの指摘がありました。 実装の章では問題を解決することではなく、<Suspense>をどのように使うかに焦点を当てました。 具体的な実装方法に踏み込むとテーマから大きく外れてしまう可能性があったためです。 読みやすさを優先した結果、解決のための実装については割

                                                                        useEffectをやめて、Suspenseを使おう
                                                                      • JavaScriptの非同期処理をじっくり理解する (4) AbortSignal, Event, Async Context

                                                                        対象読者と目的 非同期処理の実装方法は知っているが、仕組みを詳しく知らないのでベストプラクティスがわからないときがある 実行順序の保証がよくわからないので自信をもってデプロイできない変更がある より詳しい仕組みを理解することでより計画的な実装をできるようになりたい という動機で書かれた記事です。同様の課題を抱える人を対象読者として想定しています。 目次 実行モデルとタスクキュー Promise async/await AbortSignal, Event, Async Context WHATWG Streams / Node.js Streams (執筆中) 未定 中止処理 並行処理ではしばしば実行中の処理を中止したい場合があります。 古典的なキャンセル処理 Webブラウザ/Node.jsともに、 setTimeout の中止が可能です。 const timeout = setTimeo

                                                                          JavaScriptの非同期処理をじっくり理解する (4) AbortSignal, Event, Async Context
                                                                        • Next.js + NestJS + GraphQLで変化に追従するフロントエンドへ 〜 ショッピングクーポンの事例紹介

                                                                          今回は、fragmentを活用するためにパターンCを採用しており、厳密には、以下のように方針を定めています。 SSR時のクエリ発行: ページコンポーネント単位 CSR時のクエリ発行: CSRが必要なコンポーネント単位 この際、取得したqueryの結果をどのようにfragmentへ変換するかというのがポイントです。 そこで、graphql-anywhereの filter メソッドを用いることで、クエリ結果をfragmentへ変換します。 以下は、簡略化されたクーポンページの実装例です。 type DetailPageProps = { // GraphQLクエリの結果 data: Query } const DetailPage: FunctionComponent<DetailPageProps> = ({ data }) => { // couponはGraphQLのCouponスキー

                                                                            Next.js + NestJS + GraphQLで変化に追従するフロントエンドへ 〜 ショッピングクーポンの事例紹介
                                                                          • React Server Components と GraphQL のアナロジー

                                                                            Next.js の App Router が安定版となり、React Server Components (以下 RSC) を実際に試す環境が整ってきた。 実際、今年はやれどこそこのプロダクトが Next.js を採用しただのやっぱり捨てだのといった話題が尽きなかったように思う。 かくいう自分自身も、今年は App Router の案件に取り組んで RSC と格闘する日々を送っていた。 その過程で、こんなようなことを考えるようになったので、今回はこの辺りの話を書き残しておこうと思う(何回か X に同じ旨の POST は上げていたけど、一回もちゃんとまとめてなかったので)。 RSC がない頃の、別の言い方をすると getServerSideProps を使っていた頃の、Next.js におけるアプリケーションの設計は、トラディショナルな MVC にかなり近しい。 ここでいう MVC は、Sp

                                                                              React Server Components と GraphQL のアナロジー
                                                                            • 達人出版会

                                                                              探検! Python Flask Robert Picard, 濱野 司(訳) BareMetalで遊ぶ Raspberry Pi 西永俊文 なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 知る、読む、使う! オープンソースライセンス 可知豊 きつねさんでもわかるLLVM 柏木餅子, 風薬 徹底攻略 AWS認定 クラウドプラクティショナー教科書 第2版[CLF-C02]対応 トレノケート株式会社 高山裕司 超楕円関数への招待 楕円関数の一般化とその応用 松谷 茂樹 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 Tom Hombergs(著), 須田智之(訳) 詳解 AWS CloudFormation 潮村 哲 その決定に根拠はありますか? 確率思

                                                                                達人出版会
                                                                              • TabFS

                                                                                Going through the files inside a tab's folder. For example, the url.txt, text.txt, and title.txt files tell me those live properties of this tab (Read more up-to-date documentation for all of TabFS's files here.) This gives you a ton of power, because now you can apply all the existing tools on your computer that already know how to deal with files -- terminal commands, scripting languages, point-

                                                                                  TabFS
                                                                                • ReactベースのあたらしいフレームワークRemixをためしてみた | DevelopersIO

                                                                                  OSSとしてリリースされたばかりのReactベースのフルスタックWebフレームワークであるRemixをためしてみました。 はじめに こんにちは、CX事業本部MAD事業部の森茂です。 re:Inventを前にAWSの情報も気になるところですが、フロントエンド界隈もReact Conf 2021を前にReact v18 betaをはじめ、Next.js v12やReact Router v6、新しいRoutingライブラリReact Locationのリリースなどなど注目のリリースラッシュが続いているようです。そんな中Reactをベースにした新しいフレームワークであるRemixが本日(2021/11/23日本時間)リリースされました。 Remixとは RemixはReactRouterの作者でもあるMichael Jackson氏(@mjackson)とRyan Florence氏(@ryan

                                                                                    ReactベースのあたらしいフレームワークRemixをためしてみた | DevelopersIO