🚧 開発中 — 基本機能はお試しいただけます

SIcore Framework

AIネイティブな軽量 Java フレームワーク

SIcore は、GitHub Copilot などの AI コーディングツールでの開発に最適化された軽量 Java フレームワークです。アノテーションや複雑な設定を排除したシンプルな設計により、AI が高精度なコードを生成でき、プログラミングビギナーでも理解しやすいアーキテクチャを実現しています。

HTML から DB まで、すべてが Map で繋がる

SIcore は「JSON 限定」「Map 型設計」「直結 URL マッピング」の 3 つの原則によって、フロントエンドからバックエンド・DB まで一貫した設計を実現します。

Browser HTML & JavaScript onepg-base.css onepg-utils.js StorageUtil (スコープ付きストレージ) JSON POST / GET JSON Java (SIcore) URL → Class (直結マッピング) Io (Map) null安全・型安全・キー重複チェック AbstractWebService.doExecute(io) SqlBuilder SqlConst SQL IoRows Database Auth LDAP + JWT(透過的認証) DB物理名 = HTML name属性 = Java キー(項目名統一)

10 の設計原則

「シンプルで理解しやすいコード」こそが、プログラミング初心者にも AI にも最適です。外部依存を極力排除したバニラ設計により、AI も人間も理解しやすいコードを実現しています。

🔗

直結 URL マッピング

/services/mod/MyService → com.example.app.service.mod.MyService。ルーティング定義ファイルもアノテーションも不要。URL そのものがクラス名になります。

📡

JSON 限定通信

ブラウザ ⇔ サーバー間の通信を JSON に統一。form submit も session も使わず、フロントとバックの境界が明確になります。

🗺️

Map 型設計 (Io クラス)

リクエスト・レスポンス・DB 操作をすべて Io クラス(Map)で扱います。Entity / DTO / Form クラスは不要。null 安全・型安全・キー重複チェック付き。

🖼️

モックアップ=実装コード

静的 HTML モックアップに name 属性を追加するだけで実装コードになります。JSP や Thymeleaf などのテンプレートエンジンは一切使いません。

📋

動的リスト表示

テーブル行のテンプレートを HTML で定義し、JSON 配列データを渡すだけで自動レンダリング。行の追加・削除・ページングもフレームワークが担当します。

🏷️

独自 HTML 属性

data-value-format-type・data-check-off-value など独自属性で、数値カンマ区切り・日付フォーマット・チェックボックス OFF 値などを自動処理します。

🎨

1 ファイル CSS 設計

約 400 行の CSS 1 ファイルで、12 分割グリッド・レスポンシブ・フォーム要素スタイルをすべてカバー。Bootstrap のような上書き作業は不要です。

🔑

項目名統一

DB 物理名 = HTML name 属性 = Java マップキーを統一。キャメルケース変換もマッピング処理も不要になり、AI がコードを生成するときも迷いません。

🔒

透過的 JWT 認証

LDAP 認証 → JWT 発行 → JS 変数でトークン保持 → 全リクエストへ自動付与。業務コードに認証処理が一切混入しません。XSS 耐性も確保。

🤖

AI ネイティブ開発

パターンが一貫しているため GitHub Copilot が高精度なコードを生成できます。AI 向けに最適化されたトークン効率の良いドキュメントも同梱しています。

Entity を捨て、Map で全部回す

テーブルが 50、画面が 30 ある業務システムを想像してください。SIcore では Entity × 50、Form / DTO × 30、変換コード、キャメルケース変換——これらがすべて不要です。

Io クラス(Map を継承)が null 安全・型安全・キー重複チェック・ディープコピーをすべて提供します。

  • getString / getBigDecimal / getDateNullable など型変換メソッド
  • put() はキー重複でエラー、putForce() で意図的な上書き
  • 存在しないキーへの get() はエラーでタイプミスを即検出
  • List / ネスト Map はディープコピーで格納・取得
従来 UserEntity UserForm UserDto Entity ⇔ DTO 変換コード user_id → userId 変換 クラス多数・変換コード多数 保守コスト → 高 SIcore Io (Map) リクエスト / レスポンス DB 操作 すべてこれ 1 つ io.getString("user_id") io.getBigDecimal("income_am") Entity / DTO / Form → 不要 クラス 0・変換コード 0 保守コスト → 低

DB → Java → HTML が同じ名前で繋がる

DB の物理列名・HTML の name 属性・Java のマップキーをすべて同じ名前に統一します。キャメルケース変換も、マッピング処理も、変換ミスも、これで完全に排除できます。

  • DB 設計書がそのまま仕様書・コード辞書になる
  • SELECT 結果をそのまま画面表示に利用できる
  • AI がキー名を含むコードを生成しやすい
DB (SQL) user_id user_nm income_am birth_dt = = Java (Io) getString("user_id") getString("user_nm") getBigDecimal("income_am") getDateNullable("birth_dt") = HTML name="user_id" name="user_nm" name="income_am" name="birth_dt" 従来: user_id → userId → UserForm.userId → UserEntity.userId 変換コード・マッピング・ミスの温床 SIcore: user_id → user_id → user_id → user_id 変換ゼロ・ミスゼロ

SqlBuilder と SqlConst で動的・静的を使い分け

XML ファイルへの SQL 分離・ID 文字列での紐づけ・<if> タグの学習コスト——これらを Java だけで解決します。

  • SqlBuilder: addQnotB で値がある項目だけ WHERE 句に追加
  • SqlConst: バッチ処理向け static final 固定 SQL
  • executeOneCache でプリペアドステートメントをキャッシュして高速化
  • バインド変数(?)でインジェクション対策済み
SqlBuilder — 動的検索
final SqlBuilder sb = new SqlBuilder(); sb.addQuery(" SELECT user_id, user_nm, email"); sb.addQuery(" FROM t_user WHERE 1=1 "); // 値がある時だけ条件追加 (addQnotB) sb.addQnotB(" AND user_id = ? ", io.getString("user_id")); sb.addQnotB(" AND user_nm LIKE '%'||?||'%' ", io.getString("user_nm")); sb.addQuery(" ORDER BY user_id "); IoRows rows = SqlUtil.selectBulk(getDbConn(), sb, 50); io.putList("list", rows.toListMap());

400 行・1 ファイルから始める CSS

Bootstrap(約 1 万行)や Tailwind(ビルド必須)の代わりに、業務アプリに必要な要素だけを small-first で積み上げます。ビルド環境不要、ファイルは 1 つだけ。

  • 12 分割グリッド + PC / タブレット / スマホの 3 段階レスポンシブ
  • フォーム要素・テーブルのスタイルを統一済み
  • :root CSS 変数でカラーを一括カスタマイズ
  • AI が全量を読んでから HTML を生成できるサイズ
onepg-base.css — 12分割グリッド × 3段階レスポンシブ PC col-3 | 氏名 [___] col-3 | 国 [___▼] col-6 | Email [___________] Tab 氏名 [___] 出身国 [__▼] Email [__________] off-screen SP 氏名 [__________] 出身国 [______▼] Email [__________] off-screen class="grid-row" / "grid-col-3" / "grid-col-6" — これだけで自動対応

既存フレームワークとの比較

SIcore は「大きく始めて使わないものを無視する」ではなく「小さく始めて必要な分だけ育てる」アプローチです。

観点 Spring Boot SIcore
アノテーション 多数(@Controller、@Service など) なし
ルーティング設定 アノテーションで個別定義 URL=クラス名(ゼロ設定)
Entity / DTO テーブル・画面ごとに必要 不要(Map で統一)
テンプレートエンジン Thymeleaf / JSP など 不要(静的 HTML + JS)
外部ライブラリ依存 多数(Maven 依存管理が必要) JDK 標準のみ
CSS ビルド 不要(1 ファイル CSS)
AI コード生成精度 パターンが多く精度にばらつき 一貫パターンで高精度
初心者の学習コスト 高(概念・設定が多い) 低(実行フローが追いやすい)

Qiita 連載記事

SIcore の設計思想と各機能の詳細を 10 本の記事で解説しています。

#01

Javaフレームワークを自作した動機

初心者向け設計が AI フレンドリーと一致する理由

#02

直結型 URL マッピング

ルーティング定義なしで URL がそのままクラス名になる仕組み

#03

JSON 限定通信

フロントとバックを JSON だけで繋ぐシンプルな設計

#04

モックアップ=実装コード

静的 HTML に name 属性を加えるだけで動く仕組み

#05

動的リスト表示

テーブル行テンプレートと JSON 配列で自動レンダリング

#06

独自 HTML 属性

data-value-format-type などで自動フォーマット・アンフォーマット

#07

Map 型設計

Entity / DTO 不要・null 安全・キー重複チェック付き Io クラス

#08

1 ファイル CSS 設計

400 行で業務アプリに必要な CSS をすべてカバー

#09

クライアント側データ管理と JWT 認証

スコープ付きストレージ・JS 変数セッション・透過的 JWT 認証

#10

Java 直書き SQL

SqlBuilder / SqlConst で XML 不要の動的・静的 SQL 管理

#11

バニラで作る理由

フレームワーク全体をバニラで作る理由とその利点

🖥️ サンプル画面の確認方法 - VS Code

⚠️ 以下の手順は、VS Code と Java 11 以上がインストールされている環境を前提としています。

1

プロジェクトのダウンロード

GitHubからプロジェクトをダウンロードします。

  1. GitHubリポジトリページで「Code」ボタンをクリックする。
  2. 「Download ZIP」を選択する。
  3. ダウンロードした ZIPファイルを任意のフォルダに解凍する。
2

VS Codeでプロジェクトを開く

  1. VS Code を起動する。
  2. 「ファイル」→「フォルダーを開く」で ZIPファイルを解凍したフォルダを選択する。
  3. VS Code の「作成者を信頼しますか?」ダイアログボックスが表示されたら「はい」を選択する。
3

サーバーの起動

  1. src/com/onepg/web/StandaloneServerStarter.java を選択する。
  2. F5 キーを押す、または右クリックメニューから「Debug Java」を選択する。
  3. コンソールに起動完了メッセージが表示されるまで待機する。
4

サンプル画面へアクセス

ブラウザで以下のURLにアクセスします。

http://localhost:8000/pages/
  • サンプル画面の一覧が表示されます。各画面のリンクをクリックして動作を確認できます。
  • サーバーを停止する場合は src/com/onepg/web/StandaloneServerStopper.java を実行する。
5

サンプルコード

  • HTML/JavaScript: pages/app/exmodule/
  • Java: src/com/example/app/service/exmodule/
  • DB定義/テストデータ: example_db/example_data_create.sql, example_db/data/example.dbf

🤖 AI開発の始め方

GitHub Copilot などのAIツールを使用した開発手順は下記のとおりです。

  1. 1 要件作成

    作成したい機能の要件を mdファイルに記述します。

  2. 2 AI指示

    mdファイルを指定して AI にコーディングを指示します。AI は .github/copilot-instructions.md に従い、必要なドキュメントを読み込んでから要件に沿ってコードを生成します。

  3. 3 動作確認

    生成されたコードの動作を確認し、不具合があればその内容をAIに伝えます。AIは原因を特定してコードを修正します。

🧪 すぐに試してみる

リポジトリに含まれるサンプル要件を使って、実際に AI によるコーディングを体験できます。
プロジェクトを VS Code で開き(未実施の場合は上記「サンプル画面の確認方法」を参照)、Copilot チャットに以下のプロンプトを入力してください。

ai-test-prompts/order-prompt.md の要件で画面機能を生成してください。

  • AI が要件定義書を読み込み、必要なHTML、JavaScript、Javaコードを自動生成します。
  • 生成後は AI指示ガイド(デバッグ・修正用) を参照してください。
  • ⚠️ 指示を厳密に遵守する AIモデルを使用してください。(2025/12現在は Claude Opus 4.5推奨です)
  • 🚫 創造性が高い AIモデルは、この作業には適していない可能性があります。