InfoQ Homepage Languages Content on InfoQ
-
Deep Dive into JUnit 5 Extension Model
JUnit 5 is a modular and extensible testing framework with support for Java 8 and higher. The Jupiter extension model can be used to add custom features. This is explained by building out a simple set of extensions that support the BDD approach to testing with full code examples.
-
Improving Testability of Java Microservices with Container Orchestration and a Service Mesh
In enterprise test scenarios, software needs to be tested in the same way as it will run in production. This article provides a practical demonstration of testing Java microservices that are running on Kubernetes with the Istio service mesh. K8s service abstractions enable mocking, and Istio enables us to re-route traffic and inject faulty responses or delays to verify our services' resiliency.
-
Getting to Know Graal, the New Java JIT Compiler
Oracle have released Graal, a new JIT compiler for Java. For Java developers, Graal can be thought of as several separate but connected projects - it is a new JIT compiler for HotSpot, and also a new polyglot virtual machine, GraalVM. The initial release includes support for JVM bytecode and JavaScript with LLVM, Ruby and R in beta.
-
App Architecture, iOS Application Design Patterns in Swift Review and Author Q&A
App Architecture, iOS Application Design Patterns in Swift by Chris Eidhof, Matt Gallagher, and Florian Kugler presents a number of architectures for iOS Swift applications, from the ubiquitous Model-View-Controller to a few more experimental ones. The book is accompanied by a set of videos that are available as a separate purchase and add a live-coding dimension to the book content.
-
How BuzzFeed Migrated from a Perl Monolith to Go and Python Microservices
Starting in 2016 BuzzFeed began a re-architecture project moving from a single monolithic application written in Perl to a set of microservices. The main reason for the move was that the Perl application was proving hard to scale, essential given that buzzfeed.com alone serves about 7 billion page views/month.
-
Refactoring to Eclipse Collections: Making Your Java Streams Leaner, Meaner, and Cleaner
Eclipse Collections is a high performance collections framework for Java, adding rich functionality to the native JDK Collections. In this article, key framework contributors demonstrate techniques for refactoring standard Java code to Eclipse Collections data structures and APIs, and also demonstrate some of the memory savings you can achieve.
-
Angular Application Generator - an Architecture Overview
It’s clear there are pros and cons to keep in mind before making decision to generate code, but what's the best approach to generating source code for Angular: templating or AST handling? In this article, we’ll take Angular source code generation to the next level by diving into techniques to make this consistent and maintainable, based on a DSL mechanism.
-
Monitoring SRE's Golden Signals
Golden signals are increasingly popular these days due to the rise of SRE. This article outlines what golden signals are, and how to monitor and use them in the context of various common services.
-
Get Ready for Cloud Native, Service-Meshed Java Enterprise
Java EE can be easily combined with Cloud-native technologies such as Kubernetes and Istio to produce a modern service-driven application.
-
Web Development InfoQ Trends Report
In this trends report, we take a look at the web development space, which is always an interesting one for us with a new JavaScript framework launched seemingly every couple of minutes.
-
Servlet and Reactive Stacks in Spring Framework 5
Spring Framework 5 supports both traditional servlet-based and reactive web stacks, in the same server application, reflecting a major shift towards asynchronous, non-blocking concurrency in applications. In this article Spring committer Rossen Stoyanchev explores and contrasts both stacks, and explains the range of available choices, and provides guidance for choosing the appropriate stack.
-
Designing, Implementing, and Using Reactive APIs
Reactive programming is a hot topic in the Java world. Whether you want to leverage non-blocking APIs, manage the latency introduced by the explosion of microservices, or simply utilize computing resources more efficiently, it's time to look at reactive as a viable programming model. In this article, we offer some opinions on how you should design, implement and use reactive APIs.