Reasons for participation

In fact, I participated in the open source project nacOS as early as the end of April and the beginning of May. The Summer of Alibaba Programming was discovered accidentally by selecting the issue label when I was managing nacOS Issue. By this point, I was a quasi-commiter of NACOS and a maintainer of nacOS-Spring-project and nacos-Springboot-Project

Process of participation

The most devastating moment

During the task, there was a feature implementation that involved the reconstruction of the consistency protocol layer of NACOS and the selection of raft protocol (one of the community students compared two mature industrial implementations of Java raft, so I just said the industrial implementation and then went into the source research of JRaft). While the refactoring this piece, too many places need to adjust and module partition, every time the module and interface design, constantly upset yourself before the design, the design of the constant adjustment, at the same time also for consistency protocol level change is too big, lead to the unit test class requires a lot of the basis of the adjustment, at the time of themselves with a nod, but in the end, Or temporarily designed a relatively good consistency protocol function of the use of abstraction layer, and most of the consistency function tuning and normal operation; At present, there are too many conflicts that need to be manually adjusted because the gap between the upstream branch and the upstream code is too big

The aha moment

In fact, the problem of Epiphany occurred before I participated in the competition. At that time, the problem involved Spring-Cloud and Zipkin. At first, I thought there were some problems about the timing and events of the automatic service registration of Spring-Cloud. However, because I was not clear about the overall design concept of Spring-Cloud at that time, my opinion was not appropriate, but I provided the corresponding solution at that time. Then during the summer vacation, when I debugged this problem again, I found that the original solution did not work, so I started to find the problem again. Starting from the debug source code, I tracked the startup process of Zipkin component, and finally found the bug of Spring-Cloud-Seluth. I eventually reported the problem to the Spring-Cloud organization and submitted code to fix it, which is now incorporated into the main branch

harvest

Programming and engineering skills

How can I say, in the past three years, I feel that only the junior year is full, freshman and sophomore play in the past; During nacOS participation, I have made great progress in my coding ability, code design and understanding of the underlying implementation, from an entry-level learner, contributor to a community contributor, and then to a commiter. At the same time, Because NACOS is an open source component for developers and production, the stability of its functions, the ease of use of APIS, and the selection of technology need to be balanced; There is no best thing, only the most suitable thing

Open source collaboration

During my participation in NACOS, I also communicated with Luo Ye, a senior student of Spring-Cloud-Alibaba, mainly about the maintenance of ecological components of NACOS-Spring, as well as the user experience and convenience of using functions of components. Some things can not be decided by a pat on the forehead. Sometimes, I just think it is good, but for most people, it may not accept this design. At this time, I need to discuss my idea in the community.

After all, this is an open source, production-oriented component, and there is no room for error. For the code submitted by myself, I must conduct a comprehensive test and review every time before I can carry out a pull request

Mentor’s help

Dungu senior, THE PMC of NACOS, is my tutor. During the period from learning NACOS to becoming a commiter, dungu senior gave me the impression that he was very approachable. Sometimes he would ask some stupid questions by himself. Sometimes encountered some technical direction of the problem, seniors will also give guidance, so I did not take any detachs, so here thank dungu seniors patient guidance, but also thank Luo Night big brother, wind qing big brother, He Xu big brother in my programming summer trip to provide help