首页/AI 软件架构工程/tinystruct-patterns
T

tinystruct-patterns

by @affaan-mv
4.3(120)

此技能提供 tinystruct Java 框架的开发模式和最佳实践,涵盖路由、上下文管理、JSON 处理、CLI/HTTP 双模式等。它帮助开发者高效构建可维护的应用模块和微服务,确保代码结构清晰、符合规范,并避免常见反模式,从而提升开发效率和系统稳定性。

javaframeworkdesign-patternsmicroservicesbackend-developmentGitHub
安装方式
npx skills add https://github.com/affaan-m/everything-claude-code --skill tinystruct-patterns
compare_arrows

Before / After 效果对比

1 组
使用前

在没有此技能之前,开发者在 tinystruct 应用中处理 JSON 数据时,常需手动引入并配置第三方库(如 Gson 或 Jackson),这不仅增加了项目依赖,还可能导致集成复杂性,耗费大量时间在库的选型、配置和调试上,影响开发效率和代码一致性。

使用后

采用该 Skill 推荐的 tinystruct 原生 Builder 组件处理 JSON 数据后,开发者无需引入额外依赖,即可实现高效、统一的数据序列化和反序列化。此技能显著简化了 JSON 处理流程,减少了配置和调试时间,确保了代码的简洁性和框架内的一致性,从而大幅提升了开发效率。

SKILL.md

tinystruct 開発パターン

tinystruct Java フレームワークを使用してモジュールをビルドするためのアーキテクチャと実装パターン。CLIとHTTPが等しく扱われる軽量なシステムです。

使用するタイミング

  • AbstractApplication を拡張して新しい Application モジュールを作成するとき。
  • @Action を使用してルートとコマンドラインアクションを定義するとき。
  • Context を通じてリクエストごとの状態を処理するとき。
  • ネイティブの Builder コンポーネントを使用してJSONシリアライゼーションを行うとき。
  • application.properties でデータベース接続またはシステム設定を構成するとき。
  • ApplicationManager.init() を通じて標準的な bin/dispatcher エントリポイントを生成または再生成するとき。
  • ルーティング競合(Action)またはCLI引数解析のデバッグを行うとき。

動作の仕組み

tinystruct フレームワークは、@Action でアノテーションされたメソッドをターミナルとWeb環境の両方でルーティング可能なエンドポイントとして扱います。アプリケーションは AbstractApplication を拡張することで作成され、init() などのコアライフサイクルフックとリクエスト Context へのアクセスが提供されます。

ルーティングは ActionRegistry によって処理され、パスセグメントをメソッド引数に自動的にマッピングして依存関係を注入します。データのみのサービスでは、ゼロ依存のフットプリントを維持するために、JSONシリアライゼーションにネイティブの Builder コンポーネントを使用すべきです。フレームワークには ApplicationManager のユーティリティも含まれており、bin/dispatcher スクリプトを生成することでプロジェクトの実行環境をブートストラップします。

例

基本アプリケーション(MyService)

public class MyService extends AbstractApplication {
    @Override
    public void init() {
        this.setTemplateRequired(false); // データ/APIアプリの .view 参照を無効化
    }

    @Override public String version() { return "1.0.0"; }

    @Action("greet")
    public String greet() {
        return "Hello from tinystruct!";
    }
}

パラメータ付きルーティング(getUser)

// Web: /api/user/123 または CLI: "bin/dispatcher api/user/123" を処理
@Action("api/user/(\\d+)")
public String getUser(int userId) {
    return "User ID: " + userId;
}

HTTPモード分岐(login)

@Action(value = "login", mode = Mode.HTTP_POST)
public boolean doLogin() {
    // ログイン処理
    return true;
}

ネイティブJSONデータ処理(getData)

@Action("api/data")
public Builder getData() throws ApplicationException {
    Builder builder = new Builder();
    builder.put("status", "success");
    Builder nested = new Builder();
    nested.put("id", 1);
    nested.put("name", "James");
    builder.put("data", nested);
    return builder;
}

設定

設定は src/main/resources/application.properties で管理されます。

テストパターン

JUnit 5 を使用して、アクションが ActionRegistry に登録されていることを検証することでアクションをテストします。

レッドフラグとアンチパターン

症状正しいパターン
com.google.gson または com.fasterxml.jackson のインポートorg.tinystruct.data.component.Builder を使用する。
.view ファイルの FileNotFoundExceptionAPIのみのアプリでは init() 内で setTemplateRequired(false) を呼び出す。
private メソッドへの @Action アノテーションアクションはフレームワークに登録されるために public である必要がある。
アプリ内での main(String[] args) のハードコーディングすべてのモジュールのエントリポイントとして bin/dispatcher を使用する。
手動での ActionRegistry 登録自動検出のために @Action アノテーションを優先する。

テクニカルリファレンス

詳細なガイドは references/ ディレクトリにあります:

用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价

统计数据

安装量2.3K
评分4.3 / 5.0
版本
更新日期2026年8月5日
对比案例1 组

用户评分

4.3(120)
5
37%
4
43%
3
13%
2
5%
1
2%

为此 Skill 评分

0.0

兼容平台

🤖claude-code

时间线

创建2026年6月13日
最后更新2026年8月5日
🎁 Agent 知识卡片
调研问卷