The ideal engineer is a composite. He is not a scientist, he is not a mathematician, he is not a sociologist or writer. But he may use the knowledge and techniques of any or all of these disciplines in solving problems
Nathan Washington Dougherty
This article discusses some best practices that I follow during application development (mostly microservices) with cloud (Google Cloud Platform) in Java and Python.
BlackBox working style
This is the first and my favorite best practice that I follow not only during development only but also wherever I can apply it. The most common use case for the BlackBox working style is to use it during discussions. You must maintain your focus on the input and output to avoid being distracted from the original goal.
Building logical modules
Break everything things into logical modules. For instance, if you have to write a feature into the existing code, the feature should behave like a module in the existing code. It can easily be integrated with the existing functionalities but will be logically separable from them. Its granularity depends at what level you are trying to do this such as system level, service level, or code snippet level. One approach that always comes in handy to follow this practice is SOLID principles.
Plug-in and play type
Whatever modules we develop should be of type plug-in and play type. This will only be only possible if we keep our things logically separate using the SOLID principles.
Use latest but stable
whatever dependencies we use in our code, they should be the latest and most stable. You can ensure that it is the latest by looking at the date of release, but how can you ensure that it’s stable? You can follow the tedious process of looking at its reviews or you can see how often the releases of that particular package come out. If it is very often (every month), then you should pick the version which is the latest and a month older.
When the releases don’t come out more often, then you should choose the latest with a 3 month older version. Restrict yourself from using the just-released versions.
Closing note
The above-mentioned common strategies always help me during my application development projects whenever I get stuck. Hope this helps you too!