Can unfamiliar pattern from world of statically typed functional languages improve JavaScript world? For sure YES! The elastic nature of JavaScript can handle great ideas from many alien worlds. With a little help of modern tools like monet.js and TypeScript we can achieve awesomely descriptive aesthetics of our code and drop some imperative bloat.
If you want to connect your Scala application to MongoDB you have two choices, really. You can use the official driver, which comes in two flavors (Java Async Driver or Scala driver, which is just a facade with RxScala API). Alternatively you can go with ReactiveMongo, a completely new approach built on top of Akka.
We've been using Play Framework with Elasticsearch and elastic4s for a while. Getting it all to work together requires some boilerplate code, though. We decided to create a small library that would make things easier in future projects. We learned some lessons about building Scala libraries along the way.
If you’ve heard about Monads but never had time learn them, here’s a simple explanation. Not a theoretical nonsense. It’s a simple, practical tutorial for JavaScript developers showing how some monads can be used. It’s for engineers, not scientists.
Pre-commit code review can provide some tremendous benefits: It improves quality of the final code, it helps team members to learn from each other. It also propagates knowledge about projects and best practices. But it also generates additional problems. Here's how we dealt with them.
There are three popular possibilities – jsDoc (with e.g. Google Closure Compiler), Facebook Flow and Microsoft TypeScript. First one uses comment like annotations – does not corrupt pure JS – while next two extend JS so they have to be transpiled. I will compare them briefly in a moment.
We're mostly building web applications these days. Even standalone apps have their UI layer written as a single page app in JS and communicate with their backend using REST. Let's explore the process of designing the REST API for such an app.
The abundance of all the tools and resources makes building web applications seemingly effortless. The framework will handle the routing, the library will process the requests and the template engine will take care of any UI you need. This is all very convenient, but it doesn't deal with the greatest risk of all: having your web service destroyed before you start coding.
Here at Evojam we're heavy users of Scala, MongoDB, and the Play Framework. So naturally, when MongoDB introduced the 3.0 Java Driver we were quite excited to see that it featured an aysnchronous core. Unfortunately after some research it seemed that the Scala community didn't share our enthusiasm.
Joint conferences API Days and API Strategy & Practice took place during the last weekend in Berlin. We’ve had the pleasure of spending great time with the people at the epicenter of the exploding API ecosystem. Read to learn what are the hot topics and possible implications for your apps.