Spring and Isomorphic React 3: First-Load Performance

2020-03-30

In the first two parts of this series, I wrote about how to use reactjs together with spring boot on a GraalVM and how to use the same routing / navigation on the server side and in the browser.

Today, I want to look into whether rendering on the server side is even worth it. TL;DR: Out-of-the-box, the improvement in time-to-first-render was not that that much. But with a few tricks, I was able to reduce the time by ~60%.

Read More...

Spring and Isomorphic React 2: React Router

2020-03-25

In my last blog post, I wrote about how I am using ReactJS as a template engine for spring boot. I am running the server side application on GraalVM, and my Spring controller uses ReactJS to render HTML. In the browser, the JavaScript will hydrate the components that have been rendered by the server.

This worked well for the simple example app that I had. But what about navigation? We need the same routing on the server side and on the client side, otherwise the server would render the wrong content when the user reloads a page.

And here’s how I did that with react-router…

Read More...

Spring and Isomorphic React 1: Setup with GraalVM

2020-03-17

Since our country is in lockdown now and I cannot (and do not want to) continue with my usual videos, here’s a “normal” blog post about some fun thing I was trying recently. I wanted to use reactjs (TypeScript) as a template engine for server-side rendering in spring boot (Kotlin) so that…

  • I can use the client-side app created by create-react-app (almost) without modification
  • I can still run the react-app in standalone mode with npm start
  • The app works exactly the same when I open it from the spring boot server
  • I can use all modern JavaScript features
  • Routing works exactly the same on the server-side and on the client side
  • REST calls are only done when the JS scripts are running on the client side, otherwise they are direct calls to Java methods

I am not there yet. But I already got the first four bullet points covered, and I am working on the fifth. So, here is what I did so far…

Read More...

Tim Bourguignon: Public Speaking

2020-01-27

Tim Bourguignon and I talk about public speaking: Why he loves it and about a talk we prepared together.

Read More...

3X Thinking Part 2: Advanced Topics

2020-01-20

In this second interview about 3X thinking, Antony Marcano and I talked about advanced topics:

  • The fractal nature of 3X
  • How 3X relates to the three investment horizons model
  • Pioneers / settlers / town planners
  • How 3X relates to Agile
  • How companies can apply 3X and try radical, new ideas while protecting their existing brands

But first we do a short recap of the last video: What is 3X - or explore / expand / extract - and how can you use it? Watch the video here or read the transcript below.

Read More...

Tim Bourguignon: Tim's Developer Journey

2020-01-15

Tim Bourguignon tells us how he became a developer, then an agile coach and then “chief learning officer” at Mathema.

Read More...

Simon Harrer: Combine State and Behavior (Java by Comparison)

2020-01-13

In this interview, Simon Harrer shows you how code becomes more readable when you do not separate state and behavior.

Read More...

Tim Bourguignon: Mentoring Rocks

2020-01-08

Tim Bourguignon, agile coach and “chief learning officer” at Mathema, talks about one of his favorite topics: Mentoring.

Read More...

Simon Harrer: Name Things Right (Java by Comparison)

2020-01-06

Simon Harrer and I talk about the chapter “Name Things Right” from his book “Java by Comparison”.

Read More...

React TDD 4: TDD a Well-Known Algorithm

2019-12-08

When you already know the algorithm you want to implement, why should you use test-driven development to write it? And how do you test-drive a known algorithm or formula?

Read More...