Looking back on that company’s work experience, after more than two years of baptism, I think the biggest harvest is to meet a good boss, to respect and cultivation. After being entrusted with the task, I led the financial product team to carry out a series of system reconstruction, transformation and optimization, reshaping a series of core systems related to auto finance, thus fundamentally improving the original bad appearance, eliminating a series of problems and problems, and laying a solid foundation for the long-term development of the business.
Warm tips: the full text is 4600 words, which is not easy to write on the way to work. Thank you for your attention. Draft on 16 November 2020, final draft on 5 December 2020.
Car finance | financial product center of incarnations
Financial | car GPS incarnations of the audit system
Car financial | basic data platform of incarnations
Car incarnations of financial center | contract system
Car financial | financial product rules engine incarnations (last)
Car financial | financial product rules engine incarnations (medium)
Car financial | financial product rules engine incarnations (next)
Car financial | I M in the two years
@[toc]
takeaway
I resigned from an Internet travel company S on September 4, 2017, and then joined the Internet finance company M. Later, thanks to the opportunity of the change of team members, I transferred a new boss to take charge of the research and development of car finance business line. Thanks to his appreciation and cultivation, I started to set up the financial product team from one person who joined the back-end R&D role. From the initial team of two people, the team gradually grew to nearly 10 people. Starting from scratch, I was in charge of GPS audit and financial product system, and then I was in charge of core system business such as basic data platform, contract center, post-loan audit, payment request and input.
If a person can’t meet a bole in his career, I think his ability and talent will be buried. And I know firsthand from my own working life that it’s not easy to find a good boss.
If Shang Yang had not met Lord Xiaogong of Qin, why would he have carried out the famous “Shang Yang Reform”? Because of the reform, Qin began to become strong, laying a solid foundation for qin to destroy the six states, and then unified the six states and established the state of Qin.
Although I am not as good as Shang Yang, I still think I am capable. After many times of thinking about my own advantages, I have been proved by the baptism and practice in M Company that I can give full play to my advantages and better lead the team to solve a series of complaints and pain points faced by the company’s relevant business systems.
I am not afraid of difficulties and setbacks, and like to indulge in innovation and research. As I wander through the long subway ride or meditate on those moments of my soul before falling asleep, inspiration will come to me in a flash.
Recalling the course of the past two years and more, those unforgettable memories of the years, as well as the hardships in the eventful years, seems like yesterday. I set out with a dream, I set out with a team. However, after half a year, I feel it is necessary to write about a few things I have done during this period. There is always a hard time behind these things, but the final victory is achieved, so I want to share with you, hoping to give you inspiration or help. Thank you for your support and attention. Let’s go from here.
First, stored procedure transformation
The transformation of stored procedure is an inevitable choice for the development of auto finance business line. The system was rebuilt because the pain it caused us to develop is still in our minds today. Not only the boss concerned about this matter, the team is a “military warrant”, must blow up the “bunker”, in order to ensure that the large army to continue to move forward.
With this in mind, our stored procedure refactoring work took place against this historical background, where our boss gave us a mission and placed great expectations on our team, and I led the team to take the responsibility and start deploying execution plans and goals.
I led a friend to start with the first pre-validation of stored procedure rules (also known as RR rules) because this business logic module was the focus of the refactoring effort. With tens of thousands of lines of source code for this stored procedure, the task is more difficult than ever. In addition, the business logic of this stored procedure is the key point of the whole business process of order making and the key node of credit granting entering the audit link.
Stored procedure reconstruction is a difficult task and complicated business logic. With business iteration, no one can clearly explain all the business logic of these codes, and it has a great impact on online business processes. In view of this, we deconstructed the entire refactoring effort from the perspective of R&D resources and timing to the task of the big target.
I led my friends from business logic sorting to technical scheme design, and finally we built a SpringBoot application based on Java language, which combined these stored procedures with business logic through classification and disassembly. As the original stored procedure call is operated and maintained by configuring cron script on Linux server to communicate with database stored procedures, Therefore, after this reconstruction, we exposed several REST API interfaces through the application service to provide the scheduling platform system to configure the job to execute the scheduling.
Over the course of several months, the stored procedures are checked and online. During this period, the first partner leaves, and then joins another partner to finally complete the mission.
Second, the restructuring of financial products
The reconstruction of financial products is gradually carried out in response to the background of SL students in XD team who “shouted for the separation of front and back ends”. The whole reconstruction work is also an inevitable choice for business development in the subsequent implementation and promotion. In terms of technical architecture, in order to consider the expansibility and scalability of business modules, the final completion of financial product reconstruction is another big “battle”.
In the first stage of financial product reconstruction, the functions of the old system were split and the independent deployment and operation of the financial product platform was realized. The front-end is based on VUE, and the server is based on SpringBoot, so as to achieve the separation of the front and back ends.
In the second stage, we completed the establishment of a financial product center service, which is committed to providing unified financial scheme acquisition and trial calculation of financial products. Its main responsibility is to complete the improvement of financial product fee calculation scattered across the business systems, so that the Financial Products Center can directly provide support to the business systems. The achievement of the target in this stage lays a foundation for the follow-up business development.
In the third stage, based on the existing business model of financial products, I conducted a series of platform optimization work to improve the operation efficiency of the financial product platform through multiple negotiations with the product operation students, which was carried out from the three aspects of function design, user interaction and business model.
The most important optimization work in the three stages is to further reshape the financial product business model based on the existing business and future development needs, with the goal of supporting the differential operation of business in different investors and regional cities.
In terms of computing engine design, the financial product platform has carried out various research and technical scheme design, and finally determined the design scheme with strong scalability and flexibility. Each independent expense unit composed of financial programs can support flexible carry mode and precision processing configuration control, and then complete the trial calculation of the entire financial program by invoking the computing engine, so as to realize the visual configuration and diversified operation from the perspective of product operation.
In terms of rule engine design, the configuration of pre-rules and post-rules in the financial product platform is completed. At the same time, in order to improve the scalability, the rule metadata definition based on xDiamond configuration enables the financial product system to realize configuration and complete system upgrade without release deployment.
At the same time, the rule engine supports business scenario configuration of four operations, three operations and logical operations. In order to further reduce operating costs, many functional innovations have been made in interaction design and functional design to support product operation in a more friendly way.
The fourth stage is to complete the separation of the database of financial products, making it truly independent of the original huge database, and laying a foundation for the stability of system services.
Read: | car finance incarnations in the center of the financial products
Read: | car finance financial product rules engine incarnations (last)
Read: | car finance financial product rules engine incarnations (medium)
Read: | car finance financial product rules engine incarnations (next)
Third, GPS audit system reconstruction
I have been in charge of the demand iteration of GPS audit system since the beginning of my entry. In the long-term climbing process, I have done thoughtful research and balance, and gradually split two application services. In the system architecture, one provides front-end docking for THE GPS audit system, that is, front and back end separation; The other provides application services for the car finance line of business to provide HTTP or RPC protocol interface services.
GPS audit system, completed the system business module split and maintenance service deployment, to achieve the old system business decoupling and service decoupling. At the same time, in the interaction design of GPS audit system, I negotiated with GPS audit staff for many times, and made relevant optimization work.
Subsequently, the mechanism of receiving and sending orders was added to improve the audit efficiency of auditors. In the function interaction, the monitoring panel of task queue and personnel queue was added to provide a visual monitoring page for GPS audit supervisors, holding a sharp sword, so as to improve the efficiency of GPS audit team.
Through independent innovation, our r & D team reconstructed the whole GPS audit system, aiming at improving the maintainability and expansibility of the system, such as global unified management of distributed locks, further abstraction of MULTI-scene GPS operation, and further process optimization of the ordering process.
GPS audit system in the history of the advancement, and completed the separation of the database, to achieve real independent deployment and operation and maintenance, for the stability of the system to lay a foundation.
Read: financial | car GPS incarnations of the audit system
Fourth, build basic data platform
The establishment of the basic data platform realizes the unified management of the basic data of the auto finance business line, and provides a platform for operators to support the operation and development of auto finance business.
Basic data services liberate business systems from the dependence on basic data. As there is no role of basic data services to provide service capabilities, they need to query data by themselves. Therefore, after the establishment of basic data services, the dilemma faced by various business systems of auto finance business line is improved.
In addition, in order to support the growth of the company’s business development scale, the system service from the architecture design, from the system interface performance to make innovation. The first and second level caching mechanism is introduced to improve the response performance of interface services.
The subsequent database splitting will further improve the stability of the system and realize the independent deployment and operation of the basic data platform. At the same time, in order to support the needs of the business and improve the operation efficiency of the platform, we take the initiative to undertake some demand scenarios. This fearless spirit makes our team’s brand image gain a foothold in the product and operation team.
Further reading: car financial | basic data platform of incarnations
Fifth, MySQL library demolition
At the beginning, the system architecture of the credit team of the car finance business line and the business modules of the huge business system were all realized in a database. There are about 400 tables in this database, including MANY business unit modules such as GPS audit, credit audit, post-loan, financial products, input, loan, image, etc. There are still some database tables that are not needed at all with the business iteration.
With the separation of business system applications, related teams split the database of business units from the development of business scale and the expansion and stability of the system. I led the financial product team to complete the separation of financial products, GPS audit and basic data in one year.
The main purpose of database split, based on the business system from the business domain model split, database table split, keep the table structure unchanged, so that the system can maintain minimal changes, just a data source switch, can complete the split online work. At the same time, it is convenient to run the gray scheme and roll back in case of emergency failure.
After the database is split, each business system can further reconstruct or optimize the system to meet the needs of business development.
Sixth, build the Tianyan monitoring platform
Tianyan monitoring platform is a technical research and development innovation product entrusted by the boss to the team. In terms of the overall business line of auto finance, the financial product team is responsible for the calculation, verification, inflow and outflow of a large amount of money involved in the business system. Therefore, in order to realize the three-dimensional and diversified monitoring and warning mechanism, we set up a Sky Eye monitoring platform based on business scenarios.
For two business after the contract and credit system, in order to cope with the demand of the frequent iteration, further improve the testing process coverage, we research the function of repetition traffic, in order to better improve our demand online after hidden bugs of diagnosis and treatment of early and early warning, and uninterrupted for the data accuracy and completeness of the online monitoring.
Traffic reappearance completes the overall functional design from several core modules including sample collection, feature definition, data source docking and verification center. Based on this function, it can further assist in testing and RESEARCH and development after launching requirements. Based on the function of this platform, it can further improve testing efficiency, improve testing quality and cover the diversity of business scenarios.
Seventh, build quality center system
The system of quality inspection center is to assist the contract system and payment request system to realize diagnosis, treatment and early warning for data correctness and integrity.
Because the contract system and the post-loan system have several online failures, the boss should not pay attention to whether the design of the system is reasonable or not, and whether to solve the problem fundamentally in the future. The boss had high expectations for our financial product team, then took over the contract and post-loan system, and planned technical solutions to solve the current problems.
In view of this, our team carefully studied the problems existing in the current system and communicated with relevant technical implementation schemes for many times. The goals are then broken down into goals and milestones for the two systems (post-loan and contract). At the same time, assign personnel to complete the design and implementation of the current system coding, and divide the existing human resources into two groups. Each group has one member, one realizes the module design of the quality control center, and the other realizes the connection between the business system and the quality control center.
Finally, we achieved our initial goal through the quality control center system developed by ourselves and solved the problems faced by the system.
The remolding design of contract center
Contract Center This system has been in place since the beginning of my career. At first, a research and development is responsible for the formulation of contract template and style layout control, based on JSP implementation. This system design stays with the team for a period of time until the team changes, a new boss arrives, and a new round of architectural design and system evolution begins.
The first version of contract Center refactoring, implementing Doraemon based on XDiamond configuration, which implements the definition and logical configuration of contract template fields.
It was born with the car finance through a long period of time, based on the configuration of the idea represents the trend of system design, how many times in some places to see its propaganda and praise. But it’s also designed to be lethal, and if something goes wrong, when you know it’s been up and running for days, you know the intelligence is very late by the time it happens.
Later, the boss also had to realize that this kind of configuration based design is great, but it is not good for product people to contact, high learning cost, no business logic correctness check mechanism. This does not make us need to redesign the system, based on user interaction platform design scheme came into being.
The main core of the system design is to realize the support of the contract in some specific scenarios by configuring the control of different scenarios of contract elements. In addition, the definition of contract must maintain a reasonable dimension. It is impossible to maintain the same contract in the same contract with differences between different parties or different financial schemes, otherwise the complexity of such scenarios creates the complexity of a single contract. In view of this, we need to find a balance to achieve a scientific and reasonable balance as far as possible, without dismantling more contract data, and at the same time keeping a single contract scientific and simple.
Capital, regional city, new/used car, license plate type (public license plate, private license plate) constitute the characteristic basis for business logic differences of the same contract in different business scenarios. For example, if there are different contents or values in the public and private license leasing contracts, we divide two different contracts instead of configuring conditional routing on contract elements. Through such a design, the data volume of the contract system platform can be further improved to maintain a balance.
Read: car incarnations of financial center | contract system
The tail language
From the beginning of my employment as a general back-end research and development, to the formation of a financial product team to take charge of the core system related to car finance, I was recognized and valued by my boss, which came from my boss’s recognition of my ability.
Through the repair man who “borrow” concept of talent training, further make our financial product team car finance business standing in line, the sense of responsibility and the mission of our team with us again and again system reconstruction, reconstruction is not over, not looking at don’t need to redesign according to his be fond of, it is the inevitable choice to adapt to the company’s business development.
In the past two years, I have been able to join such a company platform and meet a group of reliable partners for cooperation. Although the distance at this time makes us split up many places, the struggle of our financial product team will be remembered by me and every member of the team.