I am participating in the 2022 Spring Recruitment series of activities – project experience review, click to view the details of the essay activity.

Preface:

I started to develop C++ client under Windows system when I joined the company after graduation from university. Mainly responsible for the function and interface development of some modules in the project. At first, the interface was realized with MFC. Later, in order to develop the interface faster, more convenient and richer, the company began to use Qt to develop the interface. At that time, Qt was self-taught, self-taught for 7 days, began to do the project, in the later project development to further study, Qt skills gradually mastered.

I have participated in module development in the company for one and a half years, during which I have enriched and improved my skills and gained an understanding of the company’s business process. Later, I started independent development of the client.

It took me half a year to develop the first version of an independent client I was in charge of in the company. The development was completed at the end of the second year of the company and I got a generous project bonus at the end of the year. The second version was upgraded and expanded from the first version, which lasted on and off for a year. It was a painful year, and I learned a lot of experience and lessons in project development.

Project Introduction:

The main functions of the project include:

  1. The Http/Https communications. Used to communicate with the database, data acquisition, upload, download and other functions.
  2. Serial port communication. It’s used to communicate with hardware.
  3. TCP communications. Used to achieve communication between two client programs in the native.
  4. VLC video player package. It is mainly used to realize the custom video player function in the program.
  5. Hikvision camera use. It is mainly used to realize the functions of watching live broadcast pictures and videos in the program.

These functions are encapsulated into a separate module, and finally embedded into the client program, so as to achieve the low coupling, modular, reusable program. Therefore, it is recommended to develop projects with the concept of modular development.

Project Background:

The project mainly aims at realizing the functions of video teaching, professional skill training and examination organization for students.

  • The teaching part mainly realizes the video teaching, through the video player plays the network video, the student can continuously study, step by step study, while studying carries on the practical operation.
  • The training part mainly realizes the real-time acquisition and display of students’ practical operation data, prompts students to correct and wrong operation, and makes a video recording for students, generates training results at the end of training, and evaluates students’ operation.
  • The assessment part mainly realizes the assessment of students, real-time acquisition of student operation data, and video, and finally upload the video and assessment results to the server.

The business pain point of this project is that students can carry out step by step training while teaching step by step. Business logic is complicated here, and scene switching and jump are also complicated. But what we need to do is to think modular to the end, the more complex, the less coupling. In addition, this part of the requirements change is the biggest, because it has a strong flexibility, so it requires us to fully consider the occurrence of various situations.

Iii. Practice Process:

  1. The video player chose VLC because of its open source, functional and other advantages. I have also made other players before, such as Mediaplayer and OpenCV, but they have many problems and limitations in frequently starting and stopping, playing network videos and other aspects, so I finally choose to use Vlc player to achieve.
  2. The video player chose Hikang because of its popularity, SDK interface is rich, convenient, can be recorded and other reasons. The main reason is mainstream.
  3. The biggest headache in the project is the real-time communication with the hardware. Serial communication is adopted, because the hardware may upload more than 70 pieces of data in one second, and these data need to be displayed in real time, so interface optimization is very important. Firstly, the data is logically screened, the main data is selected, and then the data is displayed on the interface. The important problem is still the problem of lag, but after data optimization, interface optimization have been solved.

V. Summary and thinking:

During one and a half years of polishing this project, I have developed a clear understanding of a project from scratch. When building a project, IT is recommended to understand the design mode first, which determines the overall direction of project construction. When we started this project at the beginning, there is a clear direction, so don’t think too much, when project development later because there was a very large demand changes, the project also upgraded, so from the original for a skill teaching, training, examination, changed to realize multi-function teaching, training, assessment, And their teaching steps, training methods, assessment and scoring functions are not the same, but to achieve integration, equivalent to the entire client to rebuild.

However, there is no task that can not be completed, no problem that can not be solved, what we can do is to implement technology, technology can not be implemented, we can discuss other ways to implement, or change.

At work, in addition to efforts to do their own work, but also more learning, more improvement, so as to improve their work efficiency, improve their ideological realm, rather than simply do a tool to write code. Programs are also a work of art for us, and some people write programs that make people sigh that they are beautiful. In project development, I usually work in a team. During this period, my teamwork ability, common ability and independent consciousness have been greatly improved.

In the future, I will continue to polish myself, contact more new technologies, think more, keep a normal mind, balance work, life and health. The good life is the need to manage their own efforts, we refueled together.