With the release of the Hooks API into
React new opportunities arise to eliminate even more boilerplate. The one I want to talk about here is
If you don’t know it, you should check out the official page. To describe it shortly, it’s a component, like any other, which takes two props :
Promiseof a component to render, once it’s available.
The use case most people write about involves the
import(...) syntax. But that’s not what I’m after here. …
Type refinement is the process of specifying a type. In vanilla Scala this can be done using the
with keyword. It combines two types into one, returning their intersection.
In this example, the
UserAndClient is the intersection of
So, what about it? Well, some days ago I was writing something like this :
Note that the return type of
T1 with T2 . Therefore, the compiler should be able to resolve implicitly any combination of existing
IntGenerator right? A
IntGenerator[Client with User] for example?
Nope, compiler can’t find it. Except if I…
Are you working in a limited environment? You cannot choose your build system ? Or maybe you are a fan of maven? Even so, you still want to build an application in Scala with Play Framework 2? This article is for YOU.
Let’s begin by defining a very simple pom.xml.
First, let’s add Scala :
Then I’ll add sbt to maven :
Yes, this plugin will ask maven to run SBT. We need this as play cannot work without SBT plugins.
Next is play himself :
The play plugin adds maven goals to execute play commands.
Note: more details about intersection type in my previous article.
The intersection of several types creates a new type from existing one.
The newly created type can hold values matching its components definition and can use the functions from all types it was created from. Following the example: a
FlyingFish will be a
Bird and a
Fish and can use
If you are interested in Scala you may have heard of Scala 3 additions. One of the most welcomed is Union Types.
But no one is talking about its complement: the Intersection type. Maybe it’s…
Do you now about union and intersection types? They are widely used but rarely named. The only programming language I know about containing these features and daring to call them this way is Typescript.
In Typescript, union and intersection are defined in the Advanced Types section.
An intersection type combines multiple types into one.
A union type describes a value that can be one of several types.
Usage and notation are quite simple, the
& symbol is used to build an intersection while the
| symbol is for union.
If you have some history in programming, you may notice these…
Since I published my article Reduce the domain of your types with Refined I received some thank’s and a lot of questions of the “wtf is this library” kind. In this article I aim to answer these questions and to help you understand the benefits and drawbacks of
Refined is a Scala library, a port of an
Haskell library. It aims at helping developers constrain types.
In the above example I defined a
PositiveInt type. Its possible values range from 0 to
Int.MaxValue. Now, if I want a function to take a positive integer as its input, I…
Some days ago one of my coworker asked me about Refined. He said he couldn’t find any explanation about what
Refined does. After some thinking I came back with this :
Refined let you reduce the domain of your Types.
But first, what is
Refined is a Scala library. More precisely it’s a port of an
Haskell library to
Scala. Even if it came from
Haskell, it’s not complicated to use. It is complicated under the hood but that’s out of this article’s scope. Let’s just say
Refined let you write this:
It’s pretty self-explaining but let’s…
Lead Dev && Aspiring Software Craftsman