maker

Clojure library to explore inversion of control technique - in several senses.


License
EPL-1.0

Documentation

maker

The basic idea

It is always better to separate the 'what' from the 'how', it is better to put dependency as a value rather than as the result of another function call.

This is an experiment to see what happens if we structure our system as goals (values/things/nouns) and dependencies between them.

What is the problem again?

Watch this. A bit different domain and a different solution but he is speaking about the same issue in the next 3 minutes.

maker is

  • still in alpha!
    • pls help to improve and give feedback
  • influenced by dependency injection frameworks, goal oriented programming, declarative programming, build tools, data flow programming, value-level programming, transducers

Features

  • dependency tracking by looking for functions based on the names of the parameters
  • asynchronous goals, parallel execution,
  • spec for goals,
  • works across namespaces

Usage, learn

[maker "2.1.0"]

To learn check out and play with the didactic tests.

See how to add spec to your goals: spec_test.clj

License

Copyright © 2015-2017 Tamás Jung

Distributed under the MIT License.