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

SIcore Framework

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

SIcore は、AI によるコード生成SI 現場のプログラマー のために設計された軽量 Java フレームワークです。アノテーションなし・設定ファイルなし・Entity クラス不要。HTML から DB まで統一された Map 型設計で、シンプルかつ一貫したコードを実現します。

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 にも最適です。SIcore の設計はすべてこの原則から導かれています。

🔗

直結 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

SIer向けフレームワークを自作した動機

初心者向け設計が 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 管理