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.
All of these are available on haxelib for a quick install.
The list is sorted in order of "importance", where importance is my estimation of how much the library will impact your thinking, programming style, and other long term benefits.
|haxedci||All||Taking programming into the next era with the DCI architecture. If you take your 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.|
|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.|
|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 the foundation of your system, simple data objects, using a minimal Haxe syntax. Here's a crude DataClass generator|
|immutable||All||Enforce your objects to be immutable, both class fields and local vars. Local vars vill behave similar to
|slambda||All||Do you crave Short Lambdas? Understandable, every other language have them. Here's a tiny library that adds those convenient
|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.|
|empty-haxe-project||Neko, Node.js, Browser||A convenient starting point for a new project, or if you just want to play around and get started quickly. Clone the branch of your choice from the repo, then follow the
|viagrant||All and more||If you're using Vagrant, this will get a box with all your Haxe needs up and running in a few minutes. It also supports LAMP, a very convenient CMS, concrete5, and some other goodies.|
Synergy between the libraries
Here's how I picture a system using the above libraries:
- Clone empty-haxe-project to a directory and follow the
README.mdinstructions to rename the project
- If you want, use viagrant to create the configuration for a Vagrant virtual machine in the same directory, starting it with
Designing the system
- Create the data objects with dataclass and validate their integrity with HaxeContracts when needed. Remember to make them immutable when possible.
- Use buddy to draw up the guidelines for the system behavior using pending tests
- 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.
- Use slambda for functional programming and asynchronous calls with short and convenient lambda expressions.
- Let users interact with your system in an impressive browser app built with mithril-hx
- For data storage where speed isn't a big concern, use the convenient JSON storage of haxelow.
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!