Engineering Lion Readme: How do we make chromium M35 kernel browsing

Source: Internet
Author: User
Keywords Readme make we chromium
Tags based browser browsers change code code quality community continue
Absrtact: For this kernel upgrade, we spent a lot of energy, but also have many feelings. The following simple share, I hope to discuss with colleagues. Why do two development based on chromium? There will certainly be a lot of people wondering why the domestic dual-core browser

For this kernel upgrade, we spent a great deal of energy, but also a lot of feelings. The following simple share, I hope to discuss with colleagues.

Why do two development based on chromium?

There will certainly be a lot of people wondering why domestic dual-core browsers are all two development based on chromium open source projects. In fact, the root cause is that the chromium team, based on Google employees, has done a lot of technical innovation on the project. such as DNS Prefetch, SPDY, Quic, pre-rendering, multi-process architecture, PPAPI, V8 JavaScript engines are good examples of technological innovations.

The two-time development strategy enables these innovations to bring users to a better Internet experience while avoiding the money of reinventing the wheel.

Even so, our team has a significant difference in the implementation of two development concepts with other vendors. Some manufacturers only consider the domestic market, while others consider the global market, so we also need to consider language localization in the two development of many transnational factors.

Why quickly follow up the development of chromium project?

Our team will quickly follow up the development of chromium projects as an important technology development strategy. At the user level, each large version of chromium will be optimized for performance, software architecture, and security, and will fix some of the flaws that seriously affect stability and security, and quickly follow the pace of development that means allowing users to enjoy these benefits as soon as possible. From a technical point of view, rapid follow-up also has great benefits, here are four points:

1th, can gradually improve the software development efficiency. Because the scale of the chromium project is very large, increasing the efficiency of development is an eternal topic of the project. To this end, the chromium team has been working to improve the efficiency of Project compilation. For example, when we use chromium M32, we can only compile with visual Studio 2010, and when we upgrade to chromium M35, we complete the compilation with Ninja, a more efficient tool.

Also, now we are all using GYP to achieve Cross-platform project source file management, according to the Chromium team planning, the end of this year will be more efficient GN to replace it, if we can not follow quickly there is no way to share this benefit as soon as possible.

2nd, it helps to improve the efficiency of solving software defects. Once we discover chromium's flaws, we will report defects to the chromium community in addition to our own immediate fixes, accelerating the resolution of the problem in the form of collaboration with the open source community. If the kernel version does not follow quickly, the chromium community will not be able to get their help because of the flaws in the old version.

Some of the bugs repaired by our team will be submitted to the chromium open source community by informing the solution or direct upstream. This not only helps the community solve the problem, but also facilitates our next kernel upgrade, because if you do not submit the code to the chromium code base, the next time you upgrade to a new version to do the code merge, you may face a new conflict point.

The 3rd helps to continuously optimize code quality. Each new version of the Chromium project has a significant amount of code change from the previous version, and it's important to keep improving code quality. Assuming that our software was originally designed to be based on the chromium version of the technical solution, when the chromium in the new version of the technology is optimized, the upgrade means that we have to adjust the original design to adapt to the new technical solutions. This forces us to follow the footsteps of chromium to continue to improve their own code, to some extent to help avoid "technical debt" high.

The 4th advantage is that quick follow-up helps the site's advocates apply the new technology as early as possible on their site. This is also helping to promote the popularization of new technologies in a way.

Although the rapid follow up of the development of chromium can bring many benefits, but not every vendor can implement this technology development strategy well. The reason is that rapid follow-up is required from a technical level with excellent software design to protect.

For example, we did more than 3600 changes in the native code of chromium, with more than 2,500 files added, every kernel upgrade would be a disaster for the development team if the changes were not decoupled from the chromium native code through excellent software design, Because the workload is really too big.

Another big leap of Chromium 35 is to realize the overall aura of the graphical interface. Aura is a window management framework for implementing interface controls such as buttons, scroll bars, and dialog boxes on the interface. Before the aura, chromium was encapsulated for each operating system, and the upper application was built directly into the package to implement the functionality across the operating system.

With Aura, Aura is designed to cross the operating system, and the above application is built on aura. More importantly, Aura has made a great simplification in software design, and achieved the use of graphics card GPU to draw the interface. The advantage of drawing with the GPU is that we can efficiently achieve some of the more dazzling effects on the interface.

Some of the detours we've gone through in the quick follow up chromium project

In fact, in the browser computer version of the development process, we also took some technical detours. These detours, so that we are very hard to stay for some time, but also let us achieve a qualitative breakthrough. Here I would like to share a few:

First, the biggest detour is to ignore the Chromium software architecture. As a result, engineers are confused about modifying code and adding files, and the program's maintainability is poor. This painful experience gives the team a deep sense of how important it is to maintain a clear software architecture. At present, the entire team in the day-to-day work of the importance of this, the sensitivity of such issues is very high.

Another detour is reflected in the way we do things before. In the development of software functions, engineers were easy to get the demand on the basis of their own understanding immediately open to dry, so much to do "reinvent the wheel" thing. Later we found that the development of new features required many of the basic modules chromium already, so we in the UC Browser computer version of the 1.0 version of the development process will continue to "invent the wheel" to remove, with the Chromium project ready to replace.

The habit that our team now develop is to look at whether there is a reusable part in the chromium before you do it. This method of doing things on the surface seems slow, because it takes time to study and study, but in the long run, the advantages outweigh the disadvantages, in addition to this method can deepen the familiarity of the Chromium project, the written code easier to upgrade to the new kernel.

Finally, I want to share a detour is a software design decoupling method. One of the decoupling methods we used previously was hard to standardize, and it was difficult to merge with Chromium's new kernel. Now the decoupling method is easy to standardize, so there is always a "bright lighthouse" in the process of merging code for each conflict point.

In fact, the decoupling method we use is simple, in a nutshell, "We always add on the code level, whether it's adding, adjusting, or removing functions on top of the chromium." This sentence is not easy to understand, but I can only disclose this level.

My role change and some ideas about technology management

In the past days, I have also completed a number of role changes in this project. When I first applied for Alibaba, I wrote on my resume that I would like to become a technical expert in the Internet industry in the future, when I asked a question-"What if you need to manage?" "I replied:" As long as you can play a greater role in their own will be considered.

Taobao browser to join the team at the beginning, although there is no definition of my management role, but at first I was conscious of the initiative to assume part of the technical management work, but at that time to their own positioning is the architect. Today, I officially assume management responsibilities on the team because of the needs of the team because it gives me a greater level of influence.

There are a lot of trivial things in technology management that make working time more fragmented. In my opinion, it is necessary to have a good grasp of technical details in order to do the basic technical management work, otherwise it is difficult to exert the management efficiency. In addition, only understand the technical details, can better understand the development of engineers, otherwise it is easy to make a talk about technology to say "This realization is very simple" problem.

For me, mastering technical details is a key way to understand and appreciate engineers. I recently encountered a problem with the Chromium M36 kernel upgrade. In the process of solving it, we found that our team's small group of students in the previous solution, and his implementation of the technical solution is extremely simple, simple to comment out the Grit tool in one line of code to achieve a very important function. As soon as I understood this detail, I immediately got up and went to his station and told him that the technical plan was really wonderful!

If it wasn't for my attention to technical details, the light from his final change to a single line of code is likely to come to the conclusion that "this is very simple," this one-sided conclusion, in addition to the killing he may spend a few hours to study the best plan, but also let me lose a chance to appreciate him.

As a senior engineer, I know that the way to develop a good engineer is not to use stocks, wages can be achieved, nor to give them "chicken blood", but let them in the work experience a sense of achievement, professional standards of continuous progress, from the management level to understand and appreciate them is a very important part. Because of this, I have clearly stipulated in the entire development team that the grass-roots technical manager must continue to have the technical contribution in the work.

The greatest pleasure in technology management is to see the team constantly improving, feel that people trust in themselves, to hear their own ideas are used to discuss issues, see their own working methods in play, this feeling is really good, very enjoyable, nothing than to solve technical problems brought by "cool" inferior. Of course, the process will also encounter difficulties and pressure, but in this mutual appreciation and understanding of the team atmosphere can be overcome.

As a technical manager, I think the heaviest burden is responsibility. I sincerely hope that engineers will continue to make progress in this team, so that in future careers, no matter which team they are more competitive. In order to achieve this goal, it is necessary for technical managers to continue to provide the environment and help for their growth in the work, which also prompted me to continue to make a difference in my work.




Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.