株式会社KDOTの開発情報ポータル

storybook-ai-agent-screenshot
6 views

Storybookで画面操作説明の画像をAI Agentに作らせる

プロダクトの画面操作説明ドキュメント(マニュアル、要件定義書、オンボーディング資料)は、画面が変わるたびに書き直しを強いられる。文章だけの差分なら軽い。番号や矢印を重ねた説明画像は別で、変更のたびに画像編集ソフトで置き直しになる。 この作業...

rayon-tokio-choose
12 views

rayonとtokioの使い分け

Rustで少し重い処理を書き始めると、rayonとtokioはどちらも選択肢に上がる。呼び出し規約はどちらも「並列っぽい」ので、その場で正解を選ぼうとすると判断がつかない。 つかないのは、両者が同じ問題を別の方法で解いているように見えるから...

payload-cms-cloudflare-stack-components
10 views

Payload CMSをCloudflare Workers/D1/R2で動かす

Payload CMSの本体はNext.jsアプリだ。管理画面、REST/GraphQL API、コンテンツDBの操作、ファイルアップロード、認証、権限制御まで、同じプロジェクトのコードに入っている。 デプロイ先の候補はVercel、Nod...

metabase-permission-model
14 views

Metabaseの権限モデル入門

Metabaseでは、閲覧者と分析者で必要な権限が違う。閲覧者には作成済みの表やグラフだけを見せたい。分析者には元データから新しい分析を作らせたい。Metabaseは、この2つを別の権限として扱う。 用語と権限の2軸 Metabaseの権限...

dylint-custom-rust-lints
10 views

dylintでRustの自前lintを運用する

Rustコードベースでは、まずClippyで既存lintを回すことが多い。ところが、自前lint向けの規約はClippy本体のlint一覧には載らない。 モジュール境界でnewtypeを強制したい、Clippy抑制には理由コメントを付けたい...

rust-markdown-parser-comparison
10 views

RustでMarkdownをパースする — parserの選び方

Markdown原稿をlinterや抽出ツールで扱うとき、最初に決めるのはparserライブラリだ。linterを組む段階で「どのcrateをparse層に置くか」で迷った経験はないだろうか。同じ# 見出し一行でも、返ってくるAPIの形と位...

japanese-markdown-lint-architecture
7 views

Rustで日本語lintのために使用できる技術

コードにlintがあるように、日本語の文章にもlintをかけたくなる。表記のゆれ、消し忘れた下書きの目印、読みにくい言い回しを、人手のレビュー前に機械で拾いたい。 ところが、日本語の文章の解析では、英語向けのlinterや正規表現だけでは越...

type-concepts-advanced
520 views

Pyrightの静的型付け:上級者向け解説

Pyrightでは、「type narrowing」と称される技術を用いて、コードの流れを基にして式の型を特定します。次の例を見てみましょう。 この関数が始まるとき、型チェッカーはvalがfloat str complexの型であることしか...

type-inference
430 views

型推論についての理解

Pythonにおいて、「シンボル」とはキーワードではないすべての名前のことを指します。シンボルには、クラス、関数、メソッド、変数、パラメータ、モジュール、型エイリアス、型変数などが含まれます。 シンボルは「スコープ」と呼ばれる範囲内で定義さ...

rust-web-framework-comparison
207 views

最新Rust Webフレームワーク

以下の文章はIvan Cernjaさんからの許可を得て記事を翻訳したものです。 https://www.shuttle.rs/blog/2023/08/23/rust-web-framework-comparison ウェブ開発の変わりゆく...