Mitsuyuki.Shiiba

フィード

記事のアイキャッチ画像
TSKaigi Kansaiから帰ってきてDuckDB Wasmで遊んだ
はてなブックマークアイコン 1
Mitsuyuki.Shiiba
カケハシのスタッフとしてTSKaigi Kansaiに参加して楽しんできた。 スポンサーのランチLTでカケハシのメンバーも喋るからブースを抜け出して見に行ってたら、newmoの大貫さんのLTで「DuckDB Wasmを使ってクライアントだけで処理したよ!」って発表があって、面白いなーと思ったのだった。 kansai.tskaigi.org ので、遊んだ DuckDBは初めて知ったし、Wasmには興味があるので、遊んでみた。GitHub Pagesにアップロードしておいた。11/18の日本各地の最高気温が分かるよ! https://bufferings.github.io/vite-react-…
15時間前
記事のアイキャッチ画像
TypeScript 5.8で条件付き戻り値型に対するナローイングができるようになりそう(特定の制約を満たす場合)
はてなブックマークアイコン 38
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…
8日前
記事のアイキャッチ画像
2024-10-26(土)にDevLOVE関西で喋ります! #devkan
Mitsuyuki.Shiiba
なんとDevLOVE関西200回目という記念すべき回でお話させてもらえることになりました!わーい。 devlove-kansai.doorkeeper.jp 喋る人みんなDevLOVE関西でたくさんお世話になってる人たちなので、楽しみ!そめださん、だいくしーさん、いろふさん、くぼさん!楽しみだー! ぜひ申し込んで見に来てねー! 何を喋るの? ちょっとまだ固まってないんだけど、僕が開発をするときに考えていることを、来てくれた人と会話しながら紹介できたらいいなって思っています。 2011年くらいからアジャイルな開発を実践してきて、自分の中にだいぶ開発の型ができてきたかなぁと思うのでそのあたりを。 …
1ヶ月前
記事のアイキャッチ画像
はてなブログのコードブロックでPrism.jsを使うようにしてたところにラベルを表示できるようにした
Mitsuyuki.Shiiba
最近ブログのデザインを変えた。その続きで少し改修した。 bufferings.hatenablog.com 何を修正したのか? コードブロックでファイル名などのラベルを出せたらいいなと思ったので対応した。 ↓これはスクリーンキャプチャ。hello.javaが表示されている。シンタックスハイライトが効いていることを確認したかっただけなのでコードの内容は関係ない。 こんな感じ ↓これは実際のコードブロック。 sealed interface Mapping<T> { T value(); record A(Boolean value) implements Mapping<Boolean> {} …
2ヶ月前
記事のアイキャッチ画像
前回TypeScriptでやった「タグ付きユニオンのタグを指定して、型安全に値を取り出したい」をJavaでやってみた
Mitsuyuki.Shiiba
前回書いたこれを同僚に「こんな感じだったよ。勉強になったよー!」って見せたら「なるほど勉強になった!ありがとう!」って言ってもらえたのでよかった。 bufferings.hatenablog.com そしてその同僚が「こういうのってJavaだったらどう書くの?」って言って「んー。最近Java書いてないからどうだっけなぁ・・・そもそもJavaのときには、Discriminated Unionみたいなの欲しいと思ったことなかった気がするなぁ」ってなったのでJavaで考えてみることにした。 前回の記事のTypeScriptのコード type MyUnion = | { tag: "a", value…
2ヶ月前
記事のアイキャッチ画像
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…
2ヶ月前
記事のアイキャッチ画像
バグを見つける
Mitsuyuki.Shiiba
僕は、実装するペアとは別のペアがテストをするのがわりと好き。仕様からテストを設計して実施してたら、実装者が見逃してたバグを見つけられたりする。 バグを見つけるのって面白い。でも、見つけるより前に、減らしておきたい。 だから、プロジェクト全体で誰が意思決定者なのかをキックオフの段階で明確にしておきたい。誰が決めるかが分からないプロジェクトは迷走してバグが生まれやすくなる。 だから、プロダクトマネージャーには機能改修の背景を聞いてから機能の話を聞きたい。背景と機能が自分の中でつながらないときは、何か認識のズレがあってバグが生まれやすくなる。 だから、スコープは小さくしたい。スコープが大きいとバグが…
2ヶ月前
記事のアイキャッチ画像
このはてなブログのデザインを変更した
Mitsuyuki.Shiiba
なんとなくこのブログのシンタックスハイライトのデザインを変えたいなぁと思って、せっかくだからブログのテーマごと変更するかーってテーマストアを眺めてたら、自分で自分が好きな感じのテーマを作ってみるのも面白い・・・か、と思ったのでやってみた。 PC スマホ わりと気に入っている。 コード たまに間違えて上書きして消してしまったりするので、念のためGitHubに置いといた。 https://github.com/bufferings/hatenablog-my-theme 自分が使ってる機能だけ対応 はてなブログにはいろんな機能や設定があるけど、それを全部サポートするのは僕には無理なので、自分が使っ…
2ヶ月前
記事のアイキャッチ画像
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…
2ヶ月前
記事のアイキャッチ画像
ペアPdMがとてもいい感じだなと思いながら見ている
Mitsuyuki.Shiiba
うちのチームにはPdMが2人いる。そのPdM2人は、お互いの得意を活かしながらプロダクトをマネジメントしてくれている。「PdMやPOは1人であるべき」って言葉を見かけたりするけど、うちのPdMは2人でいい感じにやっていて、このスタイルいいなぁって思う。おかげでエンジニアとしても動きやすい。 そもそも、PdMってやることがめちゃくちゃ多い。ステークホルダーと話したり、ユーザーさんのお話を聞きに行ったり、少し先のことを考えたり、仕様を決めたり、受け入れ判断をしたり、仮説検証のためのKPIをチェックしたり、問い合わせがあったら一次請けをしてくれたり、いろんなことを決断しまくったり。それでいて業界の勉…
2ヶ月前
記事のアイキャッチ画像
会議のファシリテーションをほめてもらった
Mitsuyuki.Shiiba
うれしかった。ので、メモ。 僕のいるチームのプロジェクトで、複数のチームにサポートしてもらいながら進める必要がある、ちょっと大きなものが始まりそうだったから、キックオフ前のキックオフやっとこかーってなって司会をした。オンラインミーティングね。 最初にこの会の目的を説明 今日のアジェンダのページのリンクは事前に共有もしていましたけど、いまSlackにもポストしておきましたー。 まだプロジェクトは始まってないんだけど、事前に調査とかをしたいから質問や相談をさせてもらいたいなと思っていて、そのときに「え?これなんの話?」って戸惑わせることがないように、プロジェクトの概要を共有しとこうと思ったー!だか…
2ヶ月前
記事のアイキャッチ画像
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 こっちの表示にも …
3ヶ月前
記事のアイキャッチ画像
『アジャイルチームによる目標づくりガイドブック』を読んだ。脳内にいくおさんをどうぞ。
Mitsuyuki.Shiiba
開発部全体を見てるあのすごい人が、ある1つのチームのマネージャだったらどんな感じなんだろうなぁ?仕事がやりやすいんだろうなぁ?って考えることがある。それが今、僕のいるチームで起こっている。 VPoEの経験もあるいくおさんと、カケハシの同じチームで仕事をしている。いくおさんが1つのチームのエンジニアリングマネージャとしてついてくれているのって、とても贅沢だなぁと思っている。実際に仕事はめちゃくちゃやりやすいし、それだけじゃなくて、僕やチームみんなの心の支えになってくれている。 いくおさんが書籍を出した そんないくおさんが書籍を出した。この本がとてもいい本なので、みんなに読んでほしい。どうしていく…
3ヶ月前
記事のアイキャッチ画像
単体テストの考え方/使い方を読んだ。読んでよかった。
Mitsuyuki.Shiiba
読んでよかった book.mynavi.jp 評判通りよかった そっかーなるほどなぁ。面白いなぁ。と思うことがいろいろあった とはいえ、著者の主張全てに同意というわけではなく「著者はそう考えるんだな。自分は違う考えだな」と考えさせられる部分もいくつかあった 苦手な部分もあった 古典学派とロンドン学派に分けて話を展開しているのはあまり好きじゃないなと思いながら読んだ 定理やマトリクスに当てはめて話を展開する部分があって、いくつかは無理やりだったり話をややこしくしていたりするように自分は感じた。そういう部分は苦手だなぁと思いながら読んだ というのが全体の感想。内容はとてもよかったし、苦手な部分もそ…
4ヶ月前
記事のアイキャッチ画像
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…
4ヶ月前
記事のアイキャッチ画像
DevOpsDays Taipei 2024で喋ってきまーす!
Mitsuyuki.Shiiba
てことで、明日から台北に行く。久しぶりの海外だな。楽しんでくるー!
4ヶ月前
記事のアイキャッチ画像
スクラムが「上手くいってる」「上手くいってない」の頭の整理
Mitsuyuki.Shiiba
この記事を見かけて、やっとむさんだなーやさしく伝えたんだろうなーって思いつつ。「上手くいく」「上手くいってない」って幅がありそうだよなと思ったので、頭の中の整理をしてみることにした。来週の発表の準備が煮詰まっているから気分転換しているだけともいう。 yattom.hatenablog.com やっとむさんの記事を読む 「スクラムで開発を進めている」という状況で 「問題が多い→ならば→スクラムは合わない」のか?という問いに対して やっとむさんの回答は「問題がある→ならば→スクラムは上手くいっている」 と書いてある。「合わない」は「うち(の会社)には合わない」の意味。 最初にことわっておく ふだん…
5ヶ月前
記事のアイキャッチ画像
脳に収まるコードの書き方を読んだ。面白かった。
Mitsuyuki.Shiiba
いただきましたー!わーい。脳に収めるぞー! @haradakiro @ryuzee pic.twitter.com/3Qd6EvPioU— SHIIBA Mitsuyuki (@bufferings) June 13, 2024 明日(2024年6月18日)発売! www.oreilly.co.jp どう書くのがいいんだろうなぁ? 複雑なコードと向き合うときは「あー、これはメモを取りながら読まないと迷子になるやつだ」ってなる。最初はわりとキレイに作られていたとしても、機能追加を重ねていくとだんだん読めなくなっていく。 だから「時間が経っても読みやすいコードってどう書くのがいいんだろうなぁ?何か…
5ヶ月前
記事のアイキャッチ画像
エンジニアからマネージャになったときにあるだろうなぁってことを想像して遊ぶ
Mitsuyuki.Shiiba
ソフトウェアエンジニアの話ね。想像して遊んでるだけね。 スキルは高い まず、マネージャになってほしいって言われる時点で「仕事を任せられる」というエンジニアなんだろうな。それは、つまりコードを書くことに加えて、プロダクトをなんとかしてリリースする力と責任感をもっていて、それが会社にとってプラスになっている。 だから、チームを任せて同じようなエンジニアを育てて欲しいと期待されている。自分自身も、自分のスキルをもっと会社の役に立てるぞー!とやる気になっている。 任せたい そういう人がマネージャになって、あるだろうなぁと思うのは「どう任せたらいいんだろう?」という悩み。 自分が手を動かせばプロジェクト…
6ヶ月前
記事のアイキャッチ画像
単体テストの考え方・使い方をマイペースで読んでいる(第4章)
Mitsuyuki.Shiiba
単体テストの考え方・使い方を1年ちょっと前に買って、今頃になって少しずつマイペースで読んでいる。著者の考え方が自分とは違う部分があるけど、それはそれでおもしろい。 book.mynavi.jp 第4章を読んだ 昨日いちど第4章を読んで、今日ももういちど読み直した。この章を読み直した理由は、あんまりしっくりこなかったから。でも、別にしっくりこなかった部分については今日は書かない。今日はただのメモ。 この章では、良い単体テストを構成する4つの柱について書かれている。 リグレッションに対する保護 リファクタリングへの耐性 迅速なフィードバック 保守のしやすさ これ自体はとてもよく分かる。単体テストと…
6ヶ月前
記事のアイキャッチ画像
TS5.5のInferred Type Predicatesでちょこっと気にしておきたいなと思ったこと
Mitsuyuki.Shiiba
昨日TSKaigiに参加してとても楽しかった。そのキーノートスピーカーがDanielで、5.5の新機能を教えてくれた。 ので、今日は↓この記事のInferred Type Predicatesを手を動かしながら読んだ。面白かった。まだ5.5はベータ。 devblogs.microsoft.com Inferred Type Predicatesってどういうもの? こういう関数を書くと function isString(x: string | number) { return typeof x === "string"; } 5.4までは、戻り値の型は単純に boolean に推論される。 こ…
6ヶ月前
記事のアイキャッチ画像
TDDを実践する中で身につけてた「設計に関するスキル」を3つ
Mitsuyuki.Shiiba
TDDを実践する中で身につけた「設計に関するスキル」があるなぁと思ったのでメモを残しておくことにする。TDDをやるときのスキルではなく設計をするときのスキル。 染み込んでいる TDDは以前に書いたように(ってもう7年も前か・・・)あんまり使わなくなっている。でも心の中にある。ウェブアプリケーションエンジニアとしての自分にとても大きな影響を与えている。 bufferings.hatenablog.com TDDから学んだ設計に関するスキル 3つ思い浮かんだ まずは動くものを作る 必要な分だけ作る 「ありえない」の処理を考える 注意 ウェブアプリケーションを書くときのことを考えながら書いている。ラ…
7ヶ月前
記事のアイキャッチ画像
しなやかな変化とトランクベース開発(の話をするよ) #DevOpsDaysTokyo 2024 (宣伝)
Mitsuyuki.Shiiba
カケハシに入って1年経った 2023年4月に入社したので1年経った。あっという間のような、濃い1年だったような。 最初の半年は、EM1人(ゆのんさん)、PdM1人、エンジニア2人(僕ともう一人)、で新サービスの立ち上げをした。少人数だったので全員が「いま自分はこう動くべきだと思う」と行動してチームとしての型をもたずにカオスを受け入れてお互いに背中をあずけあって流動的に全力疾走した。 このあたりの話は、ゆのんさんと一緒にRSGTでお話ししたのでよかったら見てね。 youtu.be 新規開発ってサービスローンチを境にしてガラッと変わる サービスの運用がまだ始まっていなくて開発だけに集中している状況…
7ヶ月前
記事のアイキャッチ画像
3/13(水)に Product Engineer Night で喋ります! #PdENight
Mitsuyuki.Shiiba
オフラインの勉強会です。ぜひ来てね! product-engineer.connpass.com (って言っても、ありがたいことに定員オーバーしていて、抽選待ちの状態です。でもよかったら申し込んでくれると嬉しいです!) 仮説検証ループをすばやく回し続ける 僕は、スタートアップで新規プロダクトの開発を担当しています。そのプロダクトを立ち上げるときに「仮説検証のループをすばやく回し続けられるように!」と、いろんな決断をしながら作ってきました。立ち上がってしばらくたつ今もスピードを落とさずに仮説を検証し続けている状態です。↓いまこんな状態 毎週何かしら動くものをステークホルダーに見せて意見をもらって…
9ヶ月前
記事のアイキャッチ画像
git-replay を最低限の使い方で触ってみた
Mitsuyuki.Shiiba
git-replay というコマンドが追加されたみたいなので触ってみた。とは言っても、自分はあんまり凝ったことはやらないので、細かいところまでは踏み込まずに最低限の使い方ができたらいいなってくらいの気持ちで触った。 github.blog この記事には、こんな風に書いてある↓ git replay exists to address these challenges. It offers an alternative to git rebase that, in addition to being far more performant: Can operate in bare reposit…
9ヶ月前
記事のアイキャッチ画像
GitHubのMerge Queueとは何か?それと、認識しておきたいこと
Mitsuyuki.Shiiba
同僚に「GitHubのMerge Queueってあんまり知らないんだけど、どう思う?」って聞かれて「あー。僕もあれよく分かってないんだよね」って返事をして、ちょうどいい機会なので見てみた 見てみた感想としては、いくつか気をつけておきたい点があるけど、チームの開発の進め方にうまくはまれば便利な機能だな、という感じ(なんでもそうか・・・) Merge Queueって? 2023年の7月にGAになったGitHubの機能 プルリクエストをマージするときに「マージ先のブランチ(ベースブランチ)の最新の変更を取り込んでからChecks(つまりCI)を実行して、それが成功したらマージしといて!」ってお願いで…
9ヶ月前
記事のアイキャッチ画像
Cloudflare WorkersにBun+Honoのアプリをデプロイするハローワールドをやった
Mitsuyuki.Shiiba
ほんとうにハローワールドをやっただけなので、それ以上の情報はないよ! いっこあるとしたら「Cloudflare WorkersのCLIであるwrangler がBig Surでは動かなくて、Sonomaにしたら動いたよ」ってことくらい 全然知らない技術 この記事を読んで、そういえばHono [ほのー] を触ってみたいんだったなぁと思って(HonoはJSランタイム用の高速なウェブアプリケーションフレームワーク) Next.js + Hono + AWS でイベント駆動なプロフィール交換アプリを開発! Honoのドキュメントを眺めて https://hono.dev/ JSのランタイムはNode.…
10ヶ月前
記事のアイキャッチ画像
チームトポロジーを疑ったりしながら
Mitsuyuki.Shiiba
とても雑記。 チームトポロジーを読んだ。買ったときにはさらっと読んでたので、今回はゆっくり読んだ。 読み直そうと思った理由 以前に読んだときは「まぁ、そうだな。わかる」くらいの気持ちだったんだけど、それから2年くらい経って、チームトポロジーの用語が、少なくとも僕の周りでは、普通に交わされるようになってるなぁと感じたから、読み直そうと思った。 用語をある程度理解しておくと、相手の言っていることがよりよく理解できそうだなと思って。 読み直してみてどうだった? まぁ、そうだな。わかる。という気持ち。(おい!) それから、用語の整理もできた。4つのチームタイプと3つのインタラクションモード。これで、周…
10ヶ月前
記事のアイキャッチ画像
Gitの自分用メモ:トラッキングせずにブランチを作りたい。カレントブランチのポインタを移動させたい。
Mitsuyuki.Shiiba
気分転換といえばGit。ということでGitを触ってた。 僕がGitでよくやる操作があって、それは複数のコマンドを叩いてるんだけど、簡単にできるものが用意されてるだろうなぁとずっと思っていて、やっと調べることにした。自分用メモ。 トラッキングせずにブランチを作りたい リモートブランチをトラッキングするのは、あまり好きではないので、切り離してブランチを作りたくて、こうしてた↓ git switch -d origin/<リモートブランチ名> でDETACHED HEADの状態にする git switch -c <ローカルブランチ名> でカレントコミットから作成するとリモートブランチをトラッキングし…
10ヶ月前
記事のアイキャッチ画像
DDDの実装にはあまり興味がなくなっている
Mitsuyuki.Shiiba
以前は、DDDでどう実装したらいいかなぁって考えてたんだけど、最近は、そういうことへの興味があまりなくなっている。エンティティや値オブジェクト、集約やリポジトリなど、そのあたりにあまり興味がない。ヘキサゴナルアーキテクチャなども、そんなに考えなくなった。 TypeScriptを使うことが多いので、型でしっかり守るとかカプセル化するとか、そのあたりがどっちでもいっかという気持ちになっていることが影響してるとは思う。TypeScriptでクラスを使おうとはあまり思わないし。BrandedTypeみたいなのを使ってまで型で守ろうとは思わない。 じゃあ何に興味があるんだっけ?って考えてみると、トランザ…
10ヶ月前