Giter Club home page Giter Club logo

arc's Introduction

arc

Software architecture made simple

arc is a simple utility to author, visualize, inspect and update software architecture design easily through simple YAML files.

It is the utility to adopt the C4model architecture design approach that is promoted by Simon Brown. Arc allow the practice of architecture as code, allow easy integration to CiCd workflows such that archictecture information is accumulated and kept up to date as the system complexity grows, easily and free of any additional manual effort.

The objective is to design and deliver software product with clear architecture and clean working code, with the least amount of effort and duplicating cognitive workload.

The workflow using arc utilities is:

  • Start note down architecture model of your app on a yaml file named arc.yaml.
  • Use arcli to inspect and arcviz service to visualize the architecture in different views such as Landscape, Context, Containers or Component.
  • Share the visualization through a centrally hosted arcviz server if your team fancy.

Install

  • Install and run arcviz on your machine. You need Docker as it is the only option now.
    docker run -d -p 10000:10000 -p 8080:8080 koderizer/arcviz:latest
  • Install arcli utility, via Homebrew on Mac as it is the only convenient option now:
brew tap koderizer/arc

brew install arcli

Build from source or download from release package and put to your bin path is another option

Usage

arcli help

Example

One simple application

app: arcs
desc: "Arc is a simple utility to author, view, inspect and update software architecture design"
users:
  - name: dev
    role: "one who create software service"

internal-systems:
  - name: arc
    desc: "Enable deloper to author, inspect and version control software systems design and code."
  
    containers:
    - name: cli
      runtime: arcli-binary
      technology: golang
      desc: "local utility to parse and build arc data to and from visualizations"
  
    - name: viz
      runtime: docker-jetty
      technology: "gRPC golang, plantuml"
      desc: "render visualization of archtecture design given a arc data blob specifications"
      components:
      - name: arcviz
        desc: grpc server to structure the layout into markup for renderer
      - name: plantuml-renderer
        desc: vizualize server using plantuml

external-systems:
  - name: dev-ide
    desc: software developement editor and integrated environment

relations:
  - { s: dev, p: design and develop software, o: arc}
  - { s: arc.arcli, p: send render request (gRPC), o: arc.arcviz}
  - { s: dev-ide, p: integrate, o: arc.arcli}

to visualize this, simply run from the same directory this file is in:

arcli inspect 

This project is underconstruction

Utilizing and base on works done from:

arc's People

Contributors

akelv avatar koderizer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.