Code Monkey home page Code Monkey logo

thepracticaldeveloper / practical-architecture Goto Github PK

View Code? Open in Web Editor NEW
98.0 12.0 23.0 6.71 MB

A set of resources to become a Practical Software Architect: decision making, efficient meetings, architecture guide, etc.

License: GNU Lesser General Public License v3.0

Shell 20.39% HTML 7.12% CSS 72.49%
architecture-doc architecture-decision architecture-guide architecture-process documenting-architectural-decisions software-design-process software-design-documentation practical-architecture pragmatic-architecture

practical-architecture's Introduction

The Practical Architecture Process - Resources

Build Status

Intro

This repository contains a set of Software Architecture document templates and examples in Markdown format. It also includes scripts to generate a basic website in HTML (check result here). You can use it as a baseline to build all your Software Architecture docs.

These artifacts are described in the book The Practical Architecture Process, which main focus is not the Architecture Guide itself, but the process you follow to obtain these artifacts and a proper Software Architecture. Get the book on LeanPub.

Contents

There are six folders in which you can find multiple markdown files. Each file has some summarized information about what you should include there.

  1. Guide. An evolving set of documents explaining your Software Architecture and related topics like common patterns and operations.
  2. Roadmap. The 'Make it happen' section. Includes the planning over time.
  3. Designs. Each team should populate this section with new feature designs.
  4. Decisions. Keep your Architecture Decision Records here. Includes the template and an example.
  5. Journal. Holds meeting notes, whiteboard pictures, etc.
  6. Modules or Teams. Contains documents and designs that have a local impact.

The Process

The main idea of the book is that you produce these artifacts based on a collaborative, lightweight, efficient process.

You shouldn't hide in a corner and write all this by yourself.

Exporting to HTML

This repository also contains a script to generate a single HTML version of the Guide: generate-guide.sh. You can use this script manually or include it as part of an automated process. A good practice is to use it from a pipeline to publish a new version of this guide every time you merge a work-in-progress documentation branch into master.

The scripts requires Pandoc to generate the Guide in HTML.

Your guide will be exported to the output folder after running the script, in two different formats:

  • All in one page: that's the index.html file. You can copy this file, pandoc.css and the images folder and you have your documentation website ready to be published.
  • One section per page: those are the 1_guide.html file and others. You can use this approach if your sections get too big. The script also generates a file index_multipage.html for your convenience.

Deploying the Documentation

Once you generate the HTML version of the Software Architecture documentation, you can deploy it somewhere so people in your organization can access it.

As an example, I've included in this base set of files a .travis.yml file that uses Travis integration with GitHub to deploy the resulting documents to a publicly-available S3 Bucket. Actually, you can have a look at the latest result right now: archguide.s3-website-us-east-1.amazonaws.com.

Rendering Diagrams

If you work with PlantUML and keep your .puml files in this repo, you can use a command to automatically render all your files to PNG images: render-puml-images.sh. Then you can include the images in your markdown documents.

You can either run this script manually or setup a pipeline that triggers it automatically when generating the output documents.

The script used in this repository requires Java to convert .puml files to PNG images.

Feedback

Please send me any feedback or question you may have by opening an Issue in this repository.

practical-architecture's People

Contributors

mechero avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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.