AutonomousVehicleControlBeginnersGuide
Python sample codes and documents about Autonomous vehicle control algorithm. This project can be used as a technical guide book to study the algorithms and the software architectures for beginners.
翻訳待ち
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗お題が毎回生まれることで「慣れ」が生じない、日本語タイピング練習ツール。
同じお題を繰り返さないため、暗記による有利不利が発生しない。1問の長さはローマ字10〜35打鍵で、時間制限は設けない。画面にキーボードを表示し、次に打つキーをハイライトする。
| テーマで打つ | 最適化練習 | |
|---|---|---|
| 出題される文章 | 指定したテーマに沿った文章 | 指定した音(例:「ざ」)を必ず含む文章 |
| 用途 | 題材を選んで練習する | 指定した連接の運指を固める |
最適化とは標準運指で同じ指が続く連接を、別々の指が続くよう崩した運指に組み替える=上級者向けの技術で、崩した運指を毎回違う文脈で反復する。
Cloudflare Workers 上で動く。Workerは2本に分かれている。
ブラウザ
| 公開API(HTTP)
v
Next.js Worker(OpenNext)… 画面のSSR、セッション検証、認可
| Service Bindings(HTTP方式)
v
Hono Worker … 外部非公開。D1 / KV / Workers AI へのアクセスを担う
| レイヤー | 選定 |
|---|---|
| フロントエンド | Next.js(App Router)+ @opennextjs/cloudflare |
| バックエンド | Hono |
| Worker間通信 | Service Bindings(HTTP方式)+ Hono RPC(hc) |
| データ | D1(Drizzle ORM)+ KV |
| お題生成 | Workers AI(AI Gateway経由)+ 読み Worker(Vibrato + UniDic トリム辞書で読み仮名の取得) |
| 認証 | Better Auth(Googleプロバイダのみ。Next.js Worker側のみに置く) |
| 入力検証 | Zod(公開APIの入口で行う) |
| スタイル | Tailwind CSS v4(@theme トークンで4色・3書体に制限) |
| テスト | bun test(純粋関数)+ Vitest + @cloudflare/vitest-pool-workers(D1/KV依存) |
| lint/format | oxlint + oxfmt |
| パッケージ管理 | Bun(ワークスペース) |
apps/
frontend/ Next.js Worker。画面・Route Handler・認証
backend/ Hono Worker。D1/KV/Workers AIへのアクセス
reading/ 読み Worker。読み仮名の解析(外部非公開)
packages/
shared/ 型定義、ローマ字入力エンジン、正規化関数、JST日付関数
reading-wasm/ Vibrato の Wasm ラッパー(読み Worker 専用)
docs/ 実装ドキュメント
生成は1プレイ15問(単語は30問)を揃えることを目標に、リトライは最大2ラウンド。1ラウンドの依頼数は読み Worker のバッチ上限(30件)に揃えている。
bun install # 依存インストール
bun run dev # 3 Workerをローカル起動(wrangler dev)。辞書が無ければ先に取得する
bun test # 純粋関数のテスト
bun run test:workers # D1/KV依存のテスト(vitest-pool-workers)
bun run lint # oxlint
bun run format # oxfmt
bun run typecheck # tsc --noEmit
bun run db:generate # Drizzleでマイグレーション生成
bun run db:migrate:local # ローカルD1に適用
シークレットは .dev.vars で管理する。テンプレートは各Workerの .dev.vars.example(リポジトリにはコミットしない)。ローカルのD1はリポジトリ直下の .wrangler/state で両Workerが共有する。