One of the challenge for start-up or any new project is to reduce amount of work yet to deliver full-featured product. Agile methodologies address this challenge on project management level. Let’s discuss one more approach to address it on architecture level: UI-first development.
Working on different projects I often see the same problems with application design.
I’ve been meaning to write a small tutorial for building web applications. Now it’s time! Let’s define the steps and choose some solutions for developing back-end java web application.
I will give my design recommendations and list a technologies I would use. You may have your own opinion and you may share it in comment. Over time, this post may change since my favourites are also changing over time.
Running integration tests locally with Docker on fixed ports is not always possible due to port conflicts. This is especially true when running tests in shared CI environment. Fortunately, testcontainers allow to start Docker containers listening on a random port. Here is an example: // create and start container val container = new GenericContainer("softwaremill/elasticmq-native") .withExposedPorts(9324) .withReuse(true) container.start() // create sqsClient val sqsPort = container.getMappedPort(9324) val clientBuilder = SqsAsyncClient.builder() .credentialsProvider(DefaultCredentialsProvider.create()) .region(Region.EU_CENTRAL_1) .
There are different points of view on how logging levels should be used in code. I will share mine.
My assumption is: “There should be no errors in logs when everything is fine."