2018.11.12 - Programming Paradigms: What Every Programmer Should Know
Ping Xia
Title: 2018.11.12 - Programming Paradigms: What Every Programmer Should Know
Deep Reading
A Netflix Web Performance Case Study https://medium.com/dev-channel/a-netflix-web-performance-case-study-c0bcde26a9d9
There are no silver bullets to web performance. Simple static pages benefit from being server‑rendered with minimal JavaScript. Libraries can provide great value for complex pages when used with care.
Additional reads: How we made Carousell’s mobile web experience 3x faster, Improve Animated GIF Performance With HTML5 Video, 译-轻松实现 Web 性能优化.
Getafix: How Facebook tools learn to fix bugs automatically https://code.fb.com/developer-tools/getafix-how-facebook-tools-learn-to-fix-bugs-automatically/
Getafix is deployed at Facebook to automatically suggest fixes for the null‑dereference bugs that Infer reports, as well as to suggest fixes for the null‑dereference‑related crash errors that Sapienz flags. It is also being used to resolve code‑quality concerns that are found when revisiting existing code with newer versions of Infer.
Additional read: Open‑sourcing FBGEMM for state‑of‑the‑art server‑side inference.
Programming Paradigms for Dummies: What Every Programmer Should Know https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf
This chapter gives an introduction to all the main programming paradigms, their underlying concepts, and the relationships between them. We provide a broad view to help programmers choose the right concepts they need to solve the problems at hand. We present a taxonomy of almost 30 useful programming paradigms and how they are related. Most of them differ only in one or a few concepts, but this can make a world of difference in programming.
How to Design Software Good https://www.haiku-os.org/docs/HIG/index.xml
Haiku is an operating system known for its speed and ease of use. This is partly because good programmers try to design their apps for more than just themselves. We will examine how you can also make your program more appealing. The reason is simple: easier‑to‑use means more people will use your program. Writing good software can be hard, but it is worth the time and effort.
百度Web前端开发实战案例解析 https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2651010393&idx=2&sn=b94ae823d621741e853a14ad540ef993
On October 27, during the 82nd Baidu Tech Salon, several senior front‑end engineers from Baidu’s Web Front‑End Technology Department shared, from a Web front‑end perspective, five topics that look toward the future: Baidu’s exploration of componentized search, enhancements to search experience, open‑Web performance optimization, and the technical foundations accumulated for the future development of the open Web.
美团首席科学家夏华夏:不断突破边界的程序人生 https://tech.meituan.com/meituan_renwuzhi_xiahuaxia.html
There is no secret to growth—just the perseverance to keep pushing your own boundaries a little at a time. From a top‑scoring high‑school student in Shandong with no computer background, to a computer‑science prodigy at Tsinghua, to further studies at a U.S. elite university and six years at Google, then choosing to return to China; from joining a then‑small Meituan to overseeing the architecture of its largest business, and later transitioning from architect to manager of the cutting‑edge unmanned‑delivery division, Xia Huaxia continuously breaks his own limits, makes pivotal life decisions, stays grounded, and gradually becomes a well‑known tech leader in the industry.
Taro 1.1 发布,全面支持微信/百度/支付宝 小程序 https://aotu.io/notes/2018/11/05/taro-1-1/
To reduce the development cost of multi‑platform applications, Taro 1.1 adds support for Baidu Smart Mini‑Programs and Alipay Mini‑Programs on top of its existing full support for WeChat Mini‑Programs.
写给自己看的display: grid布局教程 https://www.zhangxinxu.com/wordpress/2018/11/display-grid-css-css3/
In my view, Grid layout is like “dividing farmland”. The story goes: Mr. Zhang, a programmer, saved up a bit of money, and because his hometown’s rural land was abandoned due to urbanization, he leased a large plot to raise fish and plant fruit trees. The challenge was how to divide the land, so he decided to use CSS Grid to do the division.
Additional reads: CSS Frameworks Or CSS Grid: What Should I Use For My Project, How Basecamp Uses CSS Grid in Production.
Beyond console.log() https://medium.com/@mattburgess/beyond-console-log-2400fdf4a9d8
There is more to debugging JavaScript than console.log to output values. It might seem obvious that I’m going to pimp the debugger, but actually I’m not.
Cross-language Performance Profile Exploration with speedscope https://hacks.mozilla.org/2018/11/cross-language-performance-profile-exploration-with-speedscope/
The goal of speedscope is to provide a 60 fps way of interactively exploring large performance profiles from a variety of profilers for a variety of programming languages. It runs entirely in the browser and does not send any profiling data to any servers. Because it runs entirely in the browser, it works in Firefox and Chrome on macOS, Windows, and Linux. It can be downloaded for offline use, either via npm or as a standalone zip file.
Visualizing Your Data With MongoDB Charts https://www.mongodb.com/blog/post/visualizing-your-data-with-mongodb-charts
If you have data that needs to be visually analyzed in MongoDB, MongoDB Charts is a terrific option. Prior to MongoDB Charts, there were really three ways to visualize your MongoDB data.
webLyzard's Visual Exploration of Sustainability Communication with Elasticsearch https://www.elastic.co/blog/weblyzards-visual-exploration-of-sustainability-communication-with-elasticsearch
The Elasticsearch‑powered visual analytics dashboard is a semantic search and visual content exploration system used to identify opinion leaders and analyze the public debate by topic and geographic location. The custom‑built dashboard synchronizes multiple views in real time and uses aggregations to convey context information through a portfolio of visual tools (a recent IEEE Systems article provides additional information on the underlying knowledge extraction and visualization methods).
OWASP Releases a Report on Serverless Security Risks https://www.owasp.org/index.php/OWASP_Serverless_Top_10_Project
OWASP Serverless Top 10 aims at educating practitioners and organizations about the consequences of the most common serverless application security vulnerabilities, as well as providing basic techniques to identify and protect against them.
Cross shard transactions at 10 million requests per second https://blogs.dropbox.com/tech/2018/11/cross-shard-transactions-at-10-million-requests-per-second/
This blog post focuses on our recent deployment of cross‑shard transactions, which addressed a deficiency in Edgestore’s API, allowing atomic transactions across colos. What follows is a description of our design, potential pitfalls one may encounter along the way, and how we safely validated and deployed this new feature to a live application serving more than ten million requests per second.
Cloud Computing without Containers https://blog.cloudflare.com/cloud-computing-without-containers/?hH
Cloudflare has a cloud computing platform called Workers. Unlike essentially every other cloud computing platform I know of, it doesn’t use containers or virtual machines. We believe that is the future of serverless and cloud computing in general, and I’ll try to convince you why.
Design Review: Key-Value Storage [https://mozilla.github.io/firefox-browser-architectu
(content truncated)
Originally written by Ping Xia (平侠) and published in Chinese on Web技术周刊 (Web Tech Weekly). Translated and adapted for DriftSeas with permission.
Sources & References
- [1]https://medium.com/dev-channel/a-netflix-web-performance-case-study-c0bcde26a9d9
- [2]How we made Carousell’s mobile web experience 3x faster
- [3]Improve Animated GIF Performance With HTML5 Video
- [4]译-轻松实现 Web 性能优化
- [5]https://code.fb.com/developer-tools/getafix-how-facebook-tools-learn-to-fix-bugs-automatically/
- [6]Open‑sourcing FBGEMM for state‑of‑the‑art server‑side inference
- [7]https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf
- [8]https://www.haiku-os.org/docs/HIG/index.xml
- [9]https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2651010393&idx=2&sn=b94ae823d621741e853a14ad540ef993
- [10]https://tech.meituan.com/meituan_renwuzhi_xiahuaxia.html
- [11]https://aotu.io/notes/2018/11/05/taro-1-1/
- [12]https://www.zhangxinxu.com/wordpress/2018/11/display-grid-css-css3/