The original link

This year, I participated in THE D2 conference for the third time. The physical sensation is very different from the previous two years, but I also gained a lot.

  • Opening: front-end = rendering engine + Web standards. Front-end direction: ability + experience + ecology.
  • IoT: two scenarios + extended scenarios + own questions
  • Personal Growth: 5 broad directions at the front, and 3 key points
  • Cat super different perspective: Is the Web really Slow?

The opening

The first two sentences of Teacher Yuanxin are quite memorable

Front-end = rendering engine + Web standards.

In my understanding of him, the front end does not need to be divided into iOS and Android, Web and so on. If you look at the higher level, it is all a rendering engine + Web standard. Rendering engines, while probably native and Web, also include WebKit, Weex, React Native, etc. (I’m not exactly saying this).

I think the focus is on the second sentence, Web standards! This sentence reminds me of another sentence I saw earlier [1]:

In the mobile era, there is no more suitable way to describe interfaces and express business than HTML/CSS/JS, and the current smartphone GUI system is only a poor approximation and imitation of HTML. Weex over RN is in some sense a necessary product

So, taken together, the so-called technology that the front end does is all around the rendering engine and web standards.

With the core of the front end, how to build the future direction and system?

Ability + experience + ecology

  • Capabilities: More extensions of Web capabilities, such as: Front-end Push, offline, desktop touch, background processes, cameras, microphones, USB drives, etc. Some of these are things that PWA already does (including Service Worker, which iOS is also supporting), others, Chrome is doing pretty well, given the existence of Chrome OS.

    Of course, this includes other capabilities with front-end light, such as graphics, data visualization, IoT capabilities, management capabilities, and so on

  • Experience, I think, can be divided into:

    • The developer experience, in fact, has a lot of performance, in fact, also reflected in the engineering efficiency and development efficiency, such as: VSCode’s replacement of Sublime, as well as the recent Parcel packaging tool, go some way to addressing some of webpack’s pain points in development (although packaging efficiency improvements may be more critical), and much moreout of box(out of the box)libraryandThe moduleAnd more than ever before.
    • User experience, this can not be expanded too much, for the userfluency(Performance optimization),convenience(Rationality of product design),beautiful(Design visuals, don’t forget a D in D2) etc., the more you think from the user’s point of view, the more you’ll get.
  • Ecology refers to the development ecology, including open source, community construction, tool sharing, co-construction and so on. In particular, the construction of open source ecology also needs special wisdom to promote the process of open source. This was particularly touched by the cloud Community Developer Technology Summit [2] at the 2016 Cloud Conference.

There are a lot of dry goods at the beginning, and the level and perspective of the front end are also very high. However, I also missed a lot of other dry goods while discussing some problems with @Xiaohong. You can watch the live replay and experience it again.

IoT

The Internet of Things, this one kind of surprises me. At this D2 conference, I didn’t expect there would be a special session to talk about IoT. It has been 2 or 3 years since I first heard the word IoT. I don’t know what collision it can have with the front end.

Although I cooperated with students from The Department of Physics and Electricity to develop an Internet of things system in a chicken farm before, I also came into contact with their expertise in developing the underlying hardware (circuit drawing by myself, electrical board processing by others, components welding by myself), BUT I was involved in it as the front-end, background and upper computer after all. Therefore, Went to the venue to look for more front-end possibilities.

Come to the venue, the first is a variety of microcontroller: Arduino, Ruff, raspberry PI. Raspberry PI was heard more before, but Ruff was heard more in D2.

Ruff is an Internet of Things operating system that supports JavaScript development applications, providing software developers with an open, efficient and agile IoT application development platform, making IoT application development easier.

Two application scenarios

  • Cainiao’s in-and-out system requires the combination of camera face recognition, ultrasonic distance recognition, and, of course, order number scanning. It is worth mentioning that face recognition is put in the cloud, similar to SaaS, FaaS.
  • Intelligent building control, such as: Monday and Friday lamp control, a space to reach the number of wifi access, automatically turn on air conditioning temperature control. Here is more difficult, or the workload of the various devices of different protocols access. It is necessary to connect with various communication protocols of the last century, or proprietary protocols of manufacturers, as well as communication protocols such as Wifi, Bluetooth and ZigBee. There is also a development platform for docking in development: Xiaomi IoT Developer Platform)

An unfolding scene

After listening to IoT’s speech, I thought of the application scenario of Beacon. I heard similar application scenario in WWDC conference in 2013, when Apple launched the concept of iBeacon.

Beacon technology is mainly used for precise indoor positioning, which is different from outdoor positioning based on base station, Wifi and GPS. Beacon technology relies on Bluetooth for indoor positioning. And rely on indoor precise positioning, in the mall to carry out more imaginative marketing space.

Your own unresolved questions

As for IoT, there is still a lot of room for imagination, but as a front-end, in the foreseeable future, the development path will be increasingly narrow 6, how to find a breakthrough? How to make a better cut? What can we do? What are the landing scenes? What value does it bring? And, more importantly, how to compete with traditional physics and electronics students? Students of physics and electronics, have knowledge of physics, circuits, electronics, in general, use C, C++ to program? What different advantages can our front end have? How to seek the differentiated development among them?

Personal growth

@Cen ‘an Teacher share.

The front direction has five major directions

Enterprise middle background Developer services Pan NodeJS The technology graphics
Component communication and protocol communication

Standardization: DSL protocol, data interface

Intelligence: from design to code
1: end-to-end to cloud integrated application solutions

2: OS system deep link, closed-loop ecology

3: ISV development and upgrade
One base line + one breakthrough point

Base line: Node application governance

Breakthrough: IoT
Weex + Webview



Weex: Performance, IoT capability, internationalization

Webview: kernel, rendering engine, new standard
Visualization + interactive ability

Interaction: container, engine, framework, platform

Visualization: intelligent, data linkage

After the meeting, I talked with Teacher @Cen ‘an about my question about IoT. He thought that the breakthrough of pan-NodeJS in the front direction was the question about IoT. I would like to briefly write my feelings and my understanding after listening to the teacher:

  1. First, we need to move beyond the limitations of the current front-end technology stack and business. Obviously, with the current front-end knowledge stack and capabilities, there is no particularly good entry point into the IoT space. So, a good suggestion is to build up the knowledge base you need to enter IoT in your current state and be the ones who are destined to be eliminated.
  2. Second, there isn’t a good technical solution to get the front end involved, or even likeTmall genie's screenless device, the role of the front end is more awkward, so, in short, a blank, waiting for their own to explore a front end of the road.
  3. If you want to compete head-on with the students of BIO-electronics, why not develop differently and do the work of connection? Since the end is firmly in their hands, we use them as the basic service, and we use ourselves as a connecting role, the ability to integrate the end? Be a link to a user? Where there are users, there should be a front end, right?
  4. SCM development can not do or do not come, we can do embedded system? Can we use Ruff as the end? Can you use an Android phone as an end? When doing the feasibility of the program, is it necessary to do SCM and low-cost hardware? Can I do some IoT development on Android phones, and then let the students of BOTEL do the circuit design and reduce the cost of hardware in the mass production?

Three key words for personal growth

  • Do it: Do it purposefully, in stages, to the extreme
  • Thinking: Thinking is the core. WHY is sometimes more important than HOW
  • Vocalization: summary of execution and communication of thought

My own understanding of it is that when you do it, you need to think more about the logic behind it and what problems it solves. A lot of times, technology selection or technology exploration, optimization, etc. needs to be aligned with the team’s goals or the boss’s ideas.

Speak up. I’ve heard a lot lately about the need for transparency in work, more sharing with team members, and technology sharing. More said than done, therefore, the three points do not unfold.

Cats have a very different perspective

@ By the Web practice of the school teacher Cat Chao, using the U4 2.0 kernel to smooth out the compatibility of Android 4.4 and above, and improve the Web performance more than a little. It happened that some students asked about the selection of Web and WEEX technology, and the @ teacher gave a good answer.

In the first loading, Maochao optimized the Service Worker. Through the UC kernel, the Service Worker itself can be pushed into the kernel and resources can be loaded in advance for the first optimization. In secondary loading, the Service Worker’s Cache capacity also provides a lot of acceleration.

After the meeting, I had a brief talk with @ teachers about performance pain points: memory reclamation of long lists, or problems of cell reuse, etc. In his opinion, the performance of long lists is not a big problem. Instead, he gave me a pain point where tabbar scrolling can’t hold up.

Other little details

  • The user experience of many PPT with programmer background is not particularly good in terms of color matching and font size, such as black words on blue background and large sections of small font code. I have also made similar mistakes when turning to normal pre-lecture, so the body sense is also relatively strong.
  • A good, impressive presentation is not about consensus, but about a different point of view. Even if the same point of view, also need to have different angles or dimensions, to interpret their own different points of view. The same idea can be packaged into different products.

References

  1. Weex team leader: Weex and Weex open source in my eyes
  2. Cloud Community Developer Technology Summit — Open Source Technology Special session
  3. Ruff document
  4. Xiaomi IoT Developer Platform
  5. Estimote, what is iBeacon and how does iBeacon work
  6. Front-end career crisis sense by yourself