Hi, everybody. I’m nuggets from spring.

Another year of gold, silver and four, want to change jobs naturally can not miss the students. The preparation for the interview and written test will also be put on the agenda. According to a recent work report, the popular choice for developers is still alibaba, Tencent, Baidu, Zijiedance, Meituan and other well-known companies.

When “object-oriented programming” becomes “DACHang programming”, if you want to enter dachang, in addition to fully prepared professional knowledge, if you can understand the internal technology, obviously you can adapt to local conditions, targeted preparation and study, know yourself and know the enemy, then you can win a hundred battles. At the same time, understanding the technical trends of big factories can also broaden their technical horizon and keep sensitive to the latest technology.

Nuggets of sauce has been organized by the major manufacturers of technology sharing, easy to read once.


Bytes to beat

  • Optimization practice of Douyin BoostMultiDex: Reduce the initial startup time of APP by 80% on Android versions

As we know, Dalvik VIRTUAL machine is the Java running environment used by devices with lower versions of Android (4.x and below, SDK < 21). The biggest problem compared to the older version is that it takes a long time for the first cold boot after installation or update. This can often take tens of seconds or even minutes, forcing users to face a black screen before they can use the APP properly. This is very affecting the user experience.

The root cause is that it takes too long to install or upgrade MultiDex for the first time. In order to solve this problem, we mined the underlying system mechanism of Dalvik VIRTUAL machine, redesigned the processing logic related to DEX, and finally launched BoostMultiDex, which can reduce the black screen waiting time by more than 80% and save the upgrade installation experience of Android users with lower versions.

  • Polish and application of front-end microserver in Bytedance

Traditional front-end services are usually integrated on one site based on service lines. As the service complexity increases, the package size rapidly becomes too large. Adapting to this change often requires more developers and a more fine-grained team organization. In group development, everyone’s modules are decouple to their own completion, and when they go online, they run together, resulting in endless branch merging and code rollback, which will cause a sudden drop in cooperation efficiency. That was the problem toutiao faced in ’17.

This paper discusses the application of the micro front end in Bytedance, and mainly analyzes the concrete implementation steps of the micro front end and its use in the past two years. The analysis part mainly talks about some practical problems and our response, and the landing situation emphasizes the realization process. In particular, I talked about many of the microfront-end cornerstones that must be provided in our concept, which are almost necessary and preconditions for using a microfront-end as an infrastructure.

tencent

  • How to promote the front-end stack: Tencent Serverless front-end landing and practice

The content of this article is compiled from Tencent Serverless technology expert Wang Junjie’s speech at GMTC 2019 Shenzhen station. Serverless is a hot technology at present and is considered to be the future direction of cloud computing development. It has many advantages such as o&M free, reduced development cost, automatic expansion on demand and so on. Especially in the field of front-end research and development, using Node to develop cloud functions can make front-end engineers more focused on business logic and realize the role change of full-stack engineers.

However, the existing development mode, tools and scaffolding have been standardized and streamlined, and the stock business is running stably online. How to integrate Serverless into the existing development mode and tools? How to combine Serverless with current business? This article will try to give an answer.

  • Real-time rendering is Not a Dream: Optimizing the rendering performance of Flutter surrounding textures through shared memory

We learned that Flutter provides a mechanism for sharing native textures with flutter for rendering. However, because the data type of Flutter to obtain native texture is CVPixelBuffer, the native texture needs to go through the GPU->CPU->GPU conversion process and consume extra performance, which is unacceptable for real-time audio and video rendering.

Our solution is to modify the code of the Flutter engine to connect the GL environment of the Flutter and the native GL environment through ShareGroup, avoiding the need to go around the CPU memory for texture transfer between the two environments. This solution solves the memory copy performance problem, but exposing the GL environment of the flutter is a risky operation, which also adds complexity to future flutter rendering problem location. So, is there a perfect, easy solution? The answer is to take advantage of CVPixelBuffer’s shared memory mechanism.

Meituan

  • Micro front end in meituan takeout practice

The micro front end is a solution to solve the problems of engineering expansion, development and maintenance difficulties. As front-end business scenarios become more complex, the concept of a microfront has been mentioned more and more recently, and many teams in the industry have begun to explore practices and implement them in the business. As you can see, many teams have different solutions to various problems. Admittedly, the implementation of any technology depends on business scenarios before it becomes meaningful. Therefore, before describing the micro front-end practice of Meituan takeout advertising team, we will briefly introduce the business form of the advertising end of takeout merchants. At present, the system we develop and maintain mainly includes three ends.

  • Meituan takeout continues to deliver past life

Since its establishment in 2013, Meituan-Dianping’s business has been growing rapidly, with daily orders exceeding 30 million, making it one of the most important businesses of Meituan-Dianping. The business carried by Meituan takeout has developed into a takeout platform business from a single food business in the early stage. At present, in addition to catering business, flash purchase, errands, flash payment, marketing, advertising and other product forms of business have also been launched on the takeaway platform. The business team participating in Meituan takeout platform has also developed from a single takeout team to a multi-business team. Although each business team has a different business shape, they almost all have the same desire: can the requirements be brought online as soon as possible?

However, the release of Native apps depends on the update of the app market, and the cycle is very long, which is not conducive to rapid iteration and rapid trial and error of products. At the same time, as the platform side, we need to take into account the demands of each business team, and comprehensively consider how to establish what kind of model and supporting what kind of technical means, so as to achieve the best state and meet the demands of each business for shorter cycle and high-quality delivery. This article will first review the process of Meituan takeout from monthly delivery in the early days to biweekly delivery, and then from biweekly delivery to biweekly version delivery with weekly dynamic delivery. Then, from the historical practice of takeout, the key factors that need to be comprehensively considered for a good continuous delivery are discussed, hoping to be helpful or enlightening to everyone.

baidu

  • Baidu App network depth optimization series “A” DNS optimization

Network optimization is a recognized deep field in several major technical directions of the client, so Baidu App to bring you a series of in-depth network optimization articles, including a series of DNS optimization, a series of two connection optimization, a series of three weak network optimization, I hope to help you in the direction of network learning and practice.

Baidu started from search, and the network architecture and deployment of the whole company are based on standard Internet protocol. At present, it is full stack HTTPS. In the era of mobile Internet, the overall infrastructure remains unchanged, but a lot of optimization work needs to be done on the client side.

  • UI series an Android multi-child view nesting general solution

In the version of baidu App in 2017, two sub-views are nested to scroll, which is used for the landing page of Feed (WebView presents article details and Recycle presents Native comments). The principle is to provide a UI container in the outer layer (we call it “linkage container”) to handle the continuous nested scrolling of WebView and Recyclerview.

At that time, linkage container had relatively large restrictions on sub-views, only supporting linkage scrolling of WebView and Recyclerview, and only supporting 2 sub-views in number. With the advancement of componentization process, in order to facilitate the decoupling of all services, higher requirements are put forward for linkage container, which needs to support any type and any number of sub-views for linkage rolling, which is the multi-sub-View nested rolling universal solution to be elaborated in this paper.

jingdong

  • In 2019, jd PLUS member front-end development road

As time flies, 2019 is a fleeting year. This year has been rough and full for the students in the front of PLUS membership program. As Bai Yansong said, they are both happy and painful. Looking back, we gradually stabilized our position after a flurry of confusion with the continuous access of cooperation rights from different industries, the demand of the June 18 promotion and the Double 11 event, and the white page on the first screen of some models. While fulfilling daily requirements, based on the original framework, the stability, loading, experience, development efficiency and other aspects of the project have been consolidated.

In 2019, it has supported more than 90 large and small requirements. It is mainly divided into four categories: product upgrading, cross-industry cooperation, promotional activities and urgent needs. Among these requirements are the demands for new user benefits of classic cards, such as health, reading, delivery coupons, and 95 percent discount merchandise benefits. Also greatly expanded and other different industry, such as Tencent video, Ctrip travel, cool dog music and so on. In addition, there are performance optimization and user experience optimization initiated by the R&D side.

  • Jingdong wechat shopping home page performance optimization practice

Jingdong wechat shopping home page (hereinafter referred to as wechat home page) used to be the first-level entrance of wechat shopping (currently replaced by Jingxi small program). It has always had high requirements for performance. This article will introduce some optimization experience of wechat home page.

Generally speaking, the product is iterated in the following way, I think the starting point of the cycle should be “to collect user feedback”, we optimize the basis of the page and an important source of the goal is the user’s feedback, so we said that web optimization from the web monitoring began to talk.

Jd’s front-end monitoring system mainly involves two systems: speed measurement system and intelligent monitoring platform.

Ali.

  • Alibaba’s Kubernetes application management practice experience and lessons

Today, Alibaba maintains dozens of large-scale K8s clusters internally, the largest of which is about 10,000 nodes, each serving tens of thousands of applications; We also maintain a K8s cluster of tens of thousands of users on the Kubernetes service ACK. Once we had solved the scale and stability issues to a certain extent, we found that managing applications on the K8s was a big challenge.

Today we are going to focus on these two challenges:

  • For application research and development, K8s API is too complex for simple applications and difficult to get started for complex applications.
  • For application operation and maintenance, K8s scalability is difficult to manage; K8s native apis do not fully cover cloud resources. Overall, our challenge is how to provide a true application management platform based on K8s, so that r&d and operations only focus on the application itself.
  • Idle fish revealed | second level of real-time data processing is how to realize?

At present, the actual production and deployment environment of Xianyu is more and more complex, which is horizontally dependent on various service disks, and vertically dependent on the operation environment is more and more complex. When service problems occur, whether the root cause of the problem can be located in the mass of data in time becomes a severe challenge to test xianyu’s service ability.

Online problems often take more than ten minutes or even longer to find the cause of the problem, so a rapid automatic diagnosis system needs to be applied, and the rapid diagnosis is based on a high-performance real-time data processing system.

This real-time data processing system needs to have the following capabilities: 1. Real-time data acquisition, real-time analysis, complex calculation, and persistence of analysis results. 2, can handle a variety of data. Contains application logs, host performance monitoring indicators, and call link diagrams. High reliability. The system has no problems and data cannot be lost. 4, high performance, bottom delay. The delay of data processing is less than 3 seconds, supporting tens of millions of levels of data processing per second. This paper does not deal with the specific analysis model of automatic problem diagnosis, but only discusses the design of the whole real-time data processing link.

After reading the technical articles of the big factory, I hope that we can broaden our technical horizon and have some help for the interview of digging friends. You can also record the process of going to the big factory and share it with friends who need it, so that we can communicate and make progress together.

At the same time, nuggets sauce with you notice, during the interview season, nuggets community will continue to launch and interview theme related activities, you can be ready to be ready to participate.

Finally, I wish you all a smooth interview and a successful entry into your favorite company.