Hi, my name is Andreas, figuring on Github under the alias @ciscoheat. My language of choice is Haxe, and with its power and elegance I'm trying to create useful libraries in the spirit of simplicity and synergy.
Haxe libraries
All of these are available on haxelib for a quick install.
The list is sorted in order of "importance", meaning my estimation of how much the library will impact your thinking, programming style, and other long term benefits.
Name | Targets | Description |
---|---|---|
haxedci | All | Take programming into the next era with the DCI architecture. If you dedicate some time to study and understand this paradigm created by the author of MVC, you will become a better programmer, guaranteed. |
HaxeContracts | All | Contracts is a way out of the wasteful unit testing that the current programming paradigm force most programmers into. Using Contracts you will move tests into program code, and greatly improve the integrity of your objects. |
deepstate | All | An immutable state container for Haxe 4, similar to Redux. |
dataclass | All | Data is the very foundation of a system, representing what the system is, compared to functionality that represents what the system does. DataClass helps you define your domain objects, DTO's, etc, using a minimal Haxe syntax. |
buddy | All | The interesting things in a system usually happens between objects, and this is where most code-based testing should be. Buddy is a BDD library for helping you move the testing mentality upwards, from method-level to interactions between objects. |
mithril-hx | Js/All | Mithril is a small, yet great javascript MVC framework that is faster and more flexible than most others. Here are Haxe externs for this library, which lets you solve complex problems with simple tools. The rendering part of Mithril has been ported to Haxe, so you can render Mithril templates on all targets. The framework itself is js only. |
uniontypes | All | Union types in Haxe, similar to Typescript. Gives type-safe control and safety when a library can return one thing or another. |
asynctools | All | A partial port of the Async.js library, with macros for simplifying asynchronous programming. |
haxelow | Browser, Node.js, Others | A small, flat JSON database library, if you need to store Haxe objects strongly-typed in JSON. |
Synergy between the libraries
Here's how I picture a system using the above libraries:
Designing the system
- Create the data objects with dataclass and validate their integrity with HaxeContracts when needed.
- Keep the program state of the above objects immutable with deepstate.
- Use buddy to draw up the guidelines for the system behavior.
- Let the data objects interact in Contexts with the help of haxedci, fleshing out the pending buddy tests with testing of the Contexts. HaxeContracts will be of use too in the Contexts.
- Let users interact with your system in an impressive browser app built with Mithril.
Contact info
If you want to give feedback for a specific library, I appreciate if you open a Github issue for it. If you want to get in touch about anything else, my email is ciscoheat AT gmail
, and I also twitter quite infrequently under the name thedciguy. Hope to hear from you!
/Andreas