In Search Of Performance (2)

This article on performance was not actually intended to be a multi-part article. But if you take a closer look at your own code through performance glasses, you will quickly discover further bottlenecks. In this case, it’s an unclean modeling that FreshMarker has been carrying around since its early days. This article is about how this affects the performance of the template engine.

Bullseye Architecture

I call Hexagonal Architecture, Onion Skin Model and Clean Architecture the “Bullseye Architectures”, because they contain the domain logic as a central component in the middle of their structure.Currently they are popular again, so here is a short article on the topic.

In Search Of Performance

In addition to the expressiveness of the template, the number of supported data types and functions and the expandability, performance is a decisive criterion for a template engine. FreshMarker only evaluates the template output at runtime, so although the template engine is very flexible, it cannot compete with those that evaluate the templates at compile time. For historical reasons, FreshMarker also has no upfront type information about the data used, so some optimization options are not available.

FreshMarker 2.1.0 Released

The latest version of FreshMarker, the Java 21 template engine, is now available. Version 2.1.0 introduces several improvements and new features.

A Custom Forth Interpreter

red dice stacked on table on terrace

Once again there was an funny code challenge from John Crickett. This time a custom Forth interpreter was to be implemented. Forth is a very interesting language that I got to know in my youth. Unfortunately, I don’t remember exactly, but I probably tried it out on my Commodore 128D at some point.

Comparison operators for Strings

FreshMarker allows you to overload a wide variety of operators for your own model types. These operators are multiplication, addition, negation and comparison operators. For strings, the addition operator + has so far been overloaded to realize a string concatenation. In this blog post, we want to implement comparison operators for strings.

REST endpoints with filters

Java Bibliotheken

This article is a slightly updated English version of the article “REST Endpunkte mit Filtern”.

In addition to sorting and pagination, filtering is a fairly common action on REST endpoints. In contrast to the first two, however, there is no adequate solution for filtering in the Spring Boot framework. With little effort, however, this can be elegantly implemented with the Spring Boot tools.

Of bridges and tunnels – agile system creation

Tunnel constructions are classic waterfall projects in which extensive planning is carried out and then construction can be completed without major changes. There are geological surprises from time to time, but a tunnel plan is, quite literally, set in stone.

Optimistic Locking mit dem ETag Header

Bild von Kerstin Riemer https://pixabay.com/de/users/kriemer-932379/

Wenn mehr als ein Beteiligter beim Speichern von Daten involviert ist, kann es zu ungewollten Überschreibungen kommen. Um solche Probleme zu umgehen, existieren drei Vorgehensweisen. Pessimistic Locking, Optimistic Locking und Ignore It!

FreshMarker 2.0.0 Released

The latest version of FreshMarker, the Java template engine, is now available. Version 2.0.0 introduces several improvements, new features, and a more streamlined foundation with an emphasis on cleaner templating capabilities.

Structured Primitives

In FreshMarker, primitive model types can be added to the template engine quite easily. Thanks to the Extension Mechanism, only a wrapper class, a mapper and a few built-ins are required to work with the new type. Now that many new types have been added, a small misdevelopment has been eliminated.

New Operators

For the next version of FreshMarker, a number of new options will be created for the template engine. These new possibilities include the Spaceship Operator and a new String Concatenation Operator.

FreshMarker 1.11.0

I am pleased to announce the release of the Java 21 template engine FreshMarker 1.11.0. This is the last planned release before the next major release 2.0.0 and includes some new features and improvements.