Introduction In the previous blog post, I discussed the difference between workflows and attempts. In summary, a workflow accepts a command as input, and as a result, emits a list of domain events. Thus, an attempt also accepts a command as input, but instead, returns a status. Furthermore, the status of an attempt requires the …
Wiring a ViewModel to a DDD-Workflow
Intro I recently connected a viewmodel to a workflow that I was inspired to write as a result of reading the book: Domain Driven Design Made Functional. All of my source code can be found on GitHub/Nikeza. ViewModel In the viewmodel, I handle validating and submitting a form. The interesting part of this exercise is …
F#: Enforcing Domain Design through Types
Elm: Implementing a User Control
Intro This post attempts to document my journey of building a user-control in Elm. The user-control that I'm building is a login control. Building the Login Control The following is the code for the Login control: Note that we have the following messages within the code above: The messages (i.e. union cases) above that have …
F#: Creating only valid values
In this video, I go through a kata in which I write code to enforce the creation of valid data only:
Discussing F# and Teaching
In this video, I talk to Ody about F# and teaching:
F#: Akka.Net (Cluster.Sharding)
Intro This post is intended to document my current understanding of the Cluster.Sharding feature within Akka.Net. This feature is in pre-release as of 3/17/2017. I identified from this documentation that a cluster represents a fault-tolerant, elastic, decentralized, peer-to-peer network of programs. The Akka.Net framework provides a library that supports creating and managing a cluster. Akka.Cluster.Sharding Akkling.Cluster.Sharding …
F#: Computation Expressions (Bank Account Kata)
I have been avoiding the concept of Monads in my journey to learn F#. However, I know that sooner or later, I'm just going to have to man-up. As a result, I have been trying to qualify the need to leverage F#'s Computation Expression. My current conclusion is that a Computation Expression within F# can …
Continue reading "F#: Computation Expressions (Bank Account Kata)"
F#: Bank Account Kata
I wrote some F# code for handling bank account transactions. I wrote the program by using a function driven approach instead of a type driven approach. The main handlers are the following: The supporting functions that back the handlers are as follows: Here are the types: The entire program is below:
Talking to Gabriel about Soft Skills, Unit Testing, and Design Patterns
In this video, I talk to Gabriel about what's required of him to succeed in today's software industry: