InfoQ Homepage Architecture & Design Content on InfoQ
-
Java Feature Spotlight: Sealed Classes
The release of Java SE 15 in Sept 2020 will introduce "sealed classes" (JEP 360) as a preview feature. A sealed class is a class or interface which restricts which other classes or interfaces may extend it. Sealed classes, like enums, capture alternatives in domain models, allowing programmers and compilers to reason about exhaustiveness.
-
Using a DDD Approach for Validating Business Rules
If the goal is to create software applications that emulate the behavior of domain experts, then the challenge is in capturing and implementing the business rules. This is more a factor of good knowledge management than it is raw coding ability. Following techniques from Domain-Driven Design can provide a structure for effectively validating and implementing business rules in a system.
-
Working Together in the Same Direction with Obeya
Obeya1 is a proven approach that facilitates teamwork and the alignment of activities around seven panels to deliver IT or manufacturing products. It accelerates the regular resolution of good problems by breaking down barriers between teams and it also benefits from the support of the management. The purpose of this article describes the first Obeya panel: vision
-
TornadoVM: Accelerating Java with GPUs and FPGAs
The proliferation of heterogeneous hardware represents a problem for programming languages such as Java that target CPUs. TornadoVM extends the Graal JIT compiler to take advantage of GPUs & FPGAs and provides a flexible, high-level model whilst still enabling high performance and features such as live task migration.
-
State at the Edge: an Interview with Peter Bourgon
Building upon topics in his talk at QCon London, Peter Bourgon answers questions about edge computing, distributed data, and the complexity of synchronization.
-
Blazor RenderTree Explained
Blazor is a new single page application (SPA) framework from Microsoft that relies on the .NET framework in favor of JavaScript. As part of its component development model, Blazor uses a DOM abstraction called a RenderTree. In this article we’ll learn what exactly a DOM abstraction is, what the RenderTree is used for, and why Blazor developers should know about it.
-
Crank, a New Front-End Framework with Baked-In Asynchronous Rendering - Q&A with Brian Kim
Brian Kim introduces Crank.js, a new front-end framework with baked-in asynchronous rendering. The framework orchestrates front-end applications' tasks and rendering with standard asynchronous generators. Crank strives to be Just JavaScript, and reduces the number of concepts that need to be acquired to write a front-end application. Gone are proprietary notions of asynchronous resources.
-
Understandability: The Most Important Metric You’re Not Tracking
Understandability is the concept that a system should be presented so that an engineer can easily comprehend it. The more understandable a system is, the easier it will be for engineers to change it in a predictable and safe manner. A system is understandable if it meets the following criteria: complete, concise, clear, and organized.
-
Machine Learning in Java with Amazon Deep Java Library
In this article, we demonstrate how Java developers can use the JSR-381 VisRec API to implement image classification or object detection with DJL’s pre-trained models in less than 10 lines of code.
-
Adoption of Cloud Native Architecture, Part 2: Stabilization Gaps and Anti-Patterns
In this second part of cloud native adoption article series, the authors discuss the anti-patterns to watch out for when using microservices architecture in your applications. They also discuss how to balance between architecture and technology stability by not reinventing the wheel in every new application and at the same time, avoiding arbitrary reuse of technologies.
-
WebAssembly at Sentry - Q&A with Armin Ronacher
Sentry sees great potential in WebAssembly and uses it internally in the context of its ingestion system. However, further usage is hampered by the limited capabilities of WebAssembly when debugging in production. While proposals exist to make the DWARF standard debugging format work with Wasm, more work and better tooling are necessary. InfoQ interviews Sentry's Armin Ronacher.
-
Apache Arrow and Java: Lightning Speed Big Data Transfer
Apache Arrow puts forward a cross-language, cross-platform, columnar in-memory data format for data. It is designed to eliminate the need for data serialization and reduce the overhead of copying.