forming icon indicating copy to clipboard operation
forming copied to clipboard

Forming, is a lightweight architecture as code language. 轻量级架构即代码语言

Forming

Forming, is a lightweight architecture as code language. 轻量级架构即代码语言

Architecture 3.0 based frameworks.

Usage

// todo

Samples

  1. concept declare with struct & behavior
concept Blog(Displayable, Ownable) {
    struct {
        title, slug, description, gen_description, content, featured_image: String;
        id, user_id, site_id: Integer;
        created, updated: datetime;
    }
    behavior {
        get_absolute_url(): String;
        validate_unique();
        publish_date_since(): datetime;
        published(): Integer;
        save(blog: Blog);
        delete(id: Integer);
    }
}
  1. api declare
api for BlogPost {
    in { title: String, description: String }
    out { blog: Blog }
    pre_cond {
       '字符串不为空': not empty
    }
    pre_cond {
       '博客不为空': 'not empty'
    }
} 
  1. concept space
space Blog {
   package: 'com.phodal.blog', // or path
   type: 'Entity',
   items: { Blog, BlogCategory, BlogCategories, BlogRelatedPosts, Comments }
}
  1. from CSV, uml and swagger (todo)
concepts => file(\"concepts.csv\")

concept  Blog {
    behavior { }
    struct uml::dir('').class('Blog')
}

Todo

  • [ ] 架构描述
  • ~~[ ] 架构布局~~
    • [ ] ~~Diagrams as code~~
    • [ ] ~~Ascii Doctor~~
  • [ ] 模型声明
    • [x] DDD Styles
  • [ ] 模型代码生成
  • [ ] ~~Highlighted Core Documents~~
    • [ ] ~~auto documentation~~

TBD:

  • [ ] workflow design
    • [ ] collaboration style
    • [ ] physics design
    • [ ] associate patterns
    • [ ] design patterns in code
  • [ ] core driven style
    • [ ] domain driven
    • [ ] use-cases driven
    • [ ] collaboration driven
  • [ ] forming visualization
    • [ ] web page
    • [ ] common architecture patterns in svg
  • [ ] Integration (in ext model)
    • [ ] UML parser for modeling
    • [ ] Swagger to API in/out
    • [ ] ~~Cucumber parser~~
  • [ ] codegen
    • [ ] java code gen
    • [ ] code gen protocol

Documents

Refs

  • Diagrams as code, GitHub: Diagrams
  • Asciidoctor
  • Rust libhoare is a simple Rust support for design by contract-style assertions.
  • genco is a whitespace-aware quasiquoter for beautiful code generation.
  • Iaakov Exman "Software Conceptual Integrity: Deconstruction, Then Reconstruction"

License

@ 2021 This code is distributed under the MIT license. See LICENSE in this directory.