Nuggets Daily is dedicated to sharing quality in-depth technical content: front end, back end, Android, iOS, product design, tools resources and some fun stuff.

The front end

  • In-depth analysis: How to implement a Virtual DOM algorithm

    This article will teach you how to implement a basic Virtual DOM algorithm in 300~400 lines of code, and try to explain the idea of Virtual DOM algorithm as clearly as possible. I hope that after reading this article, you can have a deep understanding of Virtual DOM algorithm and provide some new thinking for your existing front-end programming.

  • Full decryption of JavaScript arrays

    Array is a very important data type. It has simple syntax, flexible and efficient. Arrays play such a crucial role in most programming languages that it’s hard to imagine a language without them. JavaScript, in particular, takes advantage of arrays with its inherent flexibility and enriches their usage scenarios. It’s no exaggeration to say that you can’t write JavaScript without a deep understanding of arrays.

  • Vue 2.3 Complete guide to Server Rendering

    Vue official server rendering guide, English version.

The back-end

  • The way to solve the Bug – String packet Bug

    I am very keen on Bug solving, and I am good at the (network/protocol) part, so I am often called on to solve some network IO bugs. Now pick out a case, write analytical thinking, in order to provide readers, I hope readers in the future work to be able to tread less pit.

  • Kafka data is processed using the Structured flow processing API in Apache Spark 2.2

    In this paper, a practical example is given to demonstrate the method of Spark Structured Streaming and Kafka integration

  • Based on the Scala | nuggets technology product development practice essay

    During development, we upgraded From Spark 1.4 to 1.5, and Benchmark’s performance was significantly improved. Spark 1.6 has significant improvements in Memory management, with the Execution Memory to Store Memory ratio being allocated dynamically, but as tested, the main performance bottleneck is actually CPU, as the data analysis function is computationally intensive. This is the main reason why we haven’t considered upgrading 1.6 yet.

Android

  • Discussion on thread management in RxJava

    The reason why I write this article, or because in the project when using RxJava encountered some thread management problems, through online access to information and read the source code to solve the problem, so I decided to record what I feel, I hope you will have harvest after reading it.

  • Introduction of response in Android programming essay | the nuggets technology

    The original intention of studying this problem is that many people do not know much about the RxJava library and the programming thought reflected behind it, and few people on the Internet can explain it clearly. Most of the time, they can only refer to some RxJava project practices on the network to learn the use of RxJava. But I have always believed that the Rx extension library RxJava can be used better if you are familiar with the idea of responsive programming.

  • Wechat SQLite database repair practice

    As we all know, wechat does not save chat records in the background server. All wechat chat records in the mobile client are stored in an SQLite database. Once this database is damaged, users’ chat records for many years will be lost. However, we have monitored the damage rate of the live network is 0.02%, that is, for every 1W users, 2 will encounter database damage. Considering wechat’s huge user base, the damage rate is significant. What’s worse is that the official repair algorithm we use only has a 30% success rate. High damage rate, low repair rate, these two problems need to be addressed.

iOS

  • Let’s look at some of the arguments about storyboards

    Ever since Apple introduced Storyboard in the iOS 5 era, the debate about how to build uIs this way has been going on in the Cocoa developer community. I wrote a post in 2013 about the trade-off between code writing UI, XIB, and SB. Now, four or five years later, with SB evolving a lot and a lot of experience with SB development, let’s go back and look at some of the concerns we had and extract some of the best practices that we have today based on the current state of SB development.

  • SGPlayer – ILLUSTRATED VR, RTMP player principle

    SGPlayer is a media resource player framework based on AVPlayer and FFmpeg. Support panoramic video, RTMP, RTSP and other live streams; It also supports iOS, macOS, and tvOS. This paper will introduce the realization principle of the key module to you by means of diagram + explanation.

The product design

  • The new way UI designers work in the future? React – SketchApp hits the road for beginners

    “Just days after announcing Lottie, Airbnb announced a groundbreaking new open source project — React-Sketchapp. From the moment it was announced, it quickly caught the attention of designers and front-end engineers, and as a fringe designer, I was attracted to it, learned about it and experimented with it in the first place.”

  • Design and analysis of wechat red envelope system

    Note: ordinary red envelopes refer to the amount of each fixed amount of red envelopes including group ordinary red envelopes and personal ordinary red envelopes, personal ordinary red envelopes is the number of red envelopes for 1 group ordinary red envelopes.

Tool resources

  • Commento – Say more & Disqus open source alternative

    More dead, Disqus seems to be the wall, so what are the good alternatives?

  • Sublime Text 3 plugin collection for front-end development

    Some useful Sublime Text 3 plug-ins to share with you. Sublime is a must.

  • A collection of official apis worth watching in China

    Collected the official API collection of domestic and domestic noteworthy.

    Funny video