Feakin - 软件开发工业化方法

Feakin 是一个软件开发工业化(软件架构设计与开发标准化)方法,基于 DDD (领域驱动设计)与 TypeFlow 编程思想。

Design Principles

核心设计理念:

  1. 架构孪生:双态绑定。提供架构设计态与实现态的双向绑定,保证架构设计与实现的一致性。
  2. 显性化设计意图。将软件设计的意图化,借助于 DSL 语言的特性,将意图转换化代码。
  3. 类型与事件驱动。通过事件驱动的方式,将数据类型与领域事件进行绑定。

详细见:《Design Principles 一节》

Feakin 主要组成部分:

  • Fklang 是一个基于软件开发工业化思想,设计的架构设计 DSL。以确保软件系统描述与实现的一致性。通过显式化的软件架构设计,用于支持 AI 代码生成系统的嵌入。
  • Intellij Plugin 是 Feakin 的一个 IntelliJ 插件,用于将 Feakin/Fklang 集成到项目中。
  • (Todo) Vscode Plugin 是 Feakin 的一个 Vscode 插件,用于将 Feakin/Fklang 集成到项目中。
  • Feakin Web 提供了一个架构设计与可视化协作工具,让架构师能够更加高效地进行架构设计与可视化协作。

Feakin IntelliJ Plugin

安装:Version

Feakin Impl Sample

Fklang 示例:

// DDD 上下文映射图 ContextMap TicketBooking { Reservation -> Cinema; Reservation -> Movie; Reservation -> User; } Context Reservation { Aggregate Reservation; } Context Cinema { Aggregate Cinema; } Aggregate Cinema { Entity Cinema, ScreeningRoom, Seat; } // DDD 领域事件 impl CinemaCreated { endpoint { // API 声明与验证 GET "/book/{id}"; authorization: Basic admin admin; response: Cinema; } }

Feakin Web

在线地址:https://online.feakin.com/

点击 TEAMPLATES -> Feakin Sample 查看示例

Feakin Web

Fklang

下载地址:https://github.com/feakin/fklang/releases

Usage: fkl <COMMAND> Commands: gen Generate code from a fkl file, current support Java dot Generate dot file from a fkl file parse Parse a fkl file and print the AST help Print this message or the help of the given subcommand(s) Options: -h, --help Print help information

CLI 示例:

fkl gen --main /Users/phodal/IdeaProjects/untitled/simple.fkl --impl CinemaCreated
@GetMapping("/book/{id}") public Cinema creatCinema() { }