mushin

Mushin is a Domain-specific Frameworks Generator written in Ruby.

Mushin-based frameworks complements Ruby applications with seamless, yet powerful support of Domain-specific Languages, CQRS, EventSourcing, and Pluggable Domain Extenstions.

Distributed under the MIT License


Quick Start

$ gem install mushin

installs the mushin gem on your system.

 $ mushin g dsf

starts an interactive domain-specific framework generation wizard.

 $ mushin g ext 

starts an interactive domain-specific extenstion generation wizard.

 $ mushin help 

lists mushin documentation resources.



Philosophy

"In the beginner's mind there are many possibilities, in the expert's there are a few." - Zen Proverb

A domain is an area of knowledge such as an industry field or a subject of interest.

Enabling Domain Experts the means to contribute to software artifacts of their areas of expertise, drives well-matured domains.

Enabling Software Engineers the means to utilize well-matured domains into their applications drives well-developed applications.

Mushin enables the generation of Domain-specific Frameworks(DSFs), thus that Domain Experts may colloberativly encapsulate their domain expertise into a continously refined software artifact, a DSF. DSFs are utilized in Ruby applications.

Mushin-based DSFs complements Ruby applications with seamless, yet powerful support of Domain-specific Languages, CQRS, EventSourcing, and Pluggable Domain Extenstions.



Showcases

GameOn: Video Showcase for developing a Gamification DSF and Mushin Extenstions (TBA).

BiT: Video Showcase for developing a Torrents scraping DSF and Mushin Extenstions (TBA). sourcecode


Open Source

read the source, fork it, or submit a feature request\report a bug to improve it, all contributions are welcomed!



License

MIT license


IRC

general questions at #ruby on irc.freenode.net

Credits

@richhickey - Simplicity Matters - RailsConf Keynote Austin, Texas 2012

@uncle bob - Keynote: Architecture the Lost Years

@mitchellh - Rack Middleware as a General Purpose Abstraction - MountainWest RubyConf 2012

@dwhelan & @ericroberts- Domain Driven Design and Hexagonal Architecture with Rails - RailsConf Chicago 2014

@emadb - Ruby loves DDD - RuPy Budapest, Hungary 2013