forming
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
- 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);
}
}
- api declare
api for BlogPost {
in { title: String, description: String }
out { blog: Blog }
pre_cond {
'字符串不为空': not empty
}
pre_cond {
'博客不为空': 'not empty'
}
}
- concept space
space Blog {
package: 'com.phodal.blog', // or path
type: 'Entity',
items: { Blog, BlogCategory, BlogCategories, BlogRelatedPosts, Comments }
}
- 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.