Posty

Modular monoliths, DDD and the structure of my packages

Obraz
At the beginning I wanted to write about modular monoliths vs microservices as I think microservices are overhyped, in many cases they are not necessary unless you are Google or Netflix, but they bring increased complexity to the game: you need to take into account that parts of your application may be down, debugging is harder as now it's not just one app involved in flow of your logic, deployment is also more complicated But this is not what I want to write about (you can read more on this topic here , and here ) . What is more important is how you structure your code. You see, with proper structure you end up with "modular monolith" and with it you can "microservicize" your application without much effort. When I design an application, I tend to stick to those rules: application consists of modules each module has its own responsibility (bounded context from DDD), I think of a module as a part of my code which later could be easily extract

The one with Java functional programming YT link

Obraz
Functional Programming Patterns with Java8 by Victor Rentea Worth watching if you are Java 8 guy. Enjoy.

The one where SinnoFramework was revealed

When I first wrote  about my feeling of a need of a tool / framework which would improve speed of creating new software, I haven't told that I already had made an attempt at creating such a software. I did, and it took me almost a year of full time development time. The time put into creating this software paid back as I already have used it in three commercial products and it really reduced time-to-market by factor of 2 or 3. There is just one problem with my first approach: it's hard to find developers wanting to work with my tool. You see, after some time I have found out that I basically made a copy of Salesforce / Sharepoint. You have a Java Spring application, running on some server, and "developer" by using "development view" could "click and script" his application without writing any java code.  The thing is: Java developers want to write Java code,  not to sit in front of the gui interface and make mouse-driven-development. Other proble

The one where Kamil sees problem with typical software development approach

Let's look at the typical development process of a new web application. When I start programing new app in Java and Spring / Spring Boot (for other technology stacks like ASP.NET, node.js ect. this process looks the same more or less) I can use  Spring Initializer  to bootstrap my dependencies configuration: I pick which libraries I will use in my project and then I end up with empty project ready to begin with. At this point, let say I would like to start with defining access restriction and login mechanism to my app, there is Spring Security library coming to help me, but I need to: Implement a user model: create database structure for the user, implement database access functionality to retrieve user data. Connect Spring Security "user" with my previously created user model. In case of using Json Web Tokens for authentication I have to implement Authorization and Authentication filters. ect.. My point is, there are a lot of steps for basic application needs

The one where Kamil says hello

Hi and welcome to my first post on this brand new - software development focused - blog. I'm Kamil (from Poland) and I'm commercially developing web and mobile applications for about ten years now, currently with Java / Spring stack, but in general my points of interest related to technology are: Java / Scala Spring / Akka Flutter Angular Postgres Topics which I would like to write about are mainly about: Model Driven UI Chatbots Software architecture That's it for my introduction. A bit dry, I know, but at least you know what to expect in the future. Cheers!