Mitsuyuki.Shiiba

フィード

記事のアイキャッチ画像
typescript-eslintとFlat Config
はてなブックマークアイコン 13
Mitsuyuki.Shiiba
typescript-eslintのFlat Configについて、自分に今必要そうな部分だけをひととおり確認したので忘れる前にメモを残しておく。 前提 素のJavaScriptプロジェクトをやることは自分はあまりなさそうなのでTypeScript前提 ES Modules前提でいいやと思っているので設定ファイルの拡張子はシンプルに .js にする フォーマッターにはESLintのStylisticじゃなくてESLint外のフォーマッター(PrettierやBiome)を使う前提 基本の設定 https://typescript-eslint.io/getting-started/ の最初に書…
7日前
記事のアイキャッチ画像
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…
19日前
記事のアイキャッチ画像
NeverThrowを触ろうと思ったらESLintのFlat Configを触っていた(後編)
Mitsuyuki.Shiiba
の続き。eslint-plugin-neverthrow に手を入れて動くようにしてみるぞー!そして記事を書き終わるぞー! eslint-plugin-neverthrow に手を入れてみる そのままでは動かなさそうだから手を入れて動くようにしてみたい。パッケージを作ればできそうではあるけど、もうちょっと簡単にできないかな?と思って探してみたら、こんな記事を見つけた。ありがたい。 srcのとなりにコードを置いて、それを使うようにできるのかー。これなら簡単に eslint-plugin-neverthrow に手を入れられそう。この記事や、ESLintのプラグイン自作ページを見ながら試してみたら…
1ヶ月前
記事のアイキャッチ画像
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…
1ヶ月前
記事のアイキャッチ画像
NeverThrowを触ろうと思ったらESLintのFlat Configを触っていた(前編)
Mitsuyuki.Shiiba
TypeScriptでサーバーサイドのアプリケーションを書いていて、エラーをThrowするより型安全に失敗を返したいなと思って、簡単なResult型をペラっと作って使ったことがある。 あまり複雑なことはしたくないからそれで満足しているんだけど、TSKaigiやTSKaigi KansaiでResult型の話をよく耳にしたので、ちゃんとライブラリを一個くらい勉強しようかなと思った。 最初にあらすじ neverthrowとeslint-plugin-neverthrowを入れてNeverThrowを触ろうとしたら、eslint-plugin-neverthrowがESLintのFlat Confi…
1ヶ月前
記事のアイキャッチ画像
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-…
1ヶ月前
記事のアイキャッチ画像
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…
1ヶ月前
記事のアイキャッチ画像
2024-10-26(土)にDevLOVE関西で喋ります! #devkan
Mitsuyuki.Shiiba
なんとDevLOVE関西200回目という記念すべき回でお話させてもらえることになりました!わーい。 devlove-kansai.doorkeeper.jp 喋る人みんなDevLOVE関西でたくさんお世話になってる人たちなので、楽しみ!そめださん、だいくしーさん、いろふさん、くぼさん!楽しみだー! ぜひ申し込んで見に来てねー! 何を喋るの? ちょっとまだ固まってないんだけど、僕が開発をするときに考えていることを、来てくれた人と会話しながら紹介できたらいいなって思っています。 2011年くらいからアジャイルな開発を実践してきて、自分の中にだいぶ開発の型ができてきたかなぁと思うのでそのあたりを。 …
3ヶ月前
記事のアイキャッチ画像
はてなブログのコードブロックでPrism.jsを使うようにしてたところにラベルを表示できるようにした
Mitsuyuki.Shiiba
最近ブログのデザインを変えた。その続きで少し改修した。 bufferings.hatenablog.com 何を修正したのか? コードブロックでファイル名などのラベルを出せたらいいなと思ったので対応した。 ↓これはスクリーンキャプチャ。hello.javaが表示されている。シンタックスハイライトが効いていることを確認したかっただけなのでコードの内容は関係ない。 こんな感じ ↓これは実際のコードブロック。 sealed interface Mapping<T> { T value(); record A(Boolean value) implements Mapping<Boolean> {} …
3ヶ月前
記事のアイキャッチ画像
前回TypeScriptでやった「タグ付きユニオンのタグを指定して、型安全に値を取り出したい」をJavaでやってみた
Mitsuyuki.Shiiba
前回書いたこれを同僚に「こんな感じだったよ。勉強になったよー!」って見せたら「なるほど勉強になった!ありがとう!」って言ってもらえたのでよかった。 bufferings.hatenablog.com そしてその同僚が「こういうのってJavaだったらどう書くの?」って言って「んー。最近Java書いてないからどうだっけなぁ・・・そもそもJavaのときには、Discriminated Unionみたいなの欲しいと思ったことなかった気がするなぁ」ってなったのでJavaで考えてみることにした。 前回の記事のTypeScriptのコード type MyUnion = | { tag: "a", value…
3ヶ月前
記事のアイキャッチ画像
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…
3ヶ月前
記事のアイキャッチ画像
バグを見つける
Mitsuyuki.Shiiba
僕は、実装するペアとは別のペアがテストをするのがわりと好き。仕様からテストを設計して実施してたら、実装者が見逃してたバグを見つけられたりする。 バグを見つけるのって面白い。でも、見つけるより前に、減らしておきたい。 だから、プロジェクト全体で誰が意思決定者なのかをキックオフの段階で明確にしておきたい。誰が決めるかが分からないプロジェクトは迷走してバグが生まれやすくなる。 だから、プロダクトマネージャーには機能改修の背景を聞いてから機能の話を聞きたい。背景と機能が自分の中でつながらないときは、何か認識のズレがあってバグが生まれやすくなる。 だから、スコープは小さくしたい。スコープが大きいとバグが…
3ヶ月前
記事のアイキャッチ画像
このはてなブログのデザインを変更した
Mitsuyuki.Shiiba
なんとなくこのブログのシンタックスハイライトのデザインを変えたいなぁと思って、せっかくだからブログのテーマごと変更するかーってテーマストアを眺めてたら、自分で自分が好きな感じのテーマを作ってみるのも面白い・・・か、と思ったのでやってみた。 PC スマホ わりと気に入っている。 コード たまに間違えて上書きして消してしまったりするので、念のためGitHubに置いといた。 https://github.com/bufferings/hatenablog-my-theme 自分が使ってる機能だけ対応 はてなブログにはいろんな機能や設定があるけど、それを全部サポートするのは僕には無理なので、自分が使っ…
3ヶ月前
記事のアイキャッチ画像
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…
3ヶ月前
記事のアイキャッチ画像
ペアPdMがとてもいい感じだなと思いながら見ている
Mitsuyuki.Shiiba
うちのチームにはPdMが2人いる。そのPdM2人は、お互いの得意を活かしながらプロダクトをマネジメントしてくれている。「PdMやPOは1人であるべき」って言葉を見かけたりするけど、うちのPdMは2人でいい感じにやっていて、このスタイルいいなぁって思う。おかげでエンジニアとしても動きやすい。 そもそも、PdMってやることがめちゃくちゃ多い。ステークホルダーと話したり、ユーザーさんのお話を聞きに行ったり、少し先のことを考えたり、仕様を決めたり、受け入れ判断をしたり、仮説検証のためのKPIをチェックしたり、問い合わせがあったら一次請けをしてくれたり、いろんなことを決断しまくったり。それでいて業界の勉…
3ヶ月前
記事のアイキャッチ画像
会議のファシリテーションをほめてもらった
Mitsuyuki.Shiiba
うれしかった。ので、メモ。 僕のいるチームのプロジェクトで、複数のチームにサポートしてもらいながら進める必要がある、ちょっと大きなものが始まりそうだったから、キックオフ前のキックオフやっとこかーってなって司会をした。オンラインミーティングね。 最初にこの会の目的を説明 今日のアジェンダのページのリンクは事前に共有もしていましたけど、いまSlackにもポストしておきましたー。 まだプロジェクトは始まってないんだけど、事前に調査とかをしたいから質問や相談をさせてもらいたいなと思っていて、そのときに「え?これなんの話?」って戸惑わせることがないように、プロジェクトの概要を共有しとこうと思ったー!だか…
3ヶ月前
記事のアイキャッチ画像
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 こっちの表示にも …
4ヶ月前
記事のアイキャッチ画像
『アジャイルチームによる目標づくりガイドブック』を読んだ。脳内にいくおさんをどうぞ。
Mitsuyuki.Shiiba
開発部全体を見てるあのすごい人が、ある1つのチームのマネージャだったらどんな感じなんだろうなぁ?仕事がやりやすいんだろうなぁ?って考えることがある。それが今、僕のいるチームで起こっている。 VPoEの経験もあるいくおさんと、カケハシの同じチームで仕事をしている。いくおさんが1つのチームのエンジニアリングマネージャとしてついてくれているのって、とても贅沢だなぁと思っている。実際に仕事はめちゃくちゃやりやすいし、それだけじゃなくて、僕やチームみんなの心の支えになってくれている。 いくおさんが書籍を出した そんないくおさんが書籍を出した。この本がとてもいい本なので、みんなに読んでほしい。どうしていく…
4ヶ月前
記事のアイキャッチ画像
単体テストの考え方/使い方を読んだ。読んでよかった。
Mitsuyuki.Shiiba
読んでよかった book.mynavi.jp 評判通りよかった そっかーなるほどなぁ。面白いなぁ。と思うことがいろいろあった とはいえ、著者の主張全てに同意というわけではなく「著者はそう考えるんだな。自分は違う考えだな」と考えさせられる部分もいくつかあった 苦手な部分もあった 古典学派とロンドン学派に分けて話を展開しているのはあまり好きじゃないなと思いながら読んだ 定理やマトリクスに当てはめて話を展開する部分があって、いくつかは無理やりだったり話をややこしくしていたりするように自分は感じた。そういう部分は苦手だなぁと思いながら読んだ というのが全体の感想。内容はとてもよかったし、苦手な部分もそ…
5ヶ月前
記事のアイキャッチ画像
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…
5ヶ月前
記事のアイキャッチ画像
DevOpsDays Taipei 2024で喋ってきまーす!
Mitsuyuki.Shiiba
てことで、明日から台北に行く。久しぶりの海外だな。楽しんでくるー!
5ヶ月前
記事のアイキャッチ画像
スクラムが「上手くいってる」「上手くいってない」の頭の整理
Mitsuyuki.Shiiba
この記事を見かけて、やっとむさんだなーやさしく伝えたんだろうなーって思いつつ。「上手くいく」「上手くいってない」って幅がありそうだよなと思ったので、頭の中の整理をしてみることにした。来週の発表の準備が煮詰まっているから気分転換しているだけともいう。 yattom.hatenablog.com やっとむさんの記事を読む 「スクラムで開発を進めている」という状況で 「問題が多い→ならば→スクラムは合わない」のか?という問いに対して やっとむさんの回答は「問題がある→ならば→スクラムは上手くいっている」 と書いてある。「合わない」は「うち(の会社)には合わない」の意味。 最初にことわっておく ふだん…
6ヶ月前
記事のアイキャッチ画像
脳に収まるコードの書き方を読んだ。面白かった。
Mitsuyuki.Shiiba
いただきましたー!わーい。脳に収めるぞー! @haradakiro @ryuzee pic.twitter.com/3Qd6EvPioU— SHIIBA Mitsuyuki (@bufferings) June 13, 2024 明日(2024年6月18日)発売! www.oreilly.co.jp どう書くのがいいんだろうなぁ? 複雑なコードと向き合うときは「あー、これはメモを取りながら読まないと迷子になるやつだ」ってなる。最初はわりとキレイに作られていたとしても、機能追加を重ねていくとだんだん読めなくなっていく。 だから「時間が経っても読みやすいコードってどう書くのがいいんだろうなぁ?何か…
6ヶ月前
記事のアイキャッチ画像
エンジニアからマネージャになったときにあるだろうなぁってことを想像して遊ぶ
Mitsuyuki.Shiiba
ソフトウェアエンジニアの話ね。想像して遊んでるだけね。 スキルは高い まず、マネージャになってほしいって言われる時点で「仕事を任せられる」というエンジニアなんだろうな。それは、つまりコードを書くことに加えて、プロダクトをなんとかしてリリースする力と責任感をもっていて、それが会社にとってプラスになっている。 だから、チームを任せて同じようなエンジニアを育てて欲しいと期待されている。自分自身も、自分のスキルをもっと会社の役に立てるぞー!とやる気になっている。 任せたい そういう人がマネージャになって、あるだろうなぁと思うのは「どう任せたらいいんだろう?」という悩み。 自分が手を動かせばプロジェクト…
7ヶ月前
記事のアイキャッチ画像
単体テストの考え方・使い方をマイペースで読んでいる(第4章)
Mitsuyuki.Shiiba
単体テストの考え方・使い方を1年ちょっと前に買って、今頃になって少しずつマイペースで読んでいる。著者の考え方が自分とは違う部分があるけど、それはそれでおもしろい。 book.mynavi.jp 第4章を読んだ 昨日いちど第4章を読んで、今日ももういちど読み直した。この章を読み直した理由は、あんまりしっくりこなかったから。でも、別にしっくりこなかった部分については今日は書かない。今日はただのメモ。 この章では、良い単体テストを構成する4つの柱について書かれている。 リグレッションに対する保護 リファクタリングへの耐性 迅速なフィードバック 保守のしやすさ これ自体はとてもよく分かる。単体テストと…
7ヶ月前
記事のアイキャッチ画像
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 に推論される。 こ…
7ヶ月前
記事のアイキャッチ画像
TDDを実践する中で身につけてた「設計に関するスキル」を3つ
Mitsuyuki.Shiiba
TDDを実践する中で身につけた「設計に関するスキル」があるなぁと思ったのでメモを残しておくことにする。TDDをやるときのスキルではなく設計をするときのスキル。 染み込んでいる TDDは以前に書いたように(ってもう7年も前か・・・)あんまり使わなくなっている。でも心の中にある。ウェブアプリケーションエンジニアとしての自分にとても大きな影響を与えている。 bufferings.hatenablog.com TDDから学んだ設計に関するスキル 3つ思い浮かんだ まずは動くものを作る 必要な分だけ作る 「ありえない」の処理を考える 注意 ウェブアプリケーションを書くときのことを考えながら書いている。ラ…
8ヶ月前
記事のアイキャッチ画像
しなやかな変化とトランクベース開発(の話をするよ) #DevOpsDaysTokyo 2024 (宣伝)
Mitsuyuki.Shiiba
カケハシに入って1年経った 2023年4月に入社したので1年経った。あっという間のような、濃い1年だったような。 最初の半年は、EM1人(ゆのんさん)、PdM1人、エンジニア2人(僕ともう一人)、で新サービスの立ち上げをした。少人数だったので全員が「いま自分はこう動くべきだと思う」と行動してチームとしての型をもたずにカオスを受け入れてお互いに背中をあずけあって流動的に全力疾走した。 このあたりの話は、ゆのんさんと一緒にRSGTでお話ししたのでよかったら見てね。 youtu.be 新規開発ってサービスローンチを境にしてガラッと変わる サービスの運用がまだ始まっていなくて開発だけに集中している状況…
9ヶ月前
記事のアイキャッチ画像
3/13(水)に Product Engineer Night で喋ります! #PdENight
Mitsuyuki.Shiiba
オフラインの勉強会です。ぜひ来てね! product-engineer.connpass.com (って言っても、ありがたいことに定員オーバーしていて、抽選待ちの状態です。でもよかったら申し込んでくれると嬉しいです!) 仮説検証ループをすばやく回し続ける 僕は、スタートアップで新規プロダクトの開発を担当しています。そのプロダクトを立ち上げるときに「仮説検証のループをすばやく回し続けられるように!」と、いろんな決断をしながら作ってきました。立ち上がってしばらくたつ今もスピードを落とさずに仮説を検証し続けている状態です。↓いまこんな状態 毎週何かしら動くものをステークホルダーに見せて意見をもらって…
10ヶ月前
記事のアイキャッチ画像
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…
10ヶ月前