はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    WWDC25

『kohsweblog』

  • 人気
  • 新着
  • すべて
  • Node.js + TypeScriptのモジュールを整理してみる

    180 users

    blog.koh.dev

    はじめにlink 最近受けるNode.js + TypeScript環境の相談の中で、CommonJSやECMAScript Modulesのあたりで落とし穴にはまっている人が多いという事に気づいた。 Node.jsは歴史的にCommonJSとECMAScript Modules(以後ESMと表記)がどうしても入り乱れる環境にあり、これにTypeScriptのモジュールが加わると組み合わせでさらに複雑度が増すのが現状である。 説明する際に口頭より整理した文章が欲しいと思ったので記事にする。 以下のリポジトリで検証コードを管理している。 https://github.com/koh110/module_test Node.jsモジュールチェックシートlink まず最初にNode.jsにおけるCommonJSとESMの挙動について整理する。 いきなり書かれても把握できないかもしれないが、一旦こ

    • テクノロジー
    • 2024/04/23 10:55
    • TypeScript
    • node.js
    • javascript
    • あとで読む
    • node
    • ESM
    • js
    • module
    • *JavaScript
    • フロントエンド開発のためのテスト入門書評

      28 users

      blog.koh.dev

      はじめにlink 2023/04/24に発売された「フロントエンド開発のためのテスト入門」を読了したので、読みながらとったメモをもとに感想や自分の考えと違ったところなどをまとめる。 Amazon 全体的に非常に参考になる内容が多いが、特に後半にいくにつれて加速度的に参考になる内容が増え非常に良著であると感じた。 実践Node.js入門でもテストはある程度量をとって記述しているが、テストそのものがメインではないため情報や考え方として落ちている内容の多くがこの本で補完されている。自著を読んだ人には同時に本書もおすすめしていこうと思っている。 Amazon 自分はフロントエンドのテストはバックエンドに比べて優先度が低くなる傾向にある。 これは自分が扱うサービスがtoB系が多く、表示崩れなどがサービス継続上致命的になりにくいため、気づいたベースで最速で直せる環境があればよいと考えているため。 また

      • 学び
      • 2023/10/25 16:24
      • テスト
      • あとで読む
      • TypeScriptのモノレポ構成を考える

        158 users

        blog.koh.dev

        はじめにlink あまりモノレポの構成について語られている記事が多くないなと感じたので、現時点で自分が考えている設計をまとめてみる。 以前にTwitterでディレクトリ構成と内容については言及したが、実際に利用する技術についてはあまり触れなかったので改めて検証してみた。 https://twitter.com/koh110/status/1617510034266808322 クライアントサイドとサーバーサイドのコード共有については下記の記事がよくまとまっていた。 https://capelski.medium.com/effective-code-sharing-in-typescript-monorepos-475f9600f6b4 上記の記事の構成も参考にしつつ、自分の考えも加えて検証していく。 相対パスを利用する方法 npmのローカルパス指定(file:xx)を利用する方法 シンボ

        • テクノロジー
        • 2023/07/03 19:43
        • TypeScript
        • あとで読む
        • npm
        • frontend
        • 開発
        • 実践Node.js入門という本が出ます

          46 users

          blog.koh.dev

          はじめにlink 実践Node.js入門という本が技術評論社さまより発売されます。人生初の単著です。 発売日は2023/01/26です。 電子書籍版はKindleとGihyo Digital Publishingから購入できます。 Amazon 技術評論社様のほうではPDFとEPUB形式で購読可能です。 https://gihyo.jp/book/2023/978-4-297-12956-9 内容link Node.jsの入門書です。実際にアプリケーションを作成、運用するためのノウハウを全て詰め込みました。 Node.jsの基礎知識、特徴や活かし方、アプリケーションの開発、設計の考え方、運用、テストの方法、パフォーマンスチューニングなどに触れながら解説していきます。 本書はNode.jsをほとんど知らなかった新卒のころ自分に、今の自分が全力で教えるというコンセプトで書き進めました。 当時の

          • テクノロジー
          • 2023/01/26 11:00
          • Node.js
          • あとで読む
          • JavaScript
          • 本
          • 技術
          • Redis Streamsでキューを実装するときの注意点

            3 users

            blog.koh.dev

            はじめにlink Redis Streams とはざっくりいうと Redis v5 から加わった Pub/Sub とはまた違うキューイングの仕組みです。 https://redis.io/topics/streams-intro Pub/Sub は Subscribe したら揮発してしまうのに対して、Streams はキューが詰められるときに指定した Max を超えたものが押し出されて消える仕組みです。 登録した Stream に対して購読グループを複数作ったりすることで、1 つの Stream に対して個別のグループで購読管理ができたりします。(Kafka で導入されたアイデアを輸入したもの) 今回は上記のグループを使わずにキューを複数プロセスで受け取る実装のサンプルと、自分が勘違いしていた部分をまとめます。 Stream を触ってみるlink キューの追加は XADD というコマンドを

            • テクノロジー
            • 2022/11/16 17:56
            • jestでDBありのテストを高速化する

              178 users

              blog.koh.dev

              課題link お手伝いしているシステムでNestJSを採用しているバックエンドのテストが遅いという課題があったので対処した。 前提link フレームワークDBテストランナーその他 テストの総数は700弱。 最終結果link 最終的には2段階の改修を経てローカルのテストが3倍速程度高速化した。 # before Test Suites: 145 passed, 145 total Tests: 2 skipped, 681 passed, 683 total Snapshots: 0 total Time: 925.063 s Ran all test suites. Done in 926.48s. # ts-jestを@swc/jestに置き換えた Test Suites: 145 passed, 145 total Tests: 2 skipped, 681 passed, 683 t

              • テクノロジー
              • 2022/07/03 07:10
              • jest
              • あとで読む
              • テスト
              • CI
              • DB
              • TypeScript
              • test
              • javascript
              • testing
              • TDD
              • Lighthouse CIでサイトのスコアを定期的にチェックしよう

                9 users

                blog.koh.dev

                Core Web Vitals とはlink 最近のフロントエンド周辺では Google が提唱した Web Vitals と呼ばれる指標が非常に注目されています。 これは Web で多くのユーザーが快適なユーザー体験を得るために、こういったポイントに特に気を使いましょう、というものを数値化したものです。 この中でも特に重要と定められている “LCP (Largest Contentful Paint)”, “FID (First Input Delay)”, “CLS (Cumulative Layout Shift)” の 3 つは Core Web Vitals と呼ばれています。 それぞれの観点を簡単に説明すると次のようになります。 LCP: 重要な要素がどれだけ早く読み込まれたか FID: 最初の入力ができるまでにどれくらいかかったか CLS: がくっとレイアウトが変わることがな

                • テクノロジー
                • 2020/10/26 00:17
                • AsyncIteratorと落とし穴

                  4 users

                  blog.koh.dev

                  Node.js において Stream の処理というのはなくてはならないものです。しかし Stream の文法は慣れるまでは扱いにくいものです。 しかし、AsyncIterator の登場によって Stream を Promise の文脈で処理することができるようになり、「async/await に取り込み」「包括的エラーハンドリング」などができるようになりました。 2年ほど前に AsyncIterator について記事を書きました。参考: さよなら Stream 以前に書いたときにはまだ Experimental な API だったため気軽に利用することはできませんでしたが、今はもう Stable なので、より色々なシーンで活かせる機会が増えるでしょう。 そこでこの記事では今まで書きにくかった Stream や Events のスマートな扱い方、その落とし穴と回避方法をまとめます。 fo

                  • テクノロジー
                  • 2020/10/03 00:38
                  • javascript
                  • 0から始めるNode.jsパフォーマンスチューニング

                    535 users

                    blog.koh.dev

                    近年の Node.js は API のサーバとしてはもちろん、Nuxt.js や Next.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。 フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、本記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js

                    • テクノロジー
                    • 2020/03/04 11:53
                    • node.js
                    • performance
                    • パフォーマンス
                    • あとで読む
                    • node
                    • javascript
                    • チューニング
                    • js
                    • メモリ
                    • サーバ
                    • MongoDB + Node.js + TypeScriptが強力だった

                      5 users

                      blog.koh.dev

                      はじめにlink MongoDB (node-mongodb-native) + Node.js + TypeScript で RDB 並のスキーマ定義と、NoSQL の開発しやすさを両立できたのでまとめます。 Node.js と MongoDBlink MongoDB はドキュメント指向データベースです。簡単に言えば JSON のような形でデータを保持できる NoSQL です。 MySQL や Postgres などの RDB と違い、事前に CREATE TABLE のようなコマンドを打たなくても、insert されたタイミングで collection が作成され、データが保存されます。 また、MongoDB は後発のデータベースということもあり、RDB では 1 クエリで素直に表すことが難しいクエリも多くがクエリ化されていて 1 トランザクションで実行が可能です。(findOrUpd

                      • テクノロジー
                      • 2020/02/14 16:56
                      • mongodb
                      • typescript
                      • node.js
                      • WireGuardでVPNごしに自宅サーバ開発できる環境を作った

                        5 users

                        blog.koh.dev

                        まえおきlink 自分は普段 MacBook Pro の 13 インチを開発機として利用しています。メモリは 16GB にしているので Web 開発をする時にはあまり不便に感じることはありません。 ただ、サービスの開発のステージ環境や、自宅内の自動化や副業で受けている調査案件などはそれぞれ環境ごとに仮想サーバを立ち上げています。 仮想サーバは nuc に入れた Windows 上の Hyper-V で運用しています。nuc は 24 時間立ち上げたままでテレビにつないで Amazon プライムの再生機も兼ねています。 メモリも 32GB 積んであるので開発サーバが立ち上がってても通常使用するぶんには割と余裕があります。 この自宅環境は割と便利で、自宅で開発しているときは十分活躍してくれるのですが、外出中にも開発サーバに ssh で入りたくなることがちょくちょくあります。(あーあのサーバにコ

                        • テクノロジー
                        • 2020/01/02 01:25

                        このページはまだ
                        ブックマークされていません

                        このページを最初にブックマークしてみませんか?

                        『kohsweblog』の新着エントリーを見る

                        キーボードショートカット一覧

                        j次のブックマーク

                        k前のブックマーク

                        lあとで読む

                        eコメント一覧を開く

                        oページを開く

                        はてなブックマーク

                        • 総合
                        • 一般
                        • 世の中
                        • 政治と経済
                        • 暮らし
                        • 学び
                        • テクノロジー
                        • エンタメ
                        • アニメとゲーム
                        • おもしろ
                        • アプリ・拡張機能
                        • 開発ブログ
                        • ヘルプ
                        • お問い合わせ
                        • ガイドライン
                        • 利用規約
                        • プライバシーポリシー
                        • 利用者情報の外部送信について
                        • ガイドライン
                        • 利用規約
                        • プライバシーポリシー
                        • 利用者情報の外部送信について

                        公式Twitter

                        • 公式アカウント
                        • ホットエントリー

                        はてなのサービス

                        • はてなブログ
                        • はてなブログPro
                        • 人力検索はてな
                        • はてなブログ タグ
                        • はてなニュース
                        • ソレドコ
                        • App Storeからダウンロード
                        • Google Playで手に入れよう
                        Copyright © 2005-2025 Hatena. All Rights Reserved.
                        設定を変更しましたx