並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 264件

新着順 人気順

lodashの検索結果1 - 40 件 / 264件

  • 500点出す! - ゆーすけべー日記

    「Web Speed Hackathon 2022」という「非常に重たいWebアプリをチューニングして、いかに高速にするかを競う競技」があります。 リモート参加で11月1日から27日まで開催されています。 ここで言う「高速」とはCore Web Vitalsのスコアが高いことを言い、Lighthouseのスコアをベースにした500点満点の争いです。 ISUCONのフロントエンド版ですね。 以前にも同じ課題で「学生向け」と「社内(サイバーエージェント)向け」が行われたらしく、まだ500点を出した人はいません。 そこで僕は「満点を出したい」と思い、初日から、いやむしろフライングしていたからその前から頑張ってきました。 そして、先日(17日)、ついに500点満点を出しました! たぶん、レギュレーションはクリアしている、はずです(もし違反してたらすいません…)。 自動で行われる「Visual Re

      500点出す! - ゆーすけべー日記
    • 初めてメンターになるときに意識すると良さそうなこと10選

      皆さんこんにちは、株式会社ラクーンホールディングスでエンジニアをしている川﨑です。 そろそろ新入社員が入社してくる時期ですね。新たなメンバーとの仕事にワクワクする方も多いと思います。 私は今年度に入社した新卒社員のメンターを務めました。後輩に本格的に仕事を教えるのは初めての経験だったので、後輩が配属される直前まで「将来を台無しにしたらどうしよう」と考えていました。 結果的に私がメンターをした彼は、1年目とは思えないレベルで素晴らしい技術力を身に着けてくれたので、彼の成長に多少役に立てたのかなと思います。 おそらく来年度初めてメンターとなる方々の中にも、私と同じように良いメンターになれるか不安な方がいるのではないでしょうか。 この記事では 私の経験と反省から、私が思う『メンターになるうえで意識すると良いこと』をお伝えします。 是非メンターになる準備に役立てていただければと思います。 協力して

        初めてメンターになるときに意識すると良さそうなこと10選
      • ブラウザバック時の表示を最適化する Yahoo!ニュースの取り組み事例

        ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo!ニュース を担当しているエンジニアの喜楽です。 今回は、Yahoo!ニュースが取り組んでいるブラウザバック時の表示最適化手法について紹介します。 なぜブラウザバック時の挙動に注目するのか ユーザーがYahoo!ニュースのページを閲覧し、別のページに遷移する方法は大きく分けて以下の2つが考えられます。 (A) リンクをたどってページを遷移する (B) ブラウザーのナビゲーションボタンまたはスワイプ操作によって遷移する 「戻る」による遷移(ブラウザバック) 「進む」による遷移(ブラウザフォワード) Yahoo!ニュースでは総PVのうち一定程度が(B)のブラウザバックまたはブラウザフォワードによるページ遷移時のも

          ブラウザバック時の表示を最適化する Yahoo!ニュースの取り組み事例
        • 社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング

          この記事は、Merpay Tech Openness Month 2023 の4日目の記事です。 こんにちは。メルコインのバックエンドエンジニアの@goroです。 はじめに このGitHub Actionsのセキュリティガイドラインは、社内でGithub Actionsの利用に先駆け、社内有志によって検討されました。「GitHub Actionsを使うにあたりどういった点に留意すれば最低限の安全性を確保できるか学習してもらいたい」「定期的に本ドキュメントを見返してもらい自分たちのリポジトリーが安全な状態になっているか点検する際に役立ててもらいたい」という思いに基づいて作成されています。 今回はそんなガイドラインの一部を、社外の方々にも役立つと思い公開することにしました。 ガイドラインにおける目標 このガイドラインは事前に2段階の目標を設定して作成されています。まず第1に「常に達成したいこと

            社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング
          • フロントエンドを100倍速くした( ^ω^) - Qiita

            おはようございます、なのくろです。年の瀬ですね。 この記事は ABEJA Advent Calendar 2020 の最終日です。 追記:おかげさまで Qiita LGTM賞 を受賞いたしました、ありがとうございます! 私は2020年01月にABEJAへ入社しました。チームではフロントエンド開発全般を任されています。 参入してちょうど1年が経過しましたので、今年取り組んだことをまとめました。 「フロントエンドを100倍速く」というタイトルは誇張気味なのですが、難しいことはせず、基本的なパフォーマンス改善を素直に実践したという話を書きます。 本稿では事例とやったことを紹介するのみですが、何かしらの知見や改善のきっかけに役立てば幸いです。 サービスについて 話をする前に、どんなサービスを開発しているかについて少しだけ触れます。 ABEJA社では「Insight for Retail」という、小

              フロントエンドを100倍速くした( ^ω^) - Qiita
            • Webpack チャンク最適 テクニック - Qiita

              ターゲット 巨大なSPAを作ってしまった人へ 巨大なSPAを作らないように気をつけたい人へ 今回はJSだけにフォーカスするが、もっというと、 超速本 を読んでください。 注意:本資料は、webpack チャンクの挙動を概念的に説明することを重視しているので、 webpack の詳細な設定や、出力ファイル名などは実際の処理と一致しない。適宜自分の手元にある設定とすり合わせるように。 昨今のJSビルド問題と、その解決のためのゴール設定 巨大なJS(+最近は in JS された各種SVGやCSS)はダウンロードだけではなく、UIスレッドのCPUをブロックする。 これはとくにCPUが貧弱な端末で体験が悪化する。そしてビルド時間で開発者体験を阻害する。 できれば webpack 推奨の 144kb 以内にしたい…が現実的に難しいので、 せめて 350kb ぐらいに抑えたい。 SPAなら (ローディン

                Webpack チャンク最適 テクニック - Qiita
              • React界隈で話題になっている「React Server Components」についてまとめました! | DevelopersIO

                どうもReact大好きCX事業部の片岡です! 今回はReact界隈で話題になっている「React Server Components」についての内容を意訳してみました。 元ネタ 話題になっているこちらの記事が元ネタです。 https://reactjs.org/blog/2020/12/21/data-fetching-with-react-server-components.html 概要 Fetch APIでデータをやり取りすると、バケツリレーが発生します。例えば、Spotifyのアーティストページにはアーティストの情報と人気の曲とアルバム一覧が並びます。この時、人気の曲とアルバム一覧を取得するには、アーティスト情報を取ってこないといけません。そうすると、アーティスト情報を取得している間と人気の曲・アルバム一覧を取得するまでにクライアントサイドとサーバーサイドで無駄な待機時間が出来てし

                  React界隈で話題になっている「React Server Components」についてまとめました! | DevelopersIO
                • lodash やめ方 - Qiita

                  みなさん、 lodash で消耗してますか? 私は消耗しています。 なぜ lodash で消耗するかというと、とにかく思考停止でインストールされ、 node_modules 下で大量に重複します。サイズが大きいlodashが複数バンドルされてビルドされると、重篤なパフォーマンス上の問題を引き起こします。 lodash には実装上の問題もあり、異様に丁寧に、そして富豪的に作られており、その結果ビルドサイズが無駄に大きいです。丁寧に作られて入るのですが、現代のフロントエンド水準や一般的なポリフィルと噛み合っていません。というわけで、常々やめたいと思っています。 ちゃんとES201xを追ってる人からすると、ほとんどの lodash のメソッドは不要に見えるはずです。本エントリは、思考停止で lodash で実装しようとする人に、ちょっと考え直しては? と投げつける用の記事になります。 現代におい

                    lodash やめ方 - Qiita
                  • アンサー: なぜTypeScriptの型定義に凝るのか - Qiita

                    この記事は、昨日公開された以下の記事に対するアンサー記事です。TypeScriptで型定義に凝る派筆頭(自称)として、このお題に対して別の視点から光を当ててあげるためにこの記事を用意しました。 TypeScript の型定義に凝りすぎじゃね? まず最初に、この記事(以下では元記事と呼びます)の著者を攻撃したり、元記事の内容を否定する意図はないことをご理解ください。結局のところ、考え方が異なり、前提が異なるから異なる結論になっているだけなのです。TypeScriptを使う皆さんがいろいろな観点から見た情報を取得し、自分の状況に応じた適切な考え方・判断をできるようにすることがこの記事の目的です。 要約 大きなコードを小さく分解しても本質的な難しさが消えるわけではないよ? 型はドキュメントなんだから正確に書こうぜ! 外界との接続も妥協せずに型システムで解決しようぜ! 機械にできる仕事を人間がする

                      アンサー: なぜTypeScriptの型定義に凝るのか - Qiita
                    • Vue.jsやReactなど、JavaScriptライブラリのコードスニペットを利用できるVS Codeの拡張機能 -Snipsnap

                      サポートしているJavaScriptライブラリの一覧(上記以外にもたくさんあります) Snipsnapは現在のプロジェクトで使用している言語やパッケージに基づいて、ライブラリで使用可能なスニペットをナビゲートし、必要なスニペットを選択します。 Snipsnapのインストール Snipsnapのインストールは、VS Code Marketplaceから。 VS Codeで開いたら、「Install」をクリック Snipsnapの使い方 Snipsnapは、手動でアクティブ化する必要はありません。ワークスペースフォルダにpackage.jsonファイルが含まれ、すぐに使用できます。トリガーが必要な場合は、コマンドパレットのReload Windowを使用します。 設定 利用可能な設定オプションは、スニペットのリクエストから特定のライブラリを除外することだけです。Snipsnapはロックファイル

                        Vue.jsやReactなど、JavaScriptライブラリのコードスニペットを利用できるVS Codeの拡張機能 -Snipsnap
                      • JavaScriptからletを絶滅させ、constのみにするためのレシピ集 - Qiita

                        はじめに 本記事では、constこそが唯一神であることを証明したあと、letを使いがちな場面でいかにしてconstを使うかをまとめていきます。なお、ES2018までの基本構文(reduce, async/await, 配列とオブジェクトのスプレッド構文)を使用します。「いや、reduceとかスプレッド構文とか難しいからlet使うわ」という方のために、便利メソッド詰め合わせであるLodashを使った例もご紹介します。もちろん、Lodashは機能に対してサイズが大きいライブラリであるため、フロントエンド開発でバンドルサイズを軽減したいという方などはLodashの例は無視し、Lodashを使っていない方の例をご参照いただければと思います。 追記:Lodashの使用について 「Lodashのコードにlet使われてるやん」というご指摘を多く頂いたので追記いたします。 誤解を招くタイトルにしてしまい申

                          JavaScriptからletを絶滅させ、constのみにするためのレシピ集 - Qiita
                        • [ChatGPT API][AWSサーバーレス]ChatGPT APIであなたとの会話・文脈を覚えてくれるLINEボットを作る方法まとめ | DevelopersIO

                          シークレット類の取り扱い シークレットやAPIキーをソースコードにハードコードするのはあまり良くない習慣です。 [レポート][GitGuardian]ハードコードされたシークレットに対応することはなぜ急務なのか? – CODE BLUE 2022 #codeblue_jp | DevelopersIO これらの値は環境変数経由で読み込ませるのが良いでしょう。今回はSSMパラメータストアに値を手動でセットし、それをCDKデプロイ実行時に読み取ってLambda環境変数にセットするようにします。 ちなみにパラメータストアやSecretsManagerから直接読み込む方法もあるようです。 [アップデート] Lambdaから直接Parameter Store/Secrets Managerから値を取得できるようになりました! | DevelopersIO Lambda関数とAPIGateway Re

                            [ChatGPT API][AWSサーバーレス]ChatGPT APIであなたとの会話・文脈を覚えてくれるLINEボットを作る方法まとめ | DevelopersIO
                          • 外注で初期開発したシステムを内製化するためにやったこと

                            この記事は FastDOCTOR After Advent Calendar 27日の記事です。 はじめに ファストドクター株式会社でテックリードをしている shirauix と申します。 弊社では、ある Next.js アプリケーションを別会社のパートナーさんに外注することによって初期開発を行いました。ある時点からこのシステムを内製化することになったのですが、それにあたって多くの課題を解決する必要がありました。 この記事では、外注と内製のそれぞれのメリット・デメリットや、内製に切り替える際にどんな苦労があったのかについての赤裸々な事例をご紹介します。 対象となる読者 外注で初期開発したシステムを内製に切り替えてメンテナンスしようとしているエンジニアの方 新しくシステムを開発したいが、外注と内製のどちらを選択すべきか悩んでいる方 外注と内製の違い 外注するか内製するかはあくまで手段の話であ

                              外注で初期開発したシステムを内製化するためにやったこと
                            • ast-grep VSCode: 構造検索と置換の強力なツール

                              こんにちは、 ast-grepの作者Herringtonです。 正規表現でコードを検索したことがある方なら、複数行のマッチングや入れ子構造の処理、コメントの無視などに苦労したことがあるかもしれません。 そこで、ast-grep VSCodeという新しい拡張を紹介します。これは、構造的検索と置換(SSR)という技術を利用して、より正確で効率的な検索と置換を実現するツールです。 構造検索は? テキスト検索と置換の限界 例えば、JavaScriptコードをリファクタリングして、lodash の _.filter 関数をネイティブの Array.prototype.filter メソッド に置き換えたいとします。単純なテキスト検索と置換は次のようになります: これは一部のケースではうまくいくかもしれませんが、いくつかの問題があります。 一行の式しかマッチングできません。コードが複数行にまたがってい

                                ast-grep VSCode: 構造検索と置換の強力なツール
                              • 知らないのは損!npmに同梱されているnpxがすごい便利なコマンドだった | DevelopersIO

                                Nodeのパッケージマネージャーであるnpmにはnpxというコマンドが同梱されています。これまであまり使ってこなかったのですが、調べてみたらとても便利なコマンドだったので使い方などをお届けします。 こんにちは。サービスグループの武田です。 Nodeは現代のフロントエンド開発にはなくてはならない存在となりました。またクラスメソッド社内で静かなブームとなっているAWS CDKでの開発もNodeを利用します。そのCDKプロジェクトのひな型を作成する際に、npxコマンドを使用している例をよく見かけたのですが、そういえばこのコマンドよく知らないな?ということで調べてみました。 検証環境 次の環境で検証しています。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.5 BuildVersion: 18F132 $ node -v v10.16.

                                  知らないのは損!npmに同梱されているnpxがすごい便利なコマンドだった | DevelopersIO
                                • Mirrativ のバックエンドで使っているGoライブラリを紹介する! - Mirrativ Tech Blog

                                  こんにちは、バックエンドエンジニアの夏(なつ)です。今回はMirrativのバックエンドで使っているライブラリをご紹介します。 これらの記事のバックエンド版になります!(2年越し) tech.mirrativ.stream tech.mirrativ.stream ライブラリ一覧 https://pkg.go.dev/ オリジナルの The Go gopher(Gopherくん) は Renée French によるデザイン cloud.google.com/go/bigquery 分析チームが生成したユーザの特徴量などがBigQuery上に存在しているため、それらをバッチ処理でMySQL上に取得する際に利用しています。 tech.mirrativ.stream cloud.google.com/go/compute/metadata 開発環境などでしか動いてほしくない処理が本番環境上で動

                                    Mirrativ のバックエンドで使っているGoライブラリを紹介する! - Mirrativ Tech Blog
                                  • IEが終了したので、webpackやbabelは不要? - Qiita

                                    IE終了により、webpackやbabelを使う必要がなくなるのか、フロントエンドからビルドステップを完全に消し去ることはできるのか。 そもそもなぜフロントエンドを「ビルド」していたのか そもそもなぜwebpackやbabelを使ってJavaScriptをバンドル(1ファイルにまとめる)していたのか 1. HTTP/1.1とモジュールシステムの相性の悪さ ブラウザにはES Moduleというモジュールシステムが導入されています。これはimport文で他のファイルを読み込むことができるシステムです。 HTTP/1.1については、ブラウザ側で同時接続数制限があります。これは、ファイルを多数読み込む必要があるES Modulesには不向きでした。 2. ブラウザのES Module対応率の低さ ES ModulesはIE非対応です。開発するWebサイトがIEをターゲットにしたい場合、ES Mod

                                      IEが終了したので、webpackやbabelは不要? - Qiita
                                    • “Tao of Node - Design, Architecture & Best Practices” 日本語翻訳

                                      私が働いているAniqueという会社では、1年前に全てのソフトウェアでTypescriptを採用することにしました。私たちが開発している進撃の巨人のNFTサービス “Attack on Titan: Legacy” でも採用しています。 TypescriptではNestJSという素晴らしいAPIフレームワークを利用することができ、生産性高く開発を続けることができます。また、私たちはフロントエンドでNext.jsを利用しています。言語レベルでのコンテキストスイッチを抑えることで、一人のエンジニアがフロントエンドとバックエンドのどちらもの機能を開発する環境が作れました。 しかし、Nodeならではの作法や設計について、Web上にはたくさんの情報があるものの、あまりにも情報が多すぎて、まとまったプラクティスになかなか出会うことができませんでした。そのため、最初はチーム内での共通認識を作るのに苦労し

                                        “Tao of Node - Design, Architecture & Best Practices” 日本語翻訳
                                      • Node.js Dual Packages (CommonJS/ES Modules) に対応した npm パッケージの開発 - Cybozu Inside Out | サイボウズエンジニアのブログ

                                        こんにちは。フロントエンドエキスパートの平野(@shisama_)です。 フロントエンドエキスパートチームでは業務時間の 30 % の時間で技術探究を行っています。 今回は探究した技術の中から Node.js の ES Modules(以下 ESM)についてと Dual Package (CommonJS/ES Modules) に対応した npm パッケージの開発について紹介します。 ES Modules の特徴 ESM はブラウザ互換 ESM は Strict モード ESM は非同期 ESM は静的解析可能 Node.js の ESM 対応について Dual Package(CJS/ESM)に対応した npm パッケージの開発 Conditional Exports によるファイルの指定 .mjs と .cjs require など CJS 特有の機能を使う ESMから CJS ファ

                                          Node.js Dual Packages (CommonJS/ES Modules) に対応した npm パッケージの開発 - Cybozu Inside Out | サイボウズエンジニアのブログ
                                        • __proto__の除去でNode.jsのプロトタイプ汚染を防げないケース - knqyf263's blog

                                          前提 Node.jsのプロトタイプ汚染について書いているのですが、プロトタイプの説明(prototype と __proto__ の関係とか)を定期的に見直さないと綺麗サッパリ忘れる程度にはNode.js触っていないので、何かおかしいところあればご指摘お願いします。 概要 Node.jsではここ数年プロトタイプ汚染攻撃が流行っています。概要は以下を見れば分かると思います。 jovi0608.hatenablog.com そもそもプロトタイプって何?という人は以下の記事が分かりやすいです。自分はお守りのように定期的に読んでます。 qiita.com 外部から送られてきたJSONなどをパースして変換し、そのオブジェクトをmergeやcloneする際に __proto__ を上書きすることで Object.prototype を汚染するというものです。このオブジェクトが書き換えられると、新しく作

                                            __proto__の除去でNode.jsのプロトタイプ汚染を防げないケース - knqyf263's blog
                                          • なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita

                                            なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜ShellScriptBashshellPOSIX まえがき この記事は「シェルスクリプトで高い移植性と生産性を両立させるシリーズ」の第一弾です。移植性と生産性を両立させるための前提知識として POSIX コマンドの問題点について解説します。第二弾では高い移植性と互換性を実現させるための考え方、そして第三弾、第四弾ではそれを実現するシェルスクリプトの具体的な実装テクニックを紹介します。第五弾では現実的な問題と回避方法について解説する予定ですがまだ具体的な内容は決まっていません。第五弾はその前に「シェルスクリプト入門(仮)」の記事を書こうと思ってるので少し遅くなると思います。もし興味がある方は記事をストックしていると更新時に通知されると思います。 2021-07-11 追記 記事が長くなった

                                              なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita
                                            • JavaScript にイミュータブルな配列操作メソッドを導入するプロポーザルについて

                                              この記事では、現在 Stage 1 のプロポーザル Change Array by copy について解説する。 プロポーザルの詳細については、https://github.com/tc39/proposal-change-array-by-copy を参照してほしい。 また、ここで紹介した仕様に関しては今後更新されていく可能性がある。 概要 Change Array by copy は、簡単にいえばイミュータブルな配列操作メソッドを導入するプロポーザルである。 JavaScript の配列には多くのインスタンスメソッドがあり、それらを使って配列を操作できる。 配列のインスタンスメソッドには、ミュータブルなもの、つまりもとの配列を変更することによって配列を操作するタイプのものがいくつかある。 たとえば、Array.prototype.push や Array.prototype.pop、A

                                                JavaScript にイミュータブルな配列操作メソッドを導入するプロポーザルについて
                                              • 開発者のためのReactJSロードマップ

                                                ThemeSelection 高品質でモダンなBootstrap HTMLテーマや管理者向けテンプレートを提供するUIキットベンダ この記事は、著者の許可を得て配信しています。 https://dev.to/theme_selection/reactjs-roadmap-for-developers-2824 ReactJSまたはReactは、ユーザーインターフェイスやUIコンポーネントを構築するためのオープンソースのフロントエンドのJavaScriptライブラリです。Facebookや個人の開発者や企業のコミュニティがメンテナンスをしています。近年、コンポーネントベースのGUI開発に最適なライブラリの一つとして成長しています。 AngularやVue.jsのようなフロントエンドフレームワークは他にもありますが、Reactが他と違うのは、コンポーネントベースのGUI開発だけに焦点を当ててお

                                                  開発者のためのReactJSロードマップ
                                                • SBOMで始める脆弱性管理の実際 - NTT Communications Engineers' Blog

                                                  この記事は、 NTT Communications Advent Calendar 2022 1日目の記事です。 はじめに こんにちは。イノベーションセンターテクノロジー部門の西野と申します。 「Metemcyber」プロジェクトで、脅威インテリジェンスの運用や活用に関する研究開発をしています。 今回の記事では、SBOMを利用した脆弱性管理の取り組みについてご紹介します。 実は NTT Communications Advent Calendar に6年連続で寄稿しているので、そろそろ名前を覚えてあげてください。 SBOMとは? SBOMは「ソフトウェア部品表(Software Bill Of Materials)」と呼ばれるもので、一般的には特定のソフトウェアに含まれるコンポーネントの依存関係を記述するために利用されます。記述フォーマットとしてはSPDXやCycloneDXが有名です。

                                                    SBOMで始める脆弱性管理の実際 - NTT Communications Engineers' Blog
                                                  • package.json dependencies メンテの仕方 最短ルート - Qiita

                                                    package.json の dependencies を最新に保って脆弱性を解消するために、どこから手を付ければいいのか。 「半年前に npm install で追加したっきり。パッケージのアップデートなんて考えたことなかった」という人や「GitHub から security alert が届いてるけども見て見ぬふりをしている」という人向けに、package.json の dependencies をメンテ方法について個人の考えを書いてみます。 Node.js を使っている人にはおなじみ package.json。 package.json の中で一番よく見るのが dependencies(個人の感想、次点で scripts)。 そして、依存パッケージが着々とバージョンアップしていくにも関わらず放置されてしまって後々問題になりがちなのも dependencies 。 npm instal

                                                      package.json dependencies メンテの仕方 最短ルート - Qiita
                                                    • パフォーマンスチューニング、ちょっとその前に - pastak-pub

                                                      pastak.iconPasta-K @ Kyoto.js 17 こんにちは 誰 京都大学工学部情報学科7回生 株式会社はてな アルバイト TypeScript Nota Inc Gyazo開発チーム アルバイト JavaScript / React / Ruby on Rails / Browser Extension ビール仕入れ業 / ビールサーバー運用エンジニア 趣味: ビール🍻 今日のトークテーマ 先月ブログに書いた ウェブページの表示を遅くなくしたい時の道標 - ぱすたけ日記 の話をします 主にウェブページの表示に関するパフォーマンスの話 ウェブページのパフォーマンス 阿部寛のホームページは高速 素朴なHTML CSS無し テーブルレイアウト ウェブアプリケーションを作っていると、素朴だったページも雪だるま式に色んなものがくっついてくる 画像 JS/CSS あらゆるモジュール

                                                        パフォーマンスチューニング、ちょっとその前に - pastak-pub
                                                      • Lighthouseの点数を50点以上改善したお話 – TravelBook Tech Blog

                                                        トラベルブックのフロントエンドチームでは2020年の9月から、ページのパフォーマンス改善に取り組んでいます。 今回は今までどのようにやってきたのかを紹介したいと思います。 Core Web Vitals 2020年5月、Core Web Vitals がSEOに影響されるというのがGoogleから発表され、集客的にもユーザー体験をページパフォーマンスが重要になりました。 弊社はメディアサービスを運用しており、SEOはビジネス的に重要な指標としています。 そのため、Core Web Vitals をパフォーマンス改善の指標としました。 Core Web Vitalsはより良いユーザー体験を提供するための指標となっていて、読み込み時間、インタラクティブ性、視覚的な安定性 に焦点をあてた下記3つの指標をベースに計測します。 Largest Contentful Paint (最大視覚コンテンツの

                                                          Lighthouseの点数を50点以上改善したお話 – TravelBook Tech Blog
                                                        • C#でテキストエディタエンジンをフルスクラッチで実装してWebAssemblyで動かした話 - Qiita

                                                          デモ 以下のリンクから試せます。 https://crash.jp/apps/crash-editor/ 未圧縮版(5MB) https://crash.jp/apps/crash-editor-br/ Brotli圧縮版(2.1MB) 環境によっては表示まで数秒かかります。二回目以降はキャッシュから読み込まれるので、表示に時間はかかりません。 キャッシュはブラウザの開発ツールから削除可能です。以下はChromeの場合。 開発ツール > Applicationタブ > Cache > Cache Storage ※デモを何度か上げなおしているので、エラーになる場合にはキャッシュを削除してみてください 動作環境 WebAssemblyに対応したブラウザが必要ですが、最近のブラウザであればまず問題ないです。 自分で確認した環境 Windows 10 Pro, Chrome/新Edge/Fire

                                                            C#でテキストエディタエンジンをフルスクラッチで実装してWebAssemblyで動かした話 - Qiita
                                                          • ブラウザ上からNode.jsやPythonでバックエンドを無料で開発可能な「Napkin」を使ってみた! - paiza times

                                                            どうも、まさとらん(@0310lan)です! 今回は、ブラウザ上からNode.jsやPythonをプログラミング可能なクラウドエディタを提供する無料のWebサービスをご紹介します。 サーバレスでバックエンドを開発できるうえ、シンプルなエディタから即座にエンドポイントを作って公開もできる便利なサービスとなっています。 手軽にサーバ側の処理を構築したい場合やFaaSのように使いたい方にも最適なのでぜひ参考にしてみてください! 【 Napkin 】 ■「Napkin」の使い方 それでは、「Napkin」をどのように使えばいいのか詳しく見ていきましょう。 まず最初にサイトのトップページから【Sign Up】ボタンをクリックして無料のユーザー登録を済ませておきます。 登録方法はいくつかありますが、今回はもっとも簡単なGitHubアカウントを利用してみます。 確認用のウィンドウが表示されるので承認をし

                                                              ブラウザ上からNode.jsやPythonでバックエンドを無料で開発可能な「Napkin」を使ってみた! - paiza times
                                                            • ヤフー全社横断「Webパフォーマンス改善」の取り組み(Tech-Verse 2022)

                                                              ヤフーで全社を横断して行ってきたWebパフォーマンス改善の取り組みを紹介します。以下の表の数値は、ヤフーのWebサービスと競合のWebサービスのパフォーマンス速度を比較したとき、ヤフーのWebサービスのほうが高速であるサービスの割合を示しています。プロジェクトの実施前は62%でしたが、実施後は83%まで改善することに成功しています。 ■ヤフーのサービスと、その競合に当たるサービスをベンチマークとして比較したとき、ヤフーのほうが速い割合 実施前 実施後 下図のサーチコンソール画面を見てください。Yahoo!映画におけるWebパフォーマンスが良好であることを示す「緑色」が大幅に増えています。Yahoo!知恵袋に至っては、改善が必要な「黄色」の割合をほぼ0まで減少させることができています。 このような結果を出すことができたプロジェクトで実践してきた内容を、3つに分けて紹介します。 実施した背景

                                                                ヤフー全社横断「Webパフォーマンス改善」の取り組み(Tech-Verse 2022)
                                                              • 実践 Node.js Native ESM — Wantedlyでのアプリケーション移行事例 | Wantedly Engineer Blog

                                                                Wantedlyではこのたび、フロントエンドアプリケーションのひとつをNative ESM化しました。本記事ではNative ESM化の必要性と、必要な作業について説明します。 この記事の概要Node.jsにはNative ESMというモードがある。Native ESMはまだ普及していないが、ライブラリ側の更新が進み、移行が必要になりつつある。Native ESMをめぐる状況は (この記事の長さからわかるように) 色々複雑で、概念をちゃんと説明するだけでも大変。Native ESMへの移行にあたってはさまざまな困難が待ち受けている。Native ESMとは歴史的経緯から、JavaScriptには複数のモジュールシステムがあります。そのうちNode.js周辺でよく使われるのはCommonJS ModulesとES Modulesです。 CommonJS Modules (CJS) は実質的に

                                                                  実践 Node.js Native ESM — Wantedlyでのアプリケーション移行事例 | Wantedly Engineer Blog
                                                                • webpack のコード分割の初歩 - 30歳からのプログラミング

                                                                  JavaScript や TypeScript を使ってウェブアプリを提供する場合、開発時はimportやexportなどの ES Modules を使い、公開時はファイルをバンドルして公開することが多い。 以下の記事に書いたように、現在の主要なブラウザは ES Modules に対応してものの、バンドルせずに公開してしまうとパフォーマンスに悪影響を与える可能性がある。 numb86-tech.hatenablog.com ファイル数が増えれば増えるほど影響は深刻になるため、依存関係が深いライブラリを使っている場合などは、レイテンシが飛躍的に増加してしまう。 そのため、バンドルせずに公開するのは現実的ではない。 バンドルしてひとつのファイルにまとめてしまえば、JavaScript のダウンロードは一度で済む。 しかしそうすると今度は、バンドルファイルの肥大化という問題が発生する。 巨大なフ

                                                                    webpack のコード分割の初歩 - 30歳からのプログラミング
                                                                  • メソッドの名付けは決して甘くない——二つの JavaScript プロポーザルが歩んだ道のり - Qiita

                                                                    はじめて技術記事を書いてみました。ぐらふぃーむと申します。 ECMAScript(いわゆる JavaScript)の先端を操る TC39 に関する情報が(少なくとも日本語コミュニティでは)思うより少なかったため初回は「SmooshGate 事件」と「Array Grouping プロポーザル」を取り上げようと思います。 拙い文章なのでおかしいところがあればご指摘願います。編集リクエスト機能もご活用ください。 SmooshGate 事件 2023 年になって Array.prototype.flat メソッドを知らない JavaScript デベロッパーはほとんどいないでしょう。しかしその裏にはあまり知られていない、メソッドの名前や運命に関わる出来事があります。それが「SmooshGate 事件」です。 メソッド自体を解説する文章ならいくらでもありますのでそれを省きさせていただきます。念のた

                                                                      メソッドの名付けは決して甘くない——二つの JavaScript プロポーザルが歩んだ道のり - Qiita
                                                                    • クライアントサイドからサーバサイドまで破壊するテンプレートエンジンを利用した攻撃と対策

                                                                      ユーザー入力として受け取ったテンプレートをコンパイル テンプレートレベルがProgramming Language Templateは安全にコンパイルするのが難しい 高度なテンプレートはプログラミング言語そのもの コンパイル時に任意のコードが実行できてしまう => ⚠Danger Programming Language Templateをコンパイルする危険例: ローカル メールでマクロ付きのWordファイルを開いて、ローカルで任意のプログラムが実行されてしまうケース マクロはプログラムそのもの 偽装メールが再び拡散、不正マクロを仕込んだ添付ファイルでマルウエア感染:マクロウイルスの再来? - @IT デフォルトではマクロは無効化されており、オプトインで有効化になっている Office ドキュメントのマクロを有効または無効にする - Office サポート Programming Lang

                                                                      • Golang の Generics で使いたいものは大体 samber/lo にあった話 - Qiita

                                                                        はじめに 本記事は Go Advent Calendar 2022 の18日目の記事です。 Generics を使った関数でやりたかったことが、samber/lo に大体揃ってたという話をします。 すでに自前で書いてた関数もいくつかあったのですが、このライブラリを知り置き換えていったという体験談です。 ※結果的に「samber/lo のなかでこの辺り使えるかも」というものを私の独断と偏見でピックアップする記事になってます。 samber/lo とは samber/lo は 16日目のアベンドカレンダーの記事 でも取り上げられていまして、そこから説明を引用させていただきました。 samber/loは,多種多様な便利関数を提供するパッケージです。 JavaScriptのライブラリのLodashライクであるとREADMEにも記載があります。 個人的には大好きなパッケージでして,Map,Filte

                                                                          Golang の Generics で使いたいものは大体 samber/lo にあった話 - Qiita
                                                                        • ワイ「なに!?ライブラリをラップするやと!?」 - Qiita

                                                                          とあるシステム会社にて ワイ「なあ、ハスケル子ちゃん」 ワイ「いま開発してるWebアプリケーションについて、相談したいことがあるんやけど」 ハスケル子「はい」 ハスケル子「どんな内容ですか?」 ワイ「あのな」 ワイ「色んなページで、配列をソートして表示する必要があるんやけど」 ワイ「そのソート内容がちょっと複雑やねん」 ワイ「なんかオススメのライブラリある?」 ハスケル子「LodashのorderByなんて便利ですよ」 ワイ「マジかいな」 ワイ「さっそく使ってみるわ」 ライブラリを導入してみる ワイ「まずは・・・」

                                                                            ワイ「なに!?ライブラリをラップするやと!?」 - Qiita
                                                                          • 限界を極めた内定者が語る! Web Speed Hackathon 2022 戦略と秘訣 | CyberAgent Developers Blog

                                                                            本記事は CyberAgent Developers Advent Calendar 2022  21 日目の記事です。 2023 年度入社予定の加藤 零(@cut0_) です。現在は株式会社 WinTicket で内定者アルバイトをしています。Web Speed Hackathon 2022 Public では 499.1 点を記録しました。 お疲れさまでした! 届かなかった残り 0.9 点を噛み締めて社会人エンジニアを迎えようと思います。 CDN 使わずに Heroku 単体でもここまで戦えます!!https://t.co/ikVmhml6iq #WebSpeedHackathon — レイ (@cut0_) November 27, 2022 本記事では、Web Speed Hackthon 2022 Public で取り組んだことに加え、これから Web Speed Hacktah

                                                                              限界を極めた内定者が語る! Web Speed Hackathon 2022 戦略と秘訣 | CyberAgent Developers Blog
                                                                            • 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を使う
                                                                              • Deep Dive: Node.jsのESMデフォルト化への道

                                                                                Node.js 21では --experimental-default-type=module フラグで、JavaScriptファイルのデフォルトの解釈をCJS(CommonJS)からESM(ECMAScript Modules)に変更できるようになっています。 Node.js 21 is now available! | Node.js これは、Node.jsにおいてJavaScriptファイル(.js)のデフォルトをESMに変更するための第一歩です。 今回のDeep Diveでは、Node.jsのESMデフォルト化に向けたIssueや実装について紹介します。 Node.jsのESMデフォルト化 Discussion: New “ESM by default” mode · Issue #49432 · nodejs/node このIssueは、Node.jsにおけるambiguous

                                                                                  Deep Dive: Node.jsのESMデフォルト化への道
                                                                                • Node.jsの“ブラックホールに立ち向かえ! 膨れ上がる「node_modules」の容量を削減する4ステップ

                                                                                  「東京Node学園」は、Node.js日本ユーザグループ主催のNode.js勉強会です。36時限目の今回は、オンラインで開催されました。Naturalclar氏は、node_modulesを意識的に削減することで得られるメリットとその方法を発表しました。 宇宙の中で一番重い「node_modules」 Naturalclar氏:よろしくお願いします。「node_modulesのブラックホールとの向き合い方」という資料で発表します。Naturalclarです。 はじめにちょっと自己紹介すると、本名はJesseと申します。現在、株式会社stand.fmというところで、音声配信アプリを作っています。React NativeでAndroid・iOS向けのアプリを作っています。また、OSS活動をいろいろとやっていて、「React Native Community」というGithub Organiza

                                                                                    Node.jsの“ブラックホールに立ち向かえ! 膨れ上がる「node_modules」の容量を削減する4ステップ