This article has participated in the activity of “New person creation Ceremony”, and started the road of digging gold creation together.

Combined with the R&D process, the benefits of architecture optimization & componentization are divided into

  1. Business understanding stage: this stage is mainly applicable to new students, or old students change business lines. After the structural optimization of the team, the boundary of components is clear, and the relationship between responsible people is clear. Meanwhile, the team provides some open class videos, common processes and technical documents to provide stable support for students unfamiliar with business or processes, which can also effectively reduce the cost of some guidance.
  2. During the requirements assessment phase: For developers to implement a new functional requirement, either modify it based on existing capabilities or build it from scratch. When the system architecture design is reasonable and the component separation boundary is clear, then the r&d personnel can evaluate the workload in a limited range when assessing the requirements, and can perform their responsibilities. At the same time for the underlying module, function iteration, implementation has also achieved the effect of unity, and reuse.
  3. In solution review: the team in the standardization of business component definition is clear, and team members to reach a consensus, at the same time because of the complexity of the components, reduce (more than a warehouse business – > single responsibility), the technical scheme of sorting cost will decrease relatively, technical solution of boundary is more clear, the low cost of communication. For reviewers, the impact surface is relatively easy to evaluate, and the degree of concern for the subsequent development process can be graded. Ongoing reviews and ongoing changes at related nodes tend to keep getting better for the architecture.
  4. Development phase: components are split properly, such as the common closure principle: for maintenance composition, put classes that will be modified at the same time and modified for the same purpose into the same component. In this way, for the needs of r&d personnel, the r&d process involves the amount of code, low complexity, the speed of independent component compilation will also be reduced, and the efficiency of single component research and development is naturally high; In the requirement of a single release, multiple developers modify a component together and multiple developers modify different components respectively. The latter has high parallel development efficiency and reduces code conflicts. In the CodeReview stage, the responsibility can be truly assigned to the person, the person in charge and the authority can be clearly defined, so that the code submission can also have a certain quality assurance. For components with a large impact, effective evaluation and reverse cooperation between dependent parties can be made in the scheme review stage or in the CodeReview stage.
  5. Test phase: the reverse dependency of components is clear, the impact of component changes is clear, and the regression test set of testers can be determined, so that very accurate testing can be done; The relationship between the component and the person in charge is determined. The stage of Bug generation can be clearly assigned to the person in charge of RD for repair, and the r&d personnel can have more time to repair the Bug. After the components are defined, there are also some mechanisms for single testing and automation, which can strictly and effectively perform related work according to the preset logic.
  6. Integration test phase: The cost of code submission and Merge is reduced. Multiple lines of business can submit integration tests in parallel. When some problems occur and the code needs to be rolled back, the cross-influence of the code repository becomes smaller after componentalization, so the cost and risk of rollback are reduced.
  7. Release and maintenance stage: once the product is launched, the code changes again are cost and risk. In the design and implementation stage, the interface of components tends to be stable, the coupling between components will be reduced, and the internal changes of components will have little influence on the components that are reversely dependent. As the business iterates, the cost of going offline is low.

Other reference

  • [Thinking about the process of architecture Optimization] Quality over efficiency
  • Avoid random trial and error
  • [Thinking on the process of architecture optimization] Continuous technological innovation
  • [Thinking about the process of architecture Optimization] the value of specifications in R&D work
  • Summary of componentization benefits of R&D process
  • [Thinking about the process of architecture optimization] It is better to determine things by people than by people
  • Five key points of CR
  • Three dimensions of technical solution evaluation
  • The meaning of communication
  • [Thinking on the process of architecture optimization] Platform ecology is given priority
  • [Thinking on the process of architecture optimization] The sorting principle of technical requirements