The experience of the six-month project development and my Gengzi Year

The experience of the six-month project development and my Gengzi Year

Before going home

I am going home today, and I finally completed my first project to the new company before the arrival of the Lunar New Year. There is only one feeling now, that is, tired.

(I'm like a tweeted face now)

From the beginning of August to the present, it has been more than 6 months. From the establishment of the project to the completion of the online test, the time to actually write the code is probably more than one month. The spiral model of our choice on the software development model. (In the spiral model, the project is advanced in cycles. Each cycle includes 4 phases: requirement definition, risk analysis, code implementation, and project review. These 4 phases are iterated. Every time the software development process is iterated, the software development advances to a level. ) It was originally expected to launch the first phase in October, and then gradually optimize the iteration. Because the project manager s ability is superb and the design iteration speed is too fast, the first phase has not yet been completed, and the second phase of the design document is released. Finally, the project that is expected to be completed in two months has been developed for 6 months. Online is the content of the third issue.

Unlike the old company who has been patching the original project, the new company directly arranged me and three other colleagues (two back-end and one front-end) to be responsible for the development and design of the new project (of course, the master took the lead, but the master is mainly responsible Control progress and check code specifications). I was a little panicked for the first month. The first time I did a project independently, I lost such a large amount of funds (in 100 million). If something went wrong, wouldn't I die on the spot?

Not long after the project was launched, the front-end colleagues left their jobs. The new front-end colleagues hadn t gotten hot yet, and the only old back-end employee chose a bigger stage. Of course, although they left, the subsequent meetings You can still hear their names often in China (colleagues who leave in project development are always the best guys).

Because my own structure is not big enough, so in the whole project, I can really participate in technology selection, architecture design, technical program writing and code development. Others are similar to communication with other units and risk control model. As far as I am concerned, construction and the like are just participating in the meeting, and have no say in it.

Technology selection

For technical selection, there is no good choice for MQ, databases and the like. The company's other projects use activeMq, mysql, redis, and mongodb, so our project must also use activeMq, mysql, redis, and mongodb. Of course, you can also have your own choice in some new places. For example, for data desensitization, we chose ShardingSphere (see [Advanced Road] for online business data desensitization solutions based on ShardingSphere ), and for timing tasks, we chose xxl-job (see [Advanced Road] for timing tasks invocation for details). Platform xxl-job ), and even the processing toolkit for data comparison and data verification, I directly use the tools in weed (see [Open Source Road] Wendy for details , a simple attempt ). Of course, I have also updated and optimized the function of weed several times, and I will write a new article to introduce it in the future.

Architecture design

In terms of architecture, we only used the traditional springCloud distributed architecture. In the message consistency solution, we basically followed the [advanced road] reliable message final consistency solution idea for design. The realization of the main functional classes is basically implemented in accordance with the responsibility chain mode and the bridge mode . Of course, the code must not be posted. You can share some irrelevant flowcharts left in the design.

Process design of bridge mode:

Architecture design (dubbo and tomcat are required to interface with the old project):

Technical plan writing and code development

This part is very simple. Generally, companies will have accurate and complete templates for technical solutions, and they only need to do it according to the company's requirements.

Of course, how to write technical solutions and how to develop code. On the basic template, everyone has their own ideas, but after a big project (many of which are actually being promoted and followed up), I found that millions Don't fail to standardize the code because it is urgent or has no clue . If you do not have a good specification at the beginning, or feel that your code can definitely be understood by yourself, you do not need to draw UML diagrams, ER diagrams, data flow diagrams, etc. during the development process, then what is waiting for you is the third phase. I have forgotten all the ideas of the first period.

The way home

Sitting on the high-speed train going home, looking at the scenery rushing past the window, my mood is actually very complicated. This year, it's going high and low. Years ago, many things that I wanted to accomplish were not done very beautifully. Many things I wanted to do were just in the end.

Butterflies and Flowers Spare Echoes

Yunjuanyunshuyun weeping dew. Green-printed phoenix trees, catkins have no multiples. The oblique moon is not familiar with the bitterness of the Honghu, and the dark fragrance is up and down the long song road. The spare echoes were hesitating. On the moor at dusk, the green silk was slightly open. Changping's leader book is a good plan, and it is not stained with dust.

I am Nanju who has been practicing java for two and a half years. Below is my WeChat. Friends who need previous maps or want to exchange experience can communicate with each other.