kosui_meのブックマーク (28)

  • 人工衛星のファームウェアをRustで書く理由

    2025/09/10に開催されたイベント「Rustの現場に学ぶ」の発表資料です https://findy.connpass.com/event/359456/

    人工衛星のファームウェアをRustで書く理由
    kosui_me
    kosui_me 2025/09/12
  • 他言語経験者が知っておきたいTypeScriptのクラスの注意点 - KAKEHASHI Tech Blog

    はじめに こんにちは、岩佐 幸翠(@kosui_me)です。カケハシで認証基盤・ライセンス基盤・組織階層基盤などのプラットフォームシステムを開発・運用する認証権限基盤チームのテックリードをしています。 TypeScriptのクラス構文は、一見するとJavaやC#などの言語と非常に似ていますが、その背景にあるJavaScriptの特性により、振る舞いに重要な違いが存在します。これらの違いを理解することは、これまでの経験を活かしつつ、TypeScriptで堅牢なアプリケーションを構築する上で非常に重要です。 記事では、主にJavaやC#など、クラスベースの静的型付け言語に慣れ親しんだエンジニアの方々を対象に、TypeScriptでクラスを扱う際に特に留意すべきポイントを解説します。さらに、クラスを用いない関数型のアプローチについても触れ、TypeScriptにおけるドメインモデリングの多様な

    他言語経験者が知っておきたいTypeScriptのクラスの注意点 - KAKEHASHI Tech Blog
    kosui_me
    kosui_me 2025/08/20
    著者です。なぜ私がJavaScriptにおけるクラスの利用を避けるのか、社内外・TSコミュニティ内外に向けて、「classではなくfunctionを使おう」の一言で終わらせず、代替案まで含め丁寧に説明責任を果たすために執筆しました。
  • 実装手順書よりもコンパイルエラー - 株式会社ヘンリー エンジニアブログ

    株式会社ヘンリーでエンジニアをしている okbee です。 直近は製品のフルリニューアルを行なっており、詳細は省きますが、私もこの開発に参加しています。社内では「コスト連携」と呼ばれる機能の開発を主に担当していました。 「コスト連携」をざっくりと説明するならば、患者に対して医師が作成した指示(オーダー)を元にして、実際の金額を算出するためのワークフローです。詳細はコンテキストで紹介します。 さて、今回は「コスト連携」の実装を通して感じた反省を元に、より良い設計のヒントとして「コンパイルエラーを活用した手順不足の検知」を考えていきます。 コンテキスト コスト連携には臨床・会計の2つの大きなコンテキストが背景にあります。 患者に対して医師が作成する指示(以降はオーダーと表記)は臨床と呼ばれるコンテキストで作成されます。ちょうど、皆さんがクリニックなどで診察を受ける際に医師が薬を処方したり、注射

    実装手順書よりもコンパイルエラー - 株式会社ヘンリー エンジニアブログ
    kosui_me
    kosui_me 2025/06/12
  • Row Level Security で事故らないアプリケーションを構築する - FLINTERS Engineer's Blog

    こんにちは、清水(@_smzst)です。直近の業務でマルチテナントな DB でアプリケーションでのスイッチロール機能を実現するために Amazon Cognito や表題にある Row Level Security について技術検証や設計検討を行っていました。 今回はこの Row Level Security について PostgreSQL での例を挙げて挙動を確認しながら、実際に導入するにあたって必要な知識や注意点までを網羅します。記事が安全で堅牢なアプリケーション構築の一助となれば幸いです。 1. マルチテナントとは 2. Row Level Security とは 3. 実際に試してみる 3-1. 実現するための SQL 3-2. RLS 有効化前 3-3. RLS 有効化後 4. 補足 4-1. クエリのパフォーマンスについて 4-2. ユーザーとロールの管理について 4-3.

    Row Level Security で事故らないアプリケーションを構築する - FLINTERS Engineer's Blog
    kosui_me
    kosui_me 2025/06/06
  • 作業するまでのハードルを下げる技術 - お雑煮研究会

    自分は結構作業のハードルを下げることが大事だと思っている。 アイデアが降ってきても、それを形にする前段階の準備が面倒だとだいたい Scrapbox などにメモしてそのまま埋もれることが経験上多いからだ。 特に中身はないが、自分が作業のハードルを下げるためにやっていることを何個か書こうと思う。 dotfiles 去年の夏頃から、どの PC でも常に同じ環境で作業ができるように dotfiles で構成を管理し始めた。 Git などの頻繁に行う操作が明らかに素早くなり、やりたいことに没頭できるようになった感覚がある。 github.com あと mise が普通に便利で、npm とか ruby gem とかも含めてグローバルに使いたい util を全部管理できるのがかなり良い。 自分はこんな感じで普段使いするライブラリも全部 mise で管理している [tools] "gem:foreman"

    作業するまでのハードルを下げる技術 - お雑煮研究会
    kosui_me
    kosui_me 2025/06/03
  • ユーザーの内部IDの発行権を他人に握らせてはいけない - kosui

    結論 ユーザーの内部IDを自システム以外に委ねるべきではありません。 ユーザーの内部IDの実装について気をつけるべきことを2つ紹介します。 外部サービスが発行したIDを内部IDにするべきではない ユーザーが変更可能な値を内部IDにするべきではない 外部サービスが発行したIDを内部IDにするべきではない 外部サービスが発行したIDを内部IDにすることは避けましょう。 内部IDは、システム内で一意で永続的な識別子であるべきです。 例) 外部IDプロバイダのユーザーID 例えば、GoogleをIDプロバイダとして利用する上で、GoogleアカウントのユーザーIDをそのままユーザーの内部IDとして使用した場合、どんな問題が起こるかを考えてみましょう。 例えば、後からGoogleがユーザーIDの仕様を変更した場合、システム内でのユーザーIDの一意性が保証されなくなります。もちろん、Googleがユー

    ユーザーの内部IDの発行権を他人に握らせてはいけない - kosui
    kosui_me
    kosui_me 2025/06/03
  • toitta(トイッタ) - ユーザーの声に向き合える発話分析ソリューション

    ユーザーの声を大切にする すべての組織のために。 toitta(トイッタ)は、デザインリサーチ・マーケティングリサーチに携わるチームのために考案された、インタビュー後の発話分析を支援するソリューションです。 リサーチを通してインサイトの発見・仮説の精緻化を実現するまでのプロセスにひそむ課題を、「生成AIを活用した発話の構造データ化」で解決します。 インタビューの録画・音声データをAIで処理し、データを分析しやすい形に整えることで、ハードルの高いインタビュー分析を強力にサポートします。

    toitta(トイッタ) - ユーザーの声に向き合える発話分析ソリューション
    kosui_me
    kosui_me 2025/05/24
  • GitHub - azu/power-doctest: JavaScript Doctest for JavaScript, Markdown and Asciidoc.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - azu/power-doctest: JavaScript Doctest for JavaScript, Markdown and Asciidoc.
    kosui_me
    kosui_me 2025/05/24
  • Zod v4でz.discriminatedUnionはどうなる予定なんだっけ?を見ておいた - Mitsuyuki.Shiiba

    「数日前に↓のIssueがクローズされたんだよねー。Zod v4が関係してそう。知らんけど」って会社の同僚と喋ったので、ちゃんと知っておくかーって気持ちになった。 ※ 記事はzod@4.0.0-beta.20250505T195954時点の挙動をもとにしています。正式版で変更される可能性があります。 最初にまとめ z.switchが追加されるとか、z.discriminatedUnionが非推奨になるとかの話はなくなった様子 Zod v4 ではz.discriminatedUnionに識別プロパティを渡さないようになった(渡しても無視される) 共通の識別プロパティを持たずに、各オプションがそれぞれリテラルかenum(ネスト可)のプロパティを持つだけでよくなった Zod v3までのz.unionとz.discriminatedUnion Issueの内容を説明する前に、現行であるZod v

    Zod v4でz.discriminatedUnionはどうなる予定なんだっけ?を見ておいた - Mitsuyuki.Shiiba
    kosui_me
    kosui_me 2025/05/08
  • 生成AIにMermaid.jsでロバストネス図を描いてもらう - kosui

    背景 生成AIによる要求分析 要求分析はチームによるシステム開発の要であり、関係者の認識を揃えるために非常に重要なプロセスです。 システム開発のための要求分析の手法としてICONIXやRDRAなどが知られていますが、その過程ではユースケース図やロバストネス図などの図を用いてシステムの要求を視覚化することが一般的です。 近年では生成AIを使用することでより高速に要求分析を行うことができるようになりました。特に、自然言語で記述された抽象的な要望を生成AIに与え、要求を抽出させた上でPlantUMLやMermaid.jsなどで図を執筆させることで、プロジェクトの立ち上げ速度を向上させることができます。 例えば、「この要望から関係しうるアクターと外部システムをすべて列挙し、それぞれのアクターが持つ要望を3つ挙げて」と書くだけで、プロジェクト初期に巻き込むべきチームや関係者をすぐに発見できます。 ロ

    生成AIにMermaid.jsでロバストネス図を描いてもらう - kosui
    kosui_me
    kosui_me 2025/05/08
    書いた!要求分析も生成AIに手伝ってもらうぞ💪 Mermaid.jsは作図が苦手なエンジニアの強い味方であり、生成AIによる要求分析は丁寧な説明に時間を割けないPdMの強い味方です。
  • ドメインイベントを伝達するためのモデリング技法 - KAKEHASHI Tech Blog

    前回は、アーキテクチャの進化はドメインイベントが起点になるという記事内で、ドメインイベントの重要性を語りました。稿では、ドメインイベントを伝達する際にシステム要件を満たした上で、どのようにしてデータモデル並びにドメインモデルを象るかを説明します。 なお、ビジネスドメインを深掘りドメインモデルを探索する手法の説明は、世にたくさん解説されているため詳しくはそちらに譲ります。特にAlberto Brandolini氏が提唱するモデリング手法であるEvent Stormingは、ワークショップ形式でドメインイベントを深く理解し、一連の業務プロセスやドメイン領域を探索的に発見することができる手法であり、Event Sourcingを前提とするアーキテクチャと相性がいいので参考にするとよいでしょう。 ドメインイベントのデータモデルの属性 ドメインイベントの記録および伝達に着眼した構成を紹介した前回の

    ドメインイベントを伝達するためのモデリング技法 - KAKEHASHI Tech Blog
    kosui_me
    kosui_me 2025/05/07
  • ドメインイベントを容易に記録できるコード設計を考える - kosui

    はじめに データアナリストの現場の苦しみ 近年、ビジネスの意思決定にはデータの活用が重要だという認識が広まりつつあります。実際、データアナリストに関する求人やデータ分析の発表が増えているのを実感します。 しかし、現場では、異常かつ不十分なデータをデータアナリストが必死に処理しながら分析を試みている状況です。それによって、来集中したいデータの分析に充分に取り組めていないのが現状だと思います。あっちこっちのシステムに散らばった中途半端なデータの数々を寄せ集め、微妙なフォーマットの違いに気を配りながら整形し、それぞれのデータの法的な契約状態に注意しながら分析を行うのは、非常に大変な作業です。データアナリストの方々は、データの収集と整形に多くの時間を費やしているのではないでしょうか。 現在、IT系の仕事の中でデータアナリストは高い人気を博している。大手を含めて日企業の大多数は情報活用が出来てい

    ドメインイベントを容易に記録できるコード設計を考える - kosui
    kosui_me
    kosui_me 2025/05/06
    ドメインイベントの記録には意外と工数はかかりません。一方で、一度失ったデータは永久に復元できません。監査や障害対応のために、基幹システムを作るチームは絶対にドメインイベントを記録してほしいです。
  • 基幹システムが劣化するとデータ分析が栄える - 設計者の発言

    現在、IT系の仕事の中でデータアナリストは高い人気を博している。大手を含めて日企業の大多数は情報活用が出来ていないので、データアナリストやその志望者にはブルーオーシャンが広がっているように見えるかもしれない。しかし、情報の分析・活用の現場で欠けているのはデータ分析のスキルではない。豊穣かつ正確なローデータ(分析用の生データ)の供給源となるべき「まともな基幹システム」である。 「いや、だからこそ分析基盤の整備から始める必要があるんです」とデータアナリストは語るかもしれない。そんな彼らにはあらためて"garbage in, garbage out"の格言を送りたい。garbage(ゴミ)を手間暇かけて整形しても、そこから得られる分析結果は「整形されたゴミ」でしかない。基幹システムがポンコツである限り、分析基盤をいかに充実させても効果は出ない。かつてビッグデータという言葉があったが、企業が抱え

    基幹システムが劣化するとデータ分析が栄える - 設計者の発言
    kosui_me
    kosui_me 2025/03/21
  • 「Yu Gothic UI」フォントの鍵括弧、繋げるとブラウザ表示で重なる問題を調べてみた - 俵のメモ帳

    Yu Gothic UItext-spacing-trim を適用するとバグる を読んでいて、気になってしまったので、実際にYu Gothic UIのファイルの中身を開いて調べてみました。 発生している問題 回避策 原因 Yu Gothic UI 特有の問題? まとめ 発生している問題 Yu Gothic UIは、Windows 10からプリインストールされているUI表示用フォントです。 手元の環境で確認したところ、Windows 11 23H2 (ビルド 22631.4317) 時点では、「Yu Gothic UI Version 1.93」がインストールされていました。 このフォントChrome系ブラウザで利用すると、鍵括弧表示が崩れる場合があります。具体的には、 「abc」「abc」 のように、閉じ括弧・開き括弧が隣接するケースです。 」「 の部分ですね。この際に、閉じ括弧と開

    「Yu Gothic UI」フォントの鍵括弧、繋げるとブラウザ表示で重なる問題を調べてみた - 俵のメモ帳
    kosui_me
    kosui_me 2024/10/15
  • NODE_ENVにdevelopmentとproduction以外を入れると辛い - ぷらすのブログ

    結構前に Node における NODE_ENV と環境変数の設定方法について Slack で軽く議論したんだけど、その後色々と考えるものがあったのでここにまとめておく。 基的にサーバサイドを前提とした話をするが、フロントエンドにも通じる話だと思うし、Next.js の話も出てくる。 NODE_ENV に development、production 以外が入るややこしさ Node のエコシステムでよく使われる環境変数として NODE_ENV がある。 様々なツールが NODE_ENV を見て、developmentであれば開発用のトレースやログを出してくれるし、production であれば番用に最適化された処理を行ってくれる。 これはこれで便利なんだけど、環境 (ENV) という言葉に釣られて、デプロイ環境の名称を NODE_ENV に設定し始めると、途端にややこしくなることが多い。

    NODE_ENVにdevelopmentとproduction以外を入れると辛い - ぷらすのブログ
    kosui_me
    kosui_me 2024/09/25
  • 目的別データベースの実践: PostgreSQL 行レベルセキュリティと DynamoDB Outboxパターン - KAKEHASHI Tech Blog

    カケハシのプラットフォームチームのテックリードとして組織管理サービスと認証基盤を開発している kosui (id:kosui_me) です。今回は、目的別データベースをプラットフォームチームではどのように実践しているかご紹介します。 この記事は秋の技術特集 2024の 13 記事目です。 背景 目的 事例1: PostgreSQL の行レベルセキュリティを活用する組織管理サービス 組織管理サービスとは PostgreSQL の行レベルセキュリティ 行レベルセキュリティを用いたトランザクションマネージャー 行レベルセキュリティの運用上の注意点 事例2: DynamoDB を活用する認証基盤と Outbox パターンの活用 カケハシの認証基盤刷新 DynamoDB で実現する高稼働率の認証基盤 DynamoDB の特性を考慮する CDC と Outbox パターン まとめ 背景 医療の分野で様

    目的別データベースの実践: PostgreSQL 行レベルセキュリティと DynamoDB Outboxパターン - KAKEHASHI Tech Blog
    kosui_me
    kosui_me 2024/09/19
    書きました🙌
  • TSKaigi Kansai 2024 で登壇してみませんか?トークテーマの探し方・プロポーザルの書き方のヒントを紹介します! - TSKaigi 公式ブログ

    こんにちは、TSKaigi Kansai プログラムチームです。 現在 TSKaigi Kansai 2024 ではトーク登壇のプロポーザルを募集中です。この記事では改めて登壇のお誘いと、登壇に挑戦される方への応援として、トークテーマの探し方やプロポーザルの書き方のヒントをご紹介します。「登壇に応募はしたいがテーマに自信がない」「良いプロポーザルの書き方がわからない」という方にも、この記事が少しでも応募の助けとなりましたら幸いです。 TSKaigi Kansai 2024 とは トークテーマの探し方 自身の経験や疑問・発見をテーマにする 興味のある分野を深掘りする プロポーザルの書き方 トークの内容をわかりやすく伝える フィードバックを取り入れる TSKaigi 2024 登壇者の方にも聞いてみました kosui さん (TSKaigi 2024 セッション登壇者) Q. トークテーマはど

    TSKaigi Kansai 2024 で登壇してみませんか?トークテーマの探し方・プロポーザルの書き方のヒントを紹介します! - TSKaigi 公式ブログ
    kosui_me
    kosui_me 2024/09/06
  • 新しいチームでTypeScriptに素早くキャッチアップするためにやったこと - KAKEHASHI Tech Blog

    カケハシのプラットフォームチームでソフトウェアエンジニアをしているすてにゃん (id:stefafafan) です。今回は、私が TypeScript をメイン言語として採用しているチームに参加した際、言語や周辺技術のキャッチアップを行った方法について紹介します。 この記事は秋の技術特集 2024の 3 記事目です。 この記事の想定読者 私が元々持っていたスキルセット 認知負荷の増加 TypeScript 学習のためにやったこと 学習の進め方 テックリードとの 1on1 の中で壁打ちや相談 ペアプログラミング 輪読会 もくもく会 学習コンテンツ O'Reilly Online Learning を使った学習 TypeScript Deep Dive プロを目指す人のための TypeScript 入門 安全なコードの書き方から高度な型の使い方まで type-challenges 公式ドキュメ

    新しいチームでTypeScriptに素早くキャッチアップするためにやったこと - KAKEHASHI Tech Blog
    kosui_me
    kosui_me 2024/09/04
  • TypeScript における変性(variance)について - 30歳からのプログラミング

    プログラミングの型システムに関する記事を読んでいると、共変や反変といった用語が出てくることがある。 TypeScript や Flow についての記事でも、見かけることがある。 それらは TypeScript を使う上で必須の知識ではないが、把握しておくに越したことはない。 この記事では、TypeScript を題材にして、変性について説明していく。 TypeScript に関する議論を理解できるようになることがこの記事の目的であり、より詳細な、学術的、数学的な内容には踏み込まない。 この記事の内容は、TypeScript のv3.9.5で動作確認している。 変性 変性(variance)とは、任意の型Tに対してどのような性質を持つのか示したものであり、以下の 4 種類がある。 不変性(invariance) Tそのものが必要 共変性(covariance) Tそのものか、そのサブタイプが

    TypeScript における変性(variance)について - 30歳からのプログラミング
    kosui_me
    kosui_me 2024/08/22
  • 情報の見つけやすさを追求する - 社内ドキュメンテーションの階層整理術 - KAKEHASHI Tech Blog

    カケハシのプラットフォームチームでソフトウェアエンジニアをしているすてにゃん (id:stefafafan) です。今回はチームに配属されて数ヶ月の私が、いかにして社内ドキュメンテーションの階層構造を整理し、情報の検索性を向上させたかについてお話します。 はじめに この記事の想定読者 課題意識 メンバーへの共有と相談 社外事例の調査 esa の階層整理 第 1・第 2 階層の整理 ストック情報とフロー情報を意識した階層の整理 esa の機能をフル活用する 効果や今後について はじめに カケハシでは全社的にドキュメンテーションツールとして esa - 自律的なチームのための情報共有サービス を利用しています。それぞれのチームやプロダクトごとに階層を切ってドキュメントを書いています。 プラットフォームチームでは認証基盤などの社内プラットフォームシステムを開発しているため、自チームが運用する各種

    情報の見つけやすさを追求する - 社内ドキュメンテーションの階層整理術 - KAKEHASHI Tech Blog
    kosui_me
    kosui_me 2024/08/15