[erlang-questions] [ANN] iota - a tool for enforcing clean separation of responsibilities

João Neves <>
Fri Sep 27 21:05:17 CEST 2013


I haven't given too much thought into it, but I did try to write iota in a
way that it could be plugged in to as much as possible, so it's definitely
not out of my mind.

I might look into it soon. Thanks for your feedback and I hope it's useful!

--
João Neves


2013/9/27 Tuncer Ayaz <>

> On Thu, Sep 19, 2013 at 7:56 PM, Joao Neves wrote:
> > Did you ever wish you could tell someone "just because I'm exporting
> > this it doesn't mean you should be using it" through your code?
> >
> > iota is a tool (and a library) that uses Erlang attributes to allow
> > you to specify application-level APIs implicitly by declaring what
> > exported functions in each module compose the overall API external
> > applications should use to interact with yours, with more checks
> > coming soon(TM).
> >
> > iota was mostly inspired by the Kappa tool used internally at Klarna
> > and mentioned by Cons T Åhs in his latest talk at the EUC in
> > Stockholm. Kappa is used to make some sense of the free-for-all
> > Erlang allows by having only a broad concept of exported and
> > non-exported functions and performs a number of tasks and techniques
> > that are in part an artifact of the development environment of
> > Klarna and are probably not appropriate for most other people.
> >
> > With iota, you have a more generic tool that allows you to keep some
> > sanity regarding the interactions between OTP applications while
> > allowing you to export the functions you need inside your own
> > application more freely. By using Erlang attributes we make these
> > checks entirely up to you, so if you feel you must ignore them or
> > don't want to use iota, no one is going to stop you!
> >
> > iota is hopefully also ready to be turned into rebar or EDTS plugins
> > for a more streamlined integration into your workflows, like as a
> > post-compilation hook.
> >
> > But enough with the chit-chat! You can get it (and more details on
> > how to use it) here: https://github.com/jpgneves/iota
> >
> > If you find it useful (or not), let me know! Any comments, questions
> > and pull requests are welcome!
> >
> > Many thanks to Samuel Rivas, Håkan Nilsson and Thomas Järvstrand for
> > providing feedback and useful libraries to build this with, and to
> > Klarna Engineering in general for providing the necessary
> > inspiration and ideas for this initial release.
>
> Thanks for sharing, this looks useful.
>
> Have you considered adding support to erlc or Dialyzer similar to
> -callback?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130927/9dc55bc3/attachment.html>


More information about the erlang-questions mailing list