A few weeks ago I described, how you can test your DMN Tables in no time. See Testing (Camunda)-DMN Tables automatically.

So the next thing we would like to have is that we can easily find out if the DMN-Tables were changed by the Business — and if this could have introduced a bug.

This blog explains, how you can achieve this with the DMN Tester.

Test Case Creation

In the last post I showed, how you can create your tests. This added the expected Results to the DMN Table Configuration.

Here is an example:


Working with DMN Tables is quite easy. It is like working with an Excel Spread Sheet. The idea is that the business people define the Business Rules with these tables.

Wildspitz Switzerland

So why should you bother testing them?

  1. It would blow up during Runtime. Who likes that?
  2. Depending on the Hit Policy the Result is different.
  3. How can you be sure you covered all possible cases?
  4. You have a second gate when making small adjustments.
  5. You have Regression Tests in place in case of updates.
  6. You get a nice documentation of the possible inputs and its outputs.

To convince business people…


Motivation

I just wanted to know what React is all about. So I did the really good Intro Tutorial from React. The main reason to try React, was that there are at least two libraries, that allows you to write React Apps in Scala:

So what are the differences to using React with Javascript. Is it worth to add another abstraction?

Idea

Just follow the Tutorial and translate it to Slinky / Scala. And write the findings in a blog post.

You find the source for slinky-react-turorial on Github. I made a commit for each chapter of the Tutorial.

You…


Use Case

Working on a Project, there are always tasks you need to do frequently. Examples are:

  • starting Docker Images
  • deploying changes

I used to create some `bash` files, but that is not fun, neither to create them nor to use them.

So why not just write a CLI to do all these tasks? That’s what I did for my Hobby Project Camundala. This blog tells the story.

Spoiler: The story has got a happy ending😏.

The usual cute Cat replacement — for once it matches the library’s logo 😏

Requirements

I am sure by now, everyone has heard from ZIO, so I assume you know the basics. And everything is done in Scala.

What you should learn

  • What is Decline


Three months ago I wrote this Blog:

Meanwhile ZIO took really of and one of my concerns got a major update with RC18:

I still struggle with ZIO, for example providing the runtime/ environment…

So I updated all my ZIO projects with ZLayers!

In this Blog I will focus on my experiences I made when migrating to the new Modules and Layers of ZIO.

Spoiler: The migration was straight forward!

I structured this Blog in three parts:

  1. Listing the Module parts as they were in my project.
  2. Showing them after migrating to ZLayer.
  3. List my personal improvements of ZLayer.

1. Old Style

As I don’t have a cat — a Bike photo 😏

So…


In my last Blog I tried to decouple the Program from its Implementation — see here.

This is the second follow up to the question: How to provide general Tests to test any Implementation.
See here for the first follow up:
How to dynamically inject …

A basic understanding of ZIO and ZIO Test is expected. See for example Get started with ZIO Test by Wiem Zine

Rigi Switzerland

Scenario

Remember our Scenario:


In my last Blog I tried to decouple the Program from its Implementation — see here.

This is a follow up to the question: How to wire the implementation dynamically on application start (defined in a configuration file).

Photo by Rahul Bhogal on Unsplash

Configuration

Here we take PureConfig that we already used in the last blog.

The configuration is described in a Case Class:

case class MyConfig(compsImpl: String)

The accordingapplication.conf looks then:

comps-impl = "pme123.zio.comps.yaml.YamlComps"

Because it can throw an Exception, we provide a function that wraps the creation of MyConfig in a ZIO.effect. As we us the default (application.conf), ConfigSource.default is all we need.

def…


Requirements: A basic understanding of ZIO or another ‘Side-Effect Library’.

On the way you will get in contact with mill, yaml, circe-yaml, HOCON and PureConfig - but no worries you do not need to know them.

I am just a user / learner of ZIO and Functional Programming in general.

https://unsplash.com/photos/feeredToXK4

When I first learnt about ZIO / Effect Systems, I read somewhere that with this approach it is possible to separate the Program from its Implementations. Or in other words separate the Domain Logic from the Infrastructure.

Recently I wanted to compare two technologies to: * read some Configuration Files…


Requirements: A basic understanding of ZIO and Cats.

This is my first blog on Medium, so have mercy;).
I am just a user / learner of ZIO.
If you are only interested in the ZIO-part you can jump to the chapter Long Polling with ZIO

Ok let us start. After checking out some Blogs (see https://github.com/pme123/zio-examples), I wanted to tackle a problem I had at work with ZIO.

Scenario

Pascal Mengelt

Working for finnova.com in the Banking business. Prefer to work with Scala / ScalaJS.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store