A week ago at the boiling point, the Nuggets team invited @Zongxin (Yu Jia), the Leader of The Xianyu technology team, the architect of the Xianyu client, and the author of Flutter Evangelist, to do a three-day Ask Me Anything (AMA) activity. We’ve compiled a selection of questions and answers from our users.

About Zongxin:

  • Xianyu Technical team Leader
  • Idle Fish client architect
  • Flutter preacher
  • Nuggets homepage: juejin.cn/user/993614…
  • Technical team column: juejin.cn/user/125749…

Community partners ask questions

What do you think of the current concept of a big front end? – @ A wisp of broken fluid hidden half of the frost

I would like to ask You two questions:

  1. What do you think of the current concept of the big front end? The big front end is big because it involves a wide range of areas. What is the boundary of the front end? Are the front and back ends bounded by Nginx? Can the front end do everything before Nginx? On our side, we still have the concept of a big front end, and we’ll even touch the back end of mysql and things like that. But I think inside Ali Group, it doesn’t seem to have this concept, it seems to be the client terminal team, the front end team.

  2. The reason WHY I ask the former question is actually because in the concept of big front end, it is not easy for the leader of the front end to lead the good students of the client side to move forward, or the leader of the client side to lead the good students of the front end to move forward. Although there is a joint point between the two, there is a big difference in depth. How does Alibaba handle this internally?

1. I actually think work breakdown, shall be for a reason, so actually aimed at the front of a big concept, on the one hand I hope to have a part of the front of the client’s classmate knowledge, broaden their border, on the other hand, I am fear of this thing, once I thought my outstanding team, a month can switch to the whole team weex, But in the subsequent process, with the in-depth understanding of the knowledge system, I found that we could not solve many things in a short period of time, for example, we are not good at the gameplay and operational activities related things, and we are in weeX code specifications and tool system construction, To be honest, we still need the help of our front-end team and our own WEEx experts. So I think, especially in large companies, there’s still a division of labor as long as there’s some kind of specialization in certain scenarios. That’s why the company didn’t say everyone went full stack. However, we can take a step further in the scenario of their own stack and create more possibilities. For example, the client side can use weeX technology in some products, such as shops, such as Idle fish number. In addition, can students learn something related to AI, and use tF-Lite engineering system in the end? In short, I hope the big front-end concept, should have some cross-stack capability, but do not have to be very specialized, still have their own expertise in their own field.

2. For a leader, while constantly assuming responsibilities, this problem will always occur. Imagine that I only worked on iOS and iOS team before, and then I worked on Android. I still have to be good at it, but as A TL, I don’t think I need to be the first in the team. Otherwise, the team you lead must be poor and everyone is inferior to you, and you will be the ceiling of the team. Therefore, in terms of technology, TL should have its own professionalism and methodology. Business TL must have breadth, then there is my boss, the service side, did the client but I certainly do, but the breadth of the above, he and broken the ability to see the business point of view, to be honest I several high grade, that this is he gave the team’s uniqueness, so I think in the future if I want to be a good TL, I also need to add these content, As for the depth, I think I can find more students who are more professional than me and do better together. The most important role of TL is whether it brings an imaginative team to the company. This should be ali’s requirement for TL, gathering people to accomplish things and borrowing things to cultivate people

When face big factory, resume, interview should pay attention to what point? In other words, what do you look for in a candidate? The square root of three forever

Hello, the android development that the mechanical major that MY undergraduate course reads turns, be in a start-up small company of less than 20 people now, excuse me the programmer that resemble me this kind of non section class one’s previous experience, when face big factory, resume, interview should pay attention to what point? Or to put it another way, what do you look for in a candidate? My education background is 985 but not computer major

Hello, I believe this is concern, many students the school recruit students if there is a problem I speak again alone, club recruit students, in addition to the requirements on the experience and skills, said I want to highlight two points, one is to want to do the things have their own thinking and to summarize, for example, if you do the project, but where, have what problem, the follow-up to how to solve, If you cannot measure it, how to improve it. If you cannot measure it, how to improve it. Second, curiosity, in addition to your job, what do you want to know what are you doing in upstream and downstream of the classmate, what is the overall architecture of business, your company on the side of the core competitiveness of the code is how, why do so, what is the industry trend, ever try, how to see the future of these techniques. When I interview each student, I sincerely hope that everyone can pass, because we are really short of people, but maybe many students do not have the awareness of the above two points after work, resulting in the subsequent accumulation will be relatively slow, here I tell you, I also hope to help more students achieve better themselves, find a good job.

What were the considerations for using Flutter in the Idle Fish client? ─ @ liutao

Hello, when a new technology is just released, there are usually many unknown pits to be filled, which is quite risky. Therefore, many technical teams will not choose the new technology to develop business in the first time. May I ask what was the consideration based on which you and your team chose to use Flutter in the Xianyu client at that time?

To be more precise, we followed up on Flutter last year when Flutter was still in alpha. At the beginning, we did more pre-research work, such as making an internal international version of Idle Fish, which was completely based on Flutter. We went through the whole tool chain and the internal principles of Flutter. In my opinion, The design idea of Flutter is relatively advanced. Compared with other cross-platform frameworks, flutter has great advantages in UI compatibility and performance. In addition, we have established a long-term and perfect communication mechanism with Google’s Flutter team, laying a solid foundation for subsequent implementation. I see some future cross-terminal scalability with Flutter. As far as I know, the Google team has already done a Demo of Flutter on The MAC. It remains to be seen if Flutter can be applied to other desktop operating systems and iot devices. Based on the above reasons, we chose flutter to try and land on the Xianyu business line after a year’s investigation. At present, it seems that flutter will have a few compatibility problems, but overall, it is close to large-scale commercial application.

How does the mobile client work when using Flutter development? ─ @ NeXT

How does the mobile client work when using Flutter development? Will there be someone working on Flutter development or will Android and iOS be involved in Flutter development and learning? Will the wider use of Flutter be considered?

A very good question. In the process of using The Flutter, xianyu adopts the scenario of mixed engineering, so it is true that someone is assigned to write the flutter, and some students still develop the native code. Therefore, in this process, if we want to smoothly switch the technology stack, we have made great efforts in engineering transformation. We have two development modes for native and flutter students, which is easy to switch. For native students, they are unaware of the existence of flutter. Of course, we hope to gradually switch to flutter in future business code testing.

Why does Alibaba keep reinventing itself based on other technologies? — Linghu onion

Why can’t Alibaba produce frameworks/tools like React, WebPack, Babel, Flutter, etc., which have been modified based on other technologies?

I contact with Google team, can really see, compared with the world’s top companies, our technical level still has certain gap, indeed I think nothing, to face the gap with excellent team, to continue efforts to learn their advantages, bring back their advantage, in addition, the company in engineering and technology commercialization, I think it’s done well, and as long as it generates business value, it’s the fastest way to build on these existing architectures.

Why doesn’t Taobao change its home page to Flutter? ─ @ Happy home

An unrelated question. Many people have regarded Taobao as the scoring software of the new era. Why not change the homepage of Taobao to Flutter?

In fact, taobao home page uses another template engine technology called Dynamic, which was made by my other colleagues. Compared with WEEX, IT is mainly responsible for template rendering, which is lighter. If you consider the scheme of home page, it is suggested that you also have a look at the scheme of Tangram from Tmall, which is relatively perfect. In my opinion, the initial loading of Flutter at this stage is actually slower and may not reach the loading effect of the home page. We are considering optimizing the loading process.

How to handle H5 link hops in a FLUTTER, data transfer and state preservation between a flutter and a native? Comedy that can’t do anything 6

How to handle h5 link jump in a flutter, data transfer and state saving between a flutter and a native?

1. The first question is that there will be a unified OpenURL method in my scene. On the Native side, we should all be clear about the call of the flutter. Dart’s OpenURL method can be called to native openURL for unified processing through the channel mechanism. Whatever links are left, they will be processed in the same way as Native.

2. The data transmission and state preservation of the second question are difficult, because Flultter generates a copy of all the data transmission of native, so the state of Native and flutter are two copies, which are not synchronized. At present, we mainly adopt notification if there is any change, but it is not elegant to process. There is a better solution to communicate with us. My own hope is that it would be better to have one side of the future, no matter the flutter or the native. Theoretically, it could be the flutter, because the future wants to move the rest of the native code.

Generally, what kind of conditions do you need to enter the 19th class? ─ @ my alter ego

I am also in charge of the school recruitment of Xianyu. For most students, it is suggested to apply for positions related to engineering, such as Java RESEARCH and development, client development, etc. The requirements are generally three points: 1. Basic, must be excellent in key disciplines, have a solid grasp of data structure/algorithm/operating system principle/computer network, or have special expertise in a certain field 2. Enthusiasm, understanding of widely used technology, own learning path of technology, strong curiosity in a certain field, and willing to put a lot of extra energy, and finally achieve good results 3. Achievements mainly refer to focusing on a certain field, having an in-depth understanding of the application of technology in practical scenarios, being able to solve practical problems by focusing on the field, or having important academic papers and patents.

Meet two students is the minimum requirements, meet three students generally more appropriate. I hope I can help you.

How do you manage a technical team? What holes have you stepped in when it comes to team management? ─ @ 110

Mr. Zongxin, how many people are there in your technical team? How do you manage a technical team? What holes have you stepped in when it comes to team management?

Our big technical team is about 70 people, which is still a relatively small team. Of course, we hope to recruit more excellent students as colleagues this year. My current team is less than 20 students, all of whom are recruited by me.

I think the technical team of management is relatively simple, some of the more important is to pay attention to the growth of the people, they need in the framework of large target is determined, in the process of decentralization and thinking ability training team, the team students on important things form their own judgement and decision, guide their thinking, rather than directly to their conclusion, actually it is very easy to sum up, Everything is based on the growth of the team as the starting point of thinking, and constantly communicate and focus, with the heart of responsibility to everyone, should be able to do well.

On grass, I think I’m the bigger mistake is that moment, I just take team themselves p7, team is the p5 and p6, most of the classmates in the new students, found that a lot of things they can’t do it, so he take the initiative to put a great migration of the architecture transformation all did it by himself, and take a lot of business, but the final result, New students actually did not take a lot of pressure during the probation period, no rapid growth, to the subsequent process, the performance is not good, the results I always think of two classmates have guilt, I feel that if the requirement to them, rather than with the hen when they, they may have a better development, The old hen cannot bring out the male eagle, so I have changed later. I know that TL is more about guidance and training, rather than direct conclusions. Besides, you should allow subordinates to be less productive than you in a certain period of time, and learn to let go.

I also watched some courses last year, and I recommended Mr. Ning Xiangdong’s tsinghua Management course, which was very good. It works not only for the first-line TL, but also for the middle and senior management of the company. The strategy map in the later courses is a very effective method.

Idle fish recruit iOS? What are the specific job requirements? ─ @ Zhou Shang

Hello, big guy, I am looking for a job in iOS recently. If it is convenient, could you please share the interview questions you mentioned in the interview before? And the idle fish recruit iOS? What are the specific job requirements?

Myself in ali internal finishing more iOS interview questions, but as time goes by, one is the comparison of the knowledge has been out of date, another oneself on the recruitment of people’s thinking has promoted, may I think the interview topic itself doesn’t suit to find the right person, so more from the very nature of the people go up to see what’s it like in a man.

We have the position JD of idle fish, which describes some basic knowledge requirements and job requirements

I’m going to make up some idle fish or ali’s soft claim here

Hope I can say that the idle fish what’s it like in iOS development 1. The good foundation, some basic knowledge of iOS system basically want to know, but maybe I shouldn’t be asking you questions directly, I hope you can do in their project or practice is reflected, I asked memory management related knowledge, for example, if you only know the principle of it, but it is useless to, In my opinion, it is basically rote memorization, without basic knowledge of projects or technical solutions. I think it can only work for students who have worked for two years, but not for those who have worked for longer. 2. If you are curious, it is a good habit to pay attention to the latest technology, whether it is WWDC or the key project on Github, and pay attention to some of the original things, but I hope to take it one step further and address your concerns. For example, I think most iOS developers now have some knowledge of RN and WEEX, what the principle is, whether there are any extensions, whether there are any holes in it, and I think it’s great to have some different thoughts about it. 3. Strive for perfection, especially in performance and stability. We can test not only the foundation of knowledge system, but also the systematicness and professionalism of knowledge system. For example, everyone looks at performance optimization differently. What your overall solution is, which parts you focus on, how the results are measured, and whether or not your approach can be precipitatedas an infrastructure are all important. You can actually see the difference here between P6, P7, and P8.

Therefore, I hope to find a student who has a good foundation/curiosity drive/ingenuity/combination of theory and practice with results.

Which places in xianyu App use RN, and what do you think of the recent abandonment of RN by Airbnb and Udacity? — @ZYf digging for gold

There is no RN in Xianyu App, but many pages use Weex. In my opinion, whether Weex or RN, let’s look at cost 1. Learning costs of front-end architecture 2. Debug and compatibility costs 3. Infrastructure construction costs These three costs are unavoidable, so if you think these three costs outweigh your benefits, do not use them. For idle fish, 1. My team has specialized WEEX experts and some students with front-end knowledge system. 2. The infrastructure is based on alibaba group’s infrastructure, and there is not much that needs to be rebuilt. In fact, these two have determined that the cost is not so high in the process of use. At present, the highest possible problems are debugging cost and compatibility, which are acceptable for the time being. 1. We have a set of generating tools from Sketch to code, so we wrote a lot less code for UI restoration. 2. Three-terminal consistency does bring benefits to some businesses. In particular, idle fish need to be put in multiple external places. Whether it is hand shopping or external putting, I will write a code, which will definitely cost less, so it depends on scenario 3. As a front-end use, the performance will be much better than h5, front-end use process also has some benefits. In equilibrium, we will continue to use it in the corresponding scenario.

To extend flutter here, the cost might be 1. Learning cost of FLUTTER 2. Debug system and engineering system cost 3. There is no mention of compatibility here, because from a UI restore point of view, Flutter is definitely more compatible than WEEX, at least at both ends. Dart is similar to Java in terms of learning cost, which is easy to learn. Basically, it will be easy to learn after a look. The tool system is similar to Java, and the team has mature Android students who can completely cover the cost. When the IDE developed Flutter, it was relatively close to the client-side development experience 3. There are infrastructure costs as well, so we are now thinking about how to build an infrastructure that can support multiple systems, including Flutter/WEEx/H5 / Native, that is, unify underlying capabilities through the architecture without having to duplicate them. Also, we have the tool sketchToFlutter. Part of the code can be omitted. Although there are still some bugs, we will continue to optimize 2 in the future. The two-end consistency doubles the efficiency. In this process, as long as we handle compatibility problems well in the early stage, there should be no compatibility problems in the later stage. 3. High performance, the whole Flutter performance is very good, native performance

In this sense, flutter is another good choice for native side needs.


This issue of AMA community partners raised a lot of practical questions, also thank You for your serious digging friends answered a lot of questions. For more questions and answers, go to AMA for reading and discussion.


Next up

The next AMA guest will be Rand from Tencent NOW live technology team. Please remember to prepare your questions. At the end of the next AMA, the guest will designate a friend who thinks he has raised good questions to present a book called “Code Farming Revolution”. The official will be based on the question of who gets the most praise to give him a copy of “Code farmers turn over” yo ~ next issue AMA: 2018.07.25-2018.07.27 see you