Clojure library to explore inversion of control technique - in several senses.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/maker
test
.gitignore
README.md
project.clj

README.md

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
  • works across namespaces,
  • asynchronous goals, parallel execution,
  • implicit dependencies,
  • spec for goals

Usage, learn

[maker "2.0.2-alpha"]

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.