It allows you to create a similar object, the so-called “stub” and specializes specifically in them. Thus, you can create your own implementation of interfaces, classes with the necessary functionality, test their work for correctness.
There is a good article on Mockito here.
Above, we have already talked about working with the database, and once again, returning to this issue, we cannot fail to mention the Hibernate framework.
Before you try – check, or maybe someone has already done this …
This is often the case, and it’s worth checking for code that solves your problem. After all, for sure, other programmers have already racked their brains over this issue! Let’s take a few examples.
Business interests often require developers to interact with not very convenient file formats, among which are such as Word or Excel. There is a fairly old and proven solution for this: using the Apache Tika library. According to the developers themselves, the library supports more than 1000 file formats, including Word, Excel, PowerPoint, PDF, etc.
Thus, the library allows parsing files in the listed formats and more.
Speaking about the graphical representation of business information, one of its main types is a variety of graphs. A good free chart generation library is JFreeChart. It provides a convenient API and allows you to display graphics in both vector (PDF, EPS, SVG) and raster ( PNG, JPEG) formats.
Since web developers periodically have to deal with the JSON format, an appropriate tool is needed that can work with it, and the Jackson project provides it, but is not limited to it, the formats that the library works with include: XML , YAML, CSV (and more).
Increase in general erudition
The required speed of development is provided to a very large extent by knowledge of the subject and related areas. And you can even say more that “erudition is our everything” (it’s not in vain, after all, there is a gradation into juniors, middles and seniors, hehe).
In this sense, the following scheme, the so-called backend roadmap, is quite informative. It gives a general understanding of what kind of “gentleman’s” set of knowledge in subject areas a developer should have, depending on the needs of interaction with certain technologies. Yes, time goes by, and this scheme may, to a greater or lesser extent, cease to correspond to reality, but it gives a general idea, which is why it is interesting:
The original scheme at the link above is good because it is clickable and literally each of its elements leads to a page with information regarding the corresponding issue.
There is a similar scheme for front-end development:
In addition, there is a very curious detailed FAQ on the frontend.
However, the information contained in these diagrams and the FAQ should be taken critically and taken in a cognitive way for the overall development.
As an epilogue
Summing up all of the above, I would like to note that we have walked, so to speak, “on top”, and “behind the scenes” there are many other interesting issues left: design patterns (at least the same MVC, within the framework of Spring, since we are talking about it), data structures, optimization methods, flexible development methodologies, and so on and so forth. But this will already pull on a whole book, and not on an article 🙂
If you try to highlight the most important thing, then it probably makes sense to put erudition in the first place, since for sure everyone will have at least 1-2 stories when the technologies and approaches studied for the future came in handy. If only there were a little more time in the day than 24 hours.
Rolling out a service to production: 6 steps to a successful release
Domclick company blog
There are many guides and instructions for creating basic back-end applications. You can also find step-by-step tutorials on how to build an application and deploy it to a server, or detailed instructions for popular CI / CD tools. The steps described in them are enough to launch pet projects, but for full-fledged applications that will have to withstand peak loads from a large number of users and still work smoothly, more detailed and high-quality preparation is needed. Below I will describe the steps that are required for engineers from my teams when first deploying a web application in production and further rolling out large features.
Step 0. Logging and adding metrics
Before rolling out an application to production, it is very important to correctly configure the logging levels for technical messages and errors, their recording in the log storage, and also “smear” all important indicators with metrics. For collecting and viewing logs, I recommend the well-established ELK stack (Elasticsearch, Logstash, Kibana).
After the correct configuration, all stdout logs of the service will be stored in the repository and will be available for viewing in Kubana. Set logging levels as follows:
info – for typical messages.
warning – if this code block was not intended to be entered. Warning level logs need to be reviewed and analyzed from time to time.
error – for errors.
debug – This level of logging is best used as infrequently as possible, because debug messages take up a lot of space and make searches worse. If you still need a debug level to fix problems or when starting the service, be sure to agree on a date when this type of log will be disabled.