kohsweblog

気になった技術などをまとめていくブログです。

Node.js + TypeScriptのモジュールを整理してみる

2024-04-23

はじめに 最近受けるNode.js + TypeScript環境の相談の中で、CommonJSやECMAScript Modulesのあたりで落とし穴にはまっている人が多いという事に気づいた。 Node.jsは歴史的にCommonJSとEC...

フロントエンド開発のためのテスト入門書評

2023-10-25

はじめに 2023/04/24に発売された「フロントエンド開発のためのテスト入門」を読了したので、読みながらとったメモをもとに感想や自分の考えと違ったところなどをまとめる。 Amazon 全体的に非常に参考になる内容が多いが、特に後半にいく...

TypeScriptのモノレポ構成を考える

2023-07-03

はじめに あまりモノレポの構成について語られている記事が多くないなと感じたので、現時点で自分が考えている設計をまとめてみる。 以前にTwitterでディレクトリ構成と内容については言及したが、実際に利用する技術についてはあまり触れなかったの...

事業をエンジニアリングする技術者たち書評

2023-03-13

はじめに 事業をエンジニアリングする技術者たちの献本をいただいた。自分の感じたことを書評として残しておく。 書籍の概要 VOYAGE GROUPのグループ会社それぞれの仕事内容、チームの特徴、技術スタックやプロジェクトの進め方、考え方などが...

フロントエンド開発のためのセキュリティ入門書評

2023-03-13

はじめに 2023/02/13に発売された「フロントエンド開発のためのセキュリティ入門」を読みました。 Amazon 自著の実践Node.js入門と発売日が近かった事もあり、Node学園41時限目で著者のshisamaさんとLTをさせていた...

実践Node.js入門という本が出ます

2023-01-26

はじめに 実践Node.js入門という本が技術評論社さまより発売されます。人生初の単著です。 発売日は2023/01/26です。 電子書籍版はKindleとGihyo Digital Publishingから購入できます。 Amazon 技...

TypeORM v0.3へのバージョンアップ方法

2022-11-17

TypeORMのアップデート NestJSで利用しているTypeORMのバージョンをv0.2からv0.3に引き上げた。 v0.3ではかなりの破壊的変更が入っていたため、結構大変な作業だったのでやり方と方針を備忘録にまとめる。 TypeORM...

jestでDBありのテストを高速化する

2022-07-02

課題 お手伝いしているシステムでNestJSを採用しているバックエンドのテストが遅いという課題があったので対処した。 前提 | フレームワーク | DB | テストランナー | その他 | |---|---|---|---| | NestJ...

Lighthouse CIでサイトのスコアを定期的にチェックしよう

2020-10-24

Core Web Vitals とは 最近のフロントエンド周辺では Google が提唱した Web Vitals と呼ばれる指標が非常に注目されています。 これは Web で多くのユーザーが快適なユーザー体験を得るために、こういったポイン...

AsyncIteratorと落とし穴

2020-05-13

Node.js において Stream の処理というのはなくてはならないものです。しかし Stream の文法は慣れるまでは扱いにくいものです。 しかし、AsyncIterator の登場によって Stream を Promise の文脈で...

0から始めるNode.jsパフォーマンスチューニング

2020-03-04

近年の Node.js は API のサーバとしてはもちろん、Nuxt.js や Next.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。 フロントエンドエンジニアがコンテキスト...

WireGuardでVPNごしに自宅サーバ開発できる環境を作った

2020-01-01

まえおき 自分は普段 MacBook Pro の 13 インチを開発機として利用しています。メモリは 16GB にしているので Web 開発をする時にはあまり不便に感じることはありません。 ただ、サービスの開発のステージ環境や、自宅内の自動...

VSCodeにZenVimというVim拡張を作った

2019-11-22

前回の記事 で VSCode/Vim が重くなってしまう件について対処法を調べたが、それでもどうしても重くて厳しかったので自分用に作ってしまった。 作った拡張は ZenVim という名前でマーケットに公開したので、作り方と公開の仕方を備忘録...

ダークモードを導入してCSS+JSでテーマを管理する

2019-10-28

きっかけ デフォルトは OS のダークモードをみて対応したいけど、JavaScript で切り替えにも対応したい。 そして色とかスタイルに関わる責務は CSS に寄せて、JavaScript はただ切り替えのロジックにだけ集中したい。 pr...

VSCode + Vim Plugin が異常に重くなる件の対処法

2019-10-13

結論 設定を変えることである程度軽くはなったが、耐えきれなくなって自分で作った。 (追記: 2019/11/18) 自分の環境では、vim.statusBarColorControl という設定を切ったら実用に耐えるレベルになった。 htt...

Redis Streamsでキューを実装するときの注意点

2019-08-05

はじめに Redis Streams とはざっくりいうと Redis v5 から加わった Pub/Sub とはまた違うキューイングの仕組みです。 https://redis.io/topics/streams-intro Pub/Sub は...

さくらで借りたUbuntu16のセットアップ

2019-07-02

さくら パケットフィルタに最初は ssh しか設定されていないので http (80,443) を追加する。 これを追加しないといくら ufw や iptables を設定してもインターネット越しの通信が通らない。 $ sudo apt u...

MongoDB + Jestのテスト方法

2019-06-11

はじめに MongoDB のテストを書いて、自分なりの方法が落ち着いたのでまとめる。 結論: mongodb-memory-server を利用する。 本物の MongoDB を使う方法(不採用) 自分は middleware なども含めて...

MongoDB + Node.js + TypeScriptが強力だった

2019-06-07

はじめに MongoDB (node-mongodb-native) + Node.js + TypeScript で RDB 並のスキーマ定義と、NoSQL の開発しやすさを両立できたのでまとめます。 Node.js と MongoDB ...

チャットシステムを作るときに知っておくべきこと

2019-01-03

チャットシステムを作ってみているのでいろいろと気になる部分を記録。 会社で社内用のチャットシステムをずと開発・運用していたのである程度システム的なノウハウはあったものの、外向けに作るときに気にしなければならない部分が結構あるなというのを知っ...