Mitsuyuki.Shiiba

フィード

記事のアイキャッチ画像
HonoのZod OpenAPIを読んでたらWebStormのCPUとメモリを消費しまくってたのをJetBrainsにレポートしたらすぐに解決方法を教えてもらってニッコリなメモ
Mitsuyuki.Shiiba
HonoとZodとOpenAPIまわりが気になって、Zod OpenAPIのコードをWebStormで読んでたら、WebStormとNode.jsのプロセスがCPUをたくさん消費して、動きが遅くなって困った。メモリもWebStormに割り当てたぶんを使い切っちゃうよーって警告が出てきてた。 なんの気なしにそんなことをつぶやいてたらJetBrainsの@niklas_wortmannがコメントをくれた。 Did you happen to create a YouTrack ticket with some CPU or Memory snapshots? Would love to furth…
16日前
記事のアイキャッチ画像
Honoのルーティングの分割を思いつくままに実験
Mitsuyuki.Shiiba
Grouping HonoにはGroupingという機能がある。僕はルーティングを複数のファイルに分けて書きたいタイプなので、たぶんこれを使うだろうなと思っている。 https://hono.dev/docs/api/routing#grouping 実験環境 Node.jsが好きなのでNode.jsで動かしている。 hono: 4.6.16 @hono/node-server: 1.13.7 node.js: 23.6.0 分割に対するHono的おすすめはappまるごと ルーティングを分割して書こうと思うと、まず最初に思いつくのはhandler関数を別のファイルに定義することかなと思う。で、…
23日前
記事のアイキャッチ画像
TypeScriptのBranded TypeとZodの.brand
Mitsuyuki.Shiiba
Branded Typeについては、もういろんなところで触れられているから、わざわざ書かなくてもいいよなぁという気持ちがありつつ。でも、せっかく頭の整理をしたから、来月の自分用にまとめておくくらいはやっておこうか、という気持ちになったのでメモを残しておく。それとZodの.brand。 やりたいこと 次の2つの型に対する値を間違えて渡したときに、TypeScriptの型検査でエラーになってほしい。 type UserId = number; type BookId = number; TSの型システムはStructural Subtypingを採用しているので、構造が同じだったら部分型として扱わ…
24日前
記事のアイキャッチ画像
Zodのドキュメントを読みながら自分用にメモ
Mitsuyuki.Shiiba
基本的なことは大丈夫なのでざっと読んで気になったところだけをメモしておく。使ってるときに「そういえばこんな機能がZodにあった気がする」って頭の中で引っかかるように。 視点としては、Webアプリケーションのサーバーサイドを作る頭で読んでる。フレームワークを作る頭とかではない。 Coercion コンストラクタ関数を噛ませて変換するやつ。 z.coerce.string() Literals 忘れたりはしないだろうけどメモ z.literal("tuna") Strings datetime ZodStringにくっついてくる。タイムゾーン有無・精度・ローカルとかある。 const schema…
25日前
記事のアイキャッチ画像
結局iTerm2を単体で使うことにした
Mitsuyuki.Shiiba
年末年始にGhosttyを触ってみてて、好きだなとは思いつつもメイン使いするのはもうちょっと待ちたいなという気持ちになった。 なので、↓以前に書いたみたいにiTerm2 + tmuxに戻すかー!と思って、それならtmuxの使い方をもういっかい勉強するかー!って考えたんだけど。 はて?そういえばなんでtmuxを使ってるんだっけ?ってなった。 もともとは、踏み台からサーバーに入って作業をするときに切断されないようにするためだったな。ついでに複数台のサーバーに入りやすくて便利だなくらいで使い始めたんだった。 もう今じゃ踏み台からサーバーに入ることもほとんどないし、単に複数ペインやタブで操作したいだけ…
1ヶ月前
記事のアイキャッチ画像
Ghostty使っていこうかな
Mitsuyuki.Shiiba
2025-01-07 追記 年末年始に触ってみてて、いまはまだiTerm2+tmuxのままにしておこうと思ったのだった。 検索ができなかったり、ちょこちょこ気になる動きをする部分があったりするから。 追記ここまで 今朝リリースされた なんとなく楽しみにしてたやつ。わーい。 https://t.co/39Xj39wheA 👻 pic.twitter.com/PH0qejFB4z— Mitchell Hashimoto (@mitchellh) December 26, 2024 使ってみようと思った ちょっと触った感じ、なんとなく心地良いなと思ったので使ってみることにする。僕は今 iTerm2 …
1ヶ月前
記事のアイキャッチ画像
午前中に読み始めたら午後には設計が上達してしまった! - 『Tidy First?』を読んだ
Mitsuyuki.Shiiba
私の目標は、読者が午前中に本書を読み始めたら、午後には設計が上達していることだ。 本当にそのとおりだった。読んでる途中で既に自分の設計に対する考えが良い方向に変わってると感じた。とても良かった。おすすめです。 『Tidy First?』 をいただいて読んだ。昨日(2024年12月25日)発売。英語版が2023年11月28日発売だから、たった1年で日本語版が出たということだな。うれしい!はやい!ありがたい! ソフトウェア設計に焦点を当てたシリーズの最初の1冊ということで、サブタイトルに「個人で実践する経験主義的ソフトウェア設計」とあるように、1人でできる種類のソフトウェア設計について書かれている…
1ヶ月前
記事のアイキャッチ画像
typescript-eslintとFlat Config
Mitsuyuki.Shiiba
typescript-eslintのFlat Configについて、自分に今必要そうな部分だけをひととおり確認したので忘れる前にメモを残しておく。 前提 素のJavaScriptプロジェクトをやることは自分はあまりなさそうなのでTypeScript前提 ES Modules前提でいいやと思っているので設定ファイルの拡張子はシンプルに .js にする フォーマッターにはESLintのStylisticじゃなくてESLint外のフォーマッター(PrettierやBiome)を使う前提 基本の設定 https://typescript-eslint.io/getting-started/ の最初に書…
2ヶ月前
記事のアイキャッチ画像
NeverThrowのESLintプラグインをフォークしてFlat Configに対応した
Mitsuyuki.Shiiba
ちょっと前にNeverThrowを触ろうとして、そのESLintプラグインがFlat Configに未対応だったから、そこで遊んでしまった話を書いたけど。 遊んでしまったついでに、フォークしてFlat Configに対応した。 www.npmjs.com pnpmとかでインストールして # npm npm install --save-dev @bufferings/eslint-plugin-neverthrow # pnpm pnpm install --save-dev @bufferings/eslint-plugin-neverthrow こんな感じで設定を書いたらOK import…
2ヶ月前
記事のアイキャッチ画像
NeverThrowを触ろうと思ったらESLintのFlat Configを触っていた(後編)
Mitsuyuki.Shiiba
の続き。eslint-plugin-neverthrow に手を入れて動くようにしてみるぞー!そして記事を書き終わるぞー! eslint-plugin-neverthrow に手を入れてみる そのままでは動かなさそうだから手を入れて動くようにしてみたい。パッケージを作ればできそうではあるけど、もうちょっと簡単にできないかな?と思って探してみたら、こんな記事を見つけた。ありがたい。 srcのとなりにコードを置いて、それを使うようにできるのかー。これなら簡単に eslint-plugin-neverthrow に手を入れられそう。この記事や、ESLintのプラグイン自作ページを見ながら試してみたら…
2ヶ月前
記事のアイキャッチ画像
NeverThrowを触ろうと思ったらESLintのFlat Configを触っていた(中編)
Mitsuyuki.Shiiba
の続き。Flat Configで eslint-plugin-neverthrow を使えるようにするぞー! Flat Config? そもそもFlat Configをよくわかっていない ってところからスタート。へー。v9でFlat Configがデフォルトになっていて、v8は2024年10月からEOLなのか。 https://eslint.org/version-support/ んで、次のv10で旧設定は使えなくなる。↓に「2024年末から2025年頭くらい」って書いてある。もうほんとにすぐだな。 https://eslint.org/blog/2023/10/flat-config-ro…
2ヶ月前
記事のアイキャッチ画像
NeverThrowを触ろうと思ったらESLintのFlat Configを触っていた(前編)
Mitsuyuki.Shiiba
TypeScriptでサーバーサイドのアプリケーションを書いていて、エラーをThrowするより型安全に失敗を返したいなと思って、簡単なResult型をペラっと作って使ったことがある。 あまり複雑なことはしたくないからそれで満足しているんだけど、TSKaigiやTSKaigi KansaiでResult型の話をよく耳にしたので、ちゃんとライブラリを一個くらい勉強しようかなと思った。 最初にあらすじ neverthrowとeslint-plugin-neverthrowを入れてNeverThrowを触ろうとしたら、eslint-plugin-neverthrowがESLintのFlat Confi…
2ヶ月前
記事のアイキャッチ画像
TSKaigi Kansaiから帰ってきてDuckDB Wasmで遊んだ
Mitsuyuki.Shiiba
カケハシのスタッフとしてTSKaigi Kansaiに参加して楽しんできた。 スポンサーのランチLTでカケハシのメンバーも喋るからブースを抜け出して見に行ってたら、newmoの大貫さんのLTで「DuckDB Wasmを使ってクライアントだけで処理したよ!」って発表があって、面白いなーと思ったのだった。 kansai.tskaigi.org ので、遊んだ DuckDBは初めて知ったし、Wasmには興味があるので、遊んでみた。GitHub Pagesにアップロードしておいた。11/18の日本各地の最高気温が分かるよ! https://bufferings.github.io/vite-react-…
3ヶ月前
記事のアイキャッチ画像
TypeScript 5.8で条件付き戻り値型に対するナローイングができるようになりそう(特定の制約を満たす場合)
Mitsuyuki.Shiiba
数日前にTypeScript 5.7 RCがアナウンスされてリリースが楽しみだなー!ってところなんだけど、そのさらに数日前に、ウォッチしていたこのPR↓がマージされてTypeScript 5.8.0のマイルストーンに入った。わー! これが今日のお話。TypeScript 5.8.0でConditional return type narrowingが入りそう。楽しみ! Conditional return type narrowing? 直訳すると「条件付き戻り値型の絞り込み」かな。引数の型によって戻り値の型が変わる関数を定義したいときに、例えばこんな風に書きたくなる。 declare con…
3ヶ月前
記事のアイキャッチ画像
2024-10-26(土)にDevLOVE関西で喋ります! #devkan
Mitsuyuki.Shiiba
なんとDevLOVE関西200回目という記念すべき回でお話させてもらえることになりました!わーい。 devlove-kansai.doorkeeper.jp 喋る人みんなDevLOVE関西でたくさんお世話になってる人たちなので、楽しみ!そめださん、だいくしーさん、いろふさん、くぼさん!楽しみだー! ぜひ申し込んで見に来てねー! 何を喋るの? ちょっとまだ固まってないんだけど、僕が開発をするときに考えていることを、来てくれた人と会話しながら紹介できたらいいなって思っています。 2011年くらいからアジャイルな開発を実践してきて、自分の中にだいぶ開発の型ができてきたかなぁと思うのでそのあたりを。 …
4ヶ月前
記事のアイキャッチ画像
はてなブログのコードブロックでPrism.jsを使うようにしてたところにラベルを表示できるようにした
Mitsuyuki.Shiiba
最近ブログのデザインを変えた。その続きで少し改修した。 bufferings.hatenablog.com 何を修正したのか? コードブロックでファイル名などのラベルを出せたらいいなと思ったので対応した。 ↓これはスクリーンキャプチャ。hello.javaが表示されている。シンタックスハイライトが効いていることを確認したかっただけなのでコードの内容は関係ない。 こんな感じ ↓これは実際のコードブロック。 sealed interface Mapping<T> { T value(); record A(Boolean value) implements Mapping<Boolean> {} …
4ヶ月前
記事のアイキャッチ画像
前回TypeScriptでやった「タグ付きユニオンのタグを指定して、型安全に値を取り出したい」をJavaでやってみた
Mitsuyuki.Shiiba
前回書いたこれを同僚に「こんな感じだったよ。勉強になったよー!」って見せたら「なるほど勉強になった!ありがとう!」って言ってもらえたのでよかった。 bufferings.hatenablog.com そしてその同僚が「こういうのってJavaだったらどう書くの?」って言って「んー。最近Java書いてないからどうだっけなぁ・・・そもそもJavaのときには、Discriminated Unionみたいなの欲しいと思ったことなかった気がするなぁ」ってなったのでJavaで考えてみることにした。 前回の記事のTypeScriptのコード type MyUnion = | { tag: "a", value…
4ヶ月前
記事のアイキャッチ画像
TypeScriptでGeneric Typeに対するNarrowingをしたかったけど現在のところ対応していなかった
Mitsuyuki.Shiiba
2024-11-11 追記ここから ---- TS 5.8で、その1のインデックスアクセス型の方はサポートされそう。その2の方はその対応が入ってもサポートされない。 追記ここまで ---- 最初にまとめ 現在のTypeScript(2024-09-19時点のバージョン5.6.2)では Generics と Control Flow Analysis は、いい感じには連携しないということを学んだ。 どういうこと?その1 Genericsを使って型安全にやりたいなぁと思って、こんなコードを書いてみてもコンパイルエラーになる。 type Mapping = { a: boolean, b: stri…
5ヶ月前
記事のアイキャッチ画像
バグを見つける
Mitsuyuki.Shiiba
僕は、実装するペアとは別のペアがテストをするのがわりと好き。仕様からテストを設計して実施してたら、実装者が見逃してたバグを見つけられたりする。 バグを見つけるのって面白い。でも、見つけるより前に、減らしておきたい。 だから、プロジェクト全体で誰が意思決定者なのかをキックオフの段階で明確にしておきたい。誰が決めるかが分からないプロジェクトは迷走してバグが生まれやすくなる。 だから、プロダクトマネージャーには機能改修の背景を聞いてから機能の話を聞きたい。背景と機能が自分の中でつながらないときは、何か認識のズレがあってバグが生まれやすくなる。 だから、スコープは小さくしたい。スコープが大きいとバグが…
5ヶ月前
記事のアイキャッチ画像
このはてなブログのデザインを変更した
Mitsuyuki.Shiiba
なんとなくこのブログのシンタックスハイライトのデザインを変えたいなぁと思って、せっかくだからブログのテーマごと変更するかーってテーマストアを眺めてたら、自分で自分が好きな感じのテーマを作ってみるのも面白い・・・か、と思ったのでやってみた。 PC スマホ わりと気に入っている。 コード たまに間違えて上書きして消してしまったりするので、念のためGitHubに置いといた。 https://github.com/bufferings/hatenablog-my-theme 自分が使ってる機能だけ対応 はてなブログにはいろんな機能や設定があるけど、それを全部サポートするのは僕には無理なので、自分が使っ…
5ヶ月前
記事のアイキャッチ画像
TypeScriptでタグ付きユニオンのタグがユニオンの場合でも個別にExtractしたい
Mitsuyuki.Shiiba
何を言っているんだ?というタイトルだけど、今日はTypeScriptの型で遊んでた。 タグ付きユニオンから型をExtractしたい こういうタグ付きユニオンがあって type MyUnion = | { tag: "a", value: boolean } | { tag: "b", value: boolean } | { tag: "c", value: string } その中の型をExtractしたいときは、こんな風に書ける type A = Extract<MyUnion, { tag: "a" }> そうするとtagが"a"の型を取得できるので、このテストがとおる import t…
5ヶ月前
記事のアイキャッチ画像
ペアPdMがとてもいい感じだなと思いながら見ている
Mitsuyuki.Shiiba
うちのチームにはPdMが2人いる。そのPdM2人は、お互いの得意を活かしながらプロダクトをマネジメントしてくれている。「PdMやPOは1人であるべき」って言葉を見かけたりするけど、うちのPdMは2人でいい感じにやっていて、このスタイルいいなぁって思う。おかげでエンジニアとしても動きやすい。 そもそも、PdMってやることがめちゃくちゃ多い。ステークホルダーと話したり、ユーザーさんのお話を聞きに行ったり、少し先のことを考えたり、仕様を決めたり、受け入れ判断をしたり、仮説検証のためのKPIをチェックしたり、問い合わせがあったら一次請けをしてくれたり、いろんなことを決断しまくったり。それでいて業界の勉…
5ヶ月前
記事のアイキャッチ画像
会議のファシリテーションをほめてもらった
Mitsuyuki.Shiiba
うれしかった。ので、メモ。 僕のいるチームのプロジェクトで、複数のチームにサポートしてもらいながら進める必要がある、ちょっと大きなものが始まりそうだったから、キックオフ前のキックオフやっとこかーってなって司会をした。オンラインミーティングね。 最初にこの会の目的を説明 今日のアジェンダのページのリンクは事前に共有もしていましたけど、いまSlackにもポストしておきましたー。 まだプロジェクトは始まってないんだけど、事前に調査とかをしたいから質問や相談をさせてもらいたいなと思っていて、そのときに「え?これなんの話?」って戸惑わせることがないように、プロジェクトの概要を共有しとこうと思ったー!だか…
5ヶ月前
記事のアイキャッチ画像
iTerm2 + tmux に戻ったよのメモ
Mitsuyuki.Shiiba
本当にただの自分用メモ。 iTerm2 違うターミナルを使ってみてたけど、やっぱり iTerm2 に戻そうかなと思って戻した。シェルは macOS デフォルトの zsh のまま。 iTerm2 - macOS Terminal Replacement 見ため Color Scheme には Dracula を使っていて iTerm • Dracula Theme プロンプトには Starship を使っておいた Starship 簡単でいい。時間も出すようにしておいた。 タブとか タブとかには tmux を使って Home · tmux/tmux Wiki · GitHub こっちの表示にも …
5ヶ月前
記事のアイキャッチ画像
『アジャイルチームによる目標づくりガイドブック』を読んだ。脳内にいくおさんをどうぞ。
Mitsuyuki.Shiiba
開発部全体を見てるあのすごい人が、ある1つのチームのマネージャだったらどんな感じなんだろうなぁ?仕事がやりやすいんだろうなぁ?って考えることがある。それが今、僕のいるチームで起こっている。 VPoEの経験もあるいくおさんと、カケハシの同じチームで仕事をしている。いくおさんが1つのチームのエンジニアリングマネージャとしてついてくれているのって、とても贅沢だなぁと思っている。実際に仕事はめちゃくちゃやりやすいし、それだけじゃなくて、僕やチームみんなの心の支えになってくれている。 いくおさんが書籍を出した そんないくおさんが書籍を出した。この本がとてもいい本なので、みんなに読んでほしい。どうしていく…
6ヶ月前
記事のアイキャッチ画像
単体テストの考え方/使い方を読んだ。読んでよかった。
Mitsuyuki.Shiiba
読んでよかった book.mynavi.jp 評判通りよかった そっかーなるほどなぁ。面白いなぁ。と思うことがいろいろあった とはいえ、著者の主張全てに同意というわけではなく「著者はそう考えるんだな。自分は違う考えだな」と考えさせられる部分もいくつかあった 苦手な部分もあった 古典学派とロンドン学派に分けて話を展開しているのはあまり好きじゃないなと思いながら読んだ 定理やマトリクスに当てはめて話を展開する部分があって、いくつかは無理やりだったり話をややこしくしていたりするように自分は感じた。そういう部分は苦手だなぁと思いながら読んだ というのが全体の感想。内容はとてもよかったし、苦手な部分もそ…
6ヶ月前
記事のアイキャッチ画像
Kong Gateway OSS版のDB-lessモードで遊んでみる。ローカル起動編。
Mitsuyuki.Shiiba
最近Kong Gatewayに少し興味があるので、気が向いたときに遊んでみることにした。 「ローカル起動編」ってシリーズものっぽいタイトルをつけたけど、シリーズものになるかどうかは分からない。今日はとりあえずローカルで起動するところまでをやってみた。 OSSのDB-lessモードで遊ぶ Kong GatewayにはEnterprise版とOSS版があるみたいなので、とりあえずOSS版で。 それからDBモードとDB-lessモードとがあるみたいなので、DB-lessモードで。 ということで、OSS版のDB-lessモードで遊ぶ。 https://docs.konghq.com/gateway/3…
7ヶ月前
記事のアイキャッチ画像
DevOpsDays Taipei 2024で喋ってきまーす!
Mitsuyuki.Shiiba
てことで、明日から台北に行く。久しぶりの海外だな。楽しんでくるー!
7ヶ月前
記事のアイキャッチ画像
スクラムが「上手くいってる」「上手くいってない」の頭の整理
Mitsuyuki.Shiiba
この記事を見かけて、やっとむさんだなーやさしく伝えたんだろうなーって思いつつ。「上手くいく」「上手くいってない」って幅がありそうだよなと思ったので、頭の中の整理をしてみることにした。来週の発表の準備が煮詰まっているから気分転換しているだけともいう。 yattom.hatenablog.com やっとむさんの記事を読む 「スクラムで開発を進めている」という状況で 「問題が多い→ならば→スクラムは合わない」のか?という問いに対して やっとむさんの回答は「問題がある→ならば→スクラムは上手くいっている」 と書いてある。「合わない」は「うち(の会社)には合わない」の意味。 最初にことわっておく ふだん…
7ヶ月前
記事のアイキャッチ画像
脳に収まるコードの書き方を読んだ。面白かった。
Mitsuyuki.Shiiba
いただきましたー!わーい。脳に収めるぞー! @haradakiro @ryuzee pic.twitter.com/3Qd6EvPioU— SHIIBA Mitsuyuki (@bufferings) June 13, 2024 明日(2024年6月18日)発売! www.oreilly.co.jp どう書くのがいいんだろうなぁ? 複雑なコードと向き合うときは「あー、これはメモを取りながら読まないと迷子になるやつだ」ってなる。最初はわりとキレイに作られていたとしても、機能追加を重ねていくとだんだん読めなくなっていく。 だから「時間が経っても読みやすいコードってどう書くのがいいんだろうなぁ?何か…
8ヶ月前