Hey, ho! It's Friday - we made it! Let's rock at night, shall we? I'll be pretty happy if you'll give your brain some rest. But don't binge-watch Netflix all night, ok?
I'm very excited about today's newsletter, 'cause I'm a big fan. I'm not an expert, so the reader discretion is advised. I am just sharing my own experience. Today we'll be talking about microservices. During my career, I worked on a project that was started from scratch...only a few times. And it impacted the way I think when I'm building something. It's like I'm always a younger brother, that will get used pants from the elder sibling. There always was a system that was built by other developers before me. Usually, they were smarter, more experienced, and a better fit as developers rather that I am now :) So I always read code made by other people, understand it and learn from it. In those projects, I always need to change or extend something. So debugging and refactoring is my BF When it's an ongoing project - you start to notice a lot of small problems that help to crash this software frequently. And you are like (trying to play the smartest guy in this room): "Hey, why wouldn't we upgrade whole module A, rather than try to add another X, Y, Z into it?" I remember, while learning Java in the academy, they had something similar to the microservice approach. And they used it pretty often, and I thought one of the reasons was that they had a lot of business solutions related to interconnected devices that usually have Java Virtual Machine installed on it. And back then, we used to have simple devices, so you couldn't just put everything under one roof. So I start to explore how and why to use microservices as part of the code that I'm working on. Primary reasons are pretty simple too: they fit perfectly in our modern world.
Even if you're using the monolith approach, you are still connecting your project with other services. Also, if it's not a perfect example of microservices, communications now is an essential thing. Payment gateways, analytics dashboards, mobile devices, advertising - everything is exchanging your data(even when you don't want it) The time when you can create a calculator application and send it as *.exe file is gone. Deal with it.
And Yep, the first server I deployed, that was related to my project - was on Heroku. Yes, there can always be other, maybe better choices, but AWS didn't accept my Ukrainian cash card, and Heroku has pretty good tutorials and easy to understand help section. Plus, it has a pretty intuitive interface. Plus, GitHub integration. So it was a perfect match for me.