Github Stackoverflow Email

Software developer notes

Meet new design and brief story about backend's refactoring

Pet projects are an ideal place for experiments and my blog is not exception. With new adaptive web design I hope your UX will be less inconvenient (especially on small devices). Some background about old blog you can find here.

As for me, LAMP is not bad stack, but I wanted to explore other solutions. If you (like me) are not fan of dynamically typed languages, then there are two common ways - ASP.NET and Spring. Despite some familiarity with .NET, I choosed Spring to better learn Java's world. Actually it is collection of libraries like Spring Boot, Spring Data, Spring MVC which, in turn, are based on other mature java technologies. For example Servlets is underlying technology for Spring MVC, Spring Security. All such libraries are loosely coupled and are flexibly configured/created via annotations and IoC containers (it's quite powerful concept and I highly recommend to learn it). Generally its programming resemblies declarative way - you configure separated parts of your application which later will be colleted in entire web application.

So transition of business logic was not complex process, some things like Hibernate simplified code, some things like template engine was practially the same (despite usage of different one - Thymeleaf). But there are some painful peculiarities. By default Spring application incorporates Tomcat web server which has poor support of acme protocol (Yes, I know about some self-written code). It led me for nginx as reverse proxy with certbot support.

The database was also migrated from Mysql to Postgres. The latter has steep learning despite pretty good documentaton. Whole refactoring took about 3 months.

Java

Spring

PostgreSQL

About me

Hi! I am Alex, the author of this blog. Here are my technical (in the majority) thoughts and stories. I will be hoping that you find this site interesting and fun. Also you can feel free to contact me (support for comments will be added later).