Archi & Techno

Archi & Techno

Industrial document classification with Deep Learning

Knowledge is a goldmine for companies. It comes in different shapes and forms: mainly documents (presentation slides and documentation) that allow businesses to share information with their customers and staff. The way companies harness this knowledge is central to their ability to develop their business successfully. One of the common ways to ease the access to this document base is to use search engines based on textual data. At OCTO, we have decided to use optical character recognition (OCR) solutions to extract this data, since…

Lire la suite
Archi & Techno

Cache me if you can – 1

Introduction - scope of the article This series of articles deals with caching in the context of HTTP. When properly done, caching can increase the performance of your application by an order of magnitude. On the contrary, when overlooked or completely ignored, it can lead to some really unwanted side effects caused by misbehaving proxy servers that, in the absence of clear caching instructions, decide to cache anyway and serve stale resources. Before we get to the tactical details of how caching works, it helps…

Lire la suite
Archi & Techno

Hexagonal Architecture: three principles and an implementation example

Documented in 2005 by Alistair Cockburn, Hexagonal Architecture is a software architecture that has many advantages and has seen renewed interest since 2015. The original intent of Hexagonal Architecture is: Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases. To explore the benefits of piloting an application by automated tests, or developing and testing in isolation from the database, we recommend that you read…

Lire la suite
Archi & Techno

KotlinConf 2018 – Recap

On October 4th and 5th the 2nd Kotlin Conf took place. We were here to attend the conference, learning new Kotlin tricks, but above all, to feel the amazing Kotlin vibe. After a first edition in San Francisco, the Kotlin Conf set up this year in Amsterdam, in the beautiful Bars Van Beurlage venue (one of the conference room was even lit with stunning stained glasses). Here is a recap of the talks that impressed us the most, classified by the main themes we identified during…

Lire la suite
Archi & Techno

The Test Pyramid in Practice 5/5

In prior articles (1, 2, 3, 4), we’ve implemented isolated tests which offer us precise and reliable feedback - and are more or less fast depending on whether we’re running unit tests or component tests which need to load a Spring context. But these tests have their limits, precisely because they’re isolated. In this article we’ll deal with tests that are even higher in the pyramid: integration and end-to-end tests. This article originally appeared on our French Language Blog on 29/06/2018.

Lire la suite
Archi & Techno

The Test Pyramid in Practice 4/5

In the last article we described component tests: tests which are half unit and half integration test, that allow us to validate both integration within our application (via dependency injection) and also with peripheral components. All of which while remaining sufficiently isolated, to limit friction during execution. Because this isolation works perfectly, our API client tests suffer from a major flaw: if and when the supplier changes the service signature we learn about it much too late. This is what contract tests attempt to avoid,…

Lire la suite
Archi & Techno

The Test Pyramid In Practice (3/5)

The previous article detailed the base of the pyramid: unit tests and their role in preventing regressions in our application. But they’re far from being sufficient, and we need to use other types of tests. In this article, we’ll cover component tests. This article originally appeared on our French Language Blog on 27/06/2018.

Lire la suite
Archi & Techno

The Test Pyramid In Practice 2/5

In the previous article, we discussed the theory of the Testing Pyramid -- a testing strategy to ensure our application’s quality at a reasonable cost. Notable, we discussed the notion of feedback, and the importance of having fast, accurate, and reliable feedback. Unit tests typically address these criteria for a modest investment. Through this article we’ll develop a concrete example to explore the use of automated unit tests and try to answer some of our readers’ recurring questions. This article originally appeared on our French…

Lire la suite