Visual programming and executable models

Farzad Yousefzadeh

Farzad Yousefzadeh

Lead Engineer @Stately

Feature programming

Feature programming

Feature programming improved v1

Other improvements

Enter Diagrams

Benefits of diagrams

πŸ‘‰πŸ» See entire system

πŸ‘‰πŸ» Edge cases

πŸ‘‰πŸ» Zooming

πŸ‘‰πŸ» Plan and estimate

πŸ‘‰πŸ» Integrations

πŸ‘‰πŸ» See layers

Diagram types

πŸ‘‰πŸ» Hierarchy (spawning)

πŸ‘‰πŸ» Sequences

πŸ‘‰πŸ» Multi actor (event drive)

purchase only items exist in cart

a part of logic that needs to be checked only if a parent condition is met

Continuous integration

Multi step consent form

separate modules or functions

cloud functions, web workers, k8s pods

Actors

Diagrams show you how the software you're building is a collection of actors structured in a certain way

If diagrams are so good, why not just diagram the software instead of programming it?

Stately.ai

Your entire software can be a collection of graphs

Stately.ai

Finite state machines

Statecharts

state ==> state

(state+ event) ==> next state + side effects

How is Stately different

πŸ‘‰πŸ» Diagrams are the source of truth

πŸ‘‰πŸ» Diagram ➑ model ➑ execute

πŸ‘‰πŸ» Export to more than just code

πŸ‘‰πŸ» Import from more than just code

πŸ‘‰πŸ» Multi-purpose

πŸ‘‰πŸ» Across the stack

Diagrams to the next level

πŸ‘‰πŸ» Generate event sequences

πŸ‘‰πŸ» Collaborative

πŸ‘‰πŸ» Smart reshaping by analytics

Recap

πŸ‘‰πŸ» Diagrams improve modeling

πŸ‘‰πŸ» Diagrams are low code and abstract

πŸ‘‰πŸ» Diagrams can be the single sourceΒ  Β  Β  Β  Β of truth

πŸ‘‰πŸ» Diagrams are not enough

πŸ‘‰πŸ» Start diagramming for new features

πŸ‘‰πŸ» Start diagramming when refactoring

Kiitos.

Visual programming and executable models

By Farzad Yousefzadeh

Visual programming and executable models

Let's look at the traditional way of making software, the importance of diagramming and ideas to take diagrams to the next level where they can be used as the single source of truth for the software behavior generating rest of the software such as tests, documentation and the runtime.

  • 621