Before you go home

Today I am going home, and I have finally finished my first project in the new company before the Chinese New Year. Now I only feel tired.

(NOW I’m like a tweet with a broken face)

From the beginning of August to now, it has been more than six months. From the project establishment to the end of the online test, I have only been writing the code for about a month. Software development model of our choice of spiral model. (spiral model in advance project cycle, each cycle including requirements definition, risk analysis, code implementation and project review four phases, iterations, by the four stages of software development process of each iteration, the software development will advance a level) is expected to launch in October first, slowly after optimization iteration. Because of the project manager’s superior ability and the speed of design iteration, the design document of the second phase was issued before the development of the first phase was completed. Finally, the project that was expected to be completed in two months was developed in six months, and the content of the third phase was launched once.

Unlike the old company, which always fixes the original project, the new company directly assigns me and three other colleagues (two back-end and one front-end) to take charge of the development and design of the new project (of course, the master is in charge, but the master is mainly responsible for controlling the progress and checking the code specification). In the first month, I was a little nervous. It was the first time to do a project independently and I was burdened with such a large amount of capital (in units of 100 million). If something went wrong, I would die on the spot.

Project just push also didn’t take long, front-end colleagues to departure, a new front end colleagues bottom hasn’t sit hot, only a backend older employees also chose the bigger stage, of course, though they left, but the follow-up meetings can often hear their names (in the project development colleagues leaving the company is always the best man back pan).

Because of their pattern also is not big enough, so in the whole project, I can really participate in is the technology selection, structure design, technical scheme and code development, other similar to the communication with other units such as construction, risk control model, with me, just to participate in the meeting, there was no voice.

Technology selection

For technology selection, there are no good choices in MQ, databases, etc. Other projects of the company all use activeMq, mysql, Redis and mongodb, so our project also needs activeMq, mysql, Redis and mongodb. Of course, there are some new places to choose from. For example, we choose ShardingSphere (online business data desensitization solution based on ShardingSphere) for data desensitization, and we choose XXL-job (scheduled task call platform XXL-job) for scheduled task. Even data comparison, data verification processing kit, I directly use the tools in WEED (details see [Open Source Road] Wendy, a simple attempt). Of course, THE weed function has been updated and optimized for several times, and I will write a new article to introduce it in the future

Architecture design

In terms of architecture, we just use the traditional springCloud distributed architecture. In the message consistency scheme, we basically design according to the idea of “advanced path” reliable message final consistency solution. The realization of main function classes is basically based on responsibility chain mode and bridge mode. Of course, the code must not be posted, some of the design left unimportant flow chart can be shared.

Bridge mode flow design:

Architecture design (Dubbo and Tomcat are needed for interface docking with the old project) :

Technical solution writing and code development

This part is very simple. Generally, companies have accurate and perfect templates for technical solutions. It is only necessary to do it according to the requirements of the company.

Of course, everyone has their own ideas about how to write the technical solution, how to develop the code, and the basic template, but after a big project (a lot of things are actually promoted and followed up by myself), I found that I should never fail to standardize the code because it is urgent or without a clue. If you don’t do the specification well from the beginning, or think that your code can be understood by yourself, and you don’t need to draw UML diagrams, ER diagrams, data flow diagrams, etc., during the development process, you will have forgotten all the ideas of Phase 1 by phase 3.

The road to go home

Sitting on the high-speed train home, looking out of the window to keep surging scenery, the mood is actually very complicated, this year is high open low go. Years ago, a lot of things that I wanted to accomplish were not done beautifully, and a lot of things that I wanted to do were just planned in the end.

Butterfly love flower · Spare echo two hesitation

Cloud cirrus cloud shuyun weeping dew. The relationship of green Indus trees and caty is irrelevant. Oblique moon is not familiar with swan bitter, incense ups and downs long song road. Empty echo two hesitation. Evening on the stranger, the green handkerchief is a little. Changping led the book of good plan, not stained with dust.

I am nanju who has been practicing Java for two and a half years. Here is my wechat. If you need the previous map or want to exchange experience with each other, you can communicate with each other.