46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
# crud-lang
|
|
|
|
_This is now in first-draft phase. Meaning, I just had the idea and I am jotting down very preliminary design decisions._
|
|
|
|
- an experimental language for CRUD applications (backend only though)
|
|
- Enterprise as a first-class citizen
|
|
- urls are made up directories and filenames
|
|
- a controller sourcefile is a file with the .ctl extension
|
|
- likewise
|
|
- .svc services
|
|
- .cl service clients (that call other services)
|
|
- .dao database access code (not objects)
|
|
- .qc queueconsumers
|
|
- .qp queueproducers
|
|
- .utl utilities
|
|
- there is a strict calling hierarchy. A service can not call a controller. It can only go 'down'.
|
|
- Services can not call other services, because that is the recipe for spaghetti. Refactor your logic, abstract and put lower level code in utilities.
|
|
- Utilities are allowed to call other utilities. OMG, spaghetti after all! TBD
|
|
|
|
- It is an interpreter written in rust. OMG!
|
|
- And it has everything I like in other languages
|
|
- strictly typed
|
|
- [] is a list
|
|
- {} is a map
|
|
- no objects, no inheritance
|
|
- structs and duck typing
|
|
- everything is an expression
|
|
- nice iterators.
|
|
- First class functions? Maybe...
|
|
|
|
**types**
|
|
|
|
- u32, i32
|
|
- u64, i64
|
|
- f32, f64,
|
|
- string, bool, char
|
|
- struct enum
|
|
|
|
**question**
|
|
|
|
- how to model headers
|
|
- middleware, implement later
|
|
|
|
**the example: **
|
|
|
|
- a very simple api that listens to GET /api/customers{:id} and returns a customer from the database
|