How to greatly improve your React app performance
A review of common React performance pitfalls and how to avoid them

Clojure Design Patterns
Disclaimer: Most patterns are easy to implement because we use dynamic typing, functional programming and, of course, Clojure. Some of them look wrong and ugly. It’s okay. All characters are fake, coincidences are accidental.

蚂蚁金服 AntV 3.0 正式发布
怀揣「 让人们在数据世界里获得视觉能力 」的梦想,AntV 3.0 来了[笑哈哈],感谢一路相伴的众多合作伙伴的支持和帮助,感谢对 AntV 的关注和信赖,感谢一路有你。2017年11月22日,AntV G2 正式开源,新的征程才刚刚开始。附:9 Best JavaScript Charting Libraries

对于 Native App 来说,其 最大的痛点是由于其天生封闭的基因,内容无法被索引,这会导致后续一系列的问题。而随着移动互联网的发展,用户下载 App 的热情也逐渐减弱,再加上用户 80% 的时间被 Top3 的超级 App 占据,对于站点来说,应用分发成本也因此越来越高了。相对于 Native App 的封闭,PWA 却是完全开放的——PWA 现有的所有技术都是遵循 W3C 的标准,完全开放,因此能够快速被站点接受、被浏览器快速支持。值得一提的是,为了解开传统 Web 的两个枷锁,除 PWA 之外,业界也诞生了很多技术方案,例如部分厂商推出的小程序技术。

Flutter 是由谷歌创建的一个移动应用 SDK,用于构建“现代移动应用”。目前它还处于 alpha 阶段,不过它的文档和相关工具十分齐全,有些移动应用已经在使用 Flutter。在这篇文章里,我将分享使用 Flutter 开发一个移动应用的愉快经历,并告诉大家为什么我这么喜欢 Flutter。

微信后台团队最近开源力作:PhxQueue 分布式队列
基于 Paxos 协议实现的高可用、高吞吐和高可靠的分布式队列


The Performance Cost of Server Side Rendered React on Node.js
All the results clearly display that there is a price to pay for server side rendered React.js. This is no surprise as vDOM template rendering is more complex than string based processing. In this light the performance of ReactDOMServer with optimisations is downright impressive.

Understanding SOLID Principles
As a small reminder, in SOLID there are five basic principles which help to create good (or solid) software architecture. SOLID is an acronym where:- S stands for SRP (Single responsibility principle); O stands for OCP (Open closed principle); L stands for LSP (Liskov substitution principle); I stand for ISP ( Interface segregation principle); D stands for DIP ( Dependency inversion principle).

The State of Node.js & JavaScript for Backend Development
For this post, I thought it was time to set the record straight about Node.js and JavaScript as a backend language. Today I’m going to discuss: The current state of Node.js; Its best use cases; Its limitations; What we can expect from Node moving forward.

Dynamic import()
Dynamic import() introduces a new function-like form of import that unlocks new capabilities compared to static import. This article compares the two and gives an overview of what’s new.

77% of 433,000 Sites Use Vulnerable JavaScript Libraries
One of the discoveries the report mentions is that an analysis of around 433,000 sites found that 77% of them use at least one front-end JavaScript library with a known security vulnerability.

Announcing AWS Amplify and the AWS Mobile CLI
We’re happy to announce today the release of AWS Amplify, an open source library (under Apache 2.0) for interacting with cloud services that use JavaScript applications. Amplify is broken into categories to help developers programmatically use best practices and deliver a scalable and secure experience to their customers. We’ve designed the Amplify library to be flexible for new implementations in these categories. We are looking to build upon this start in the future.

Announcing Language Server Protocol Preview Release
Visual Studio is joining Visual Studio Code in offering support for the Language Server Protocol. As an extension author, you can now write Visual Studio extensions that leverage existing language servers to provide a rich editing experience for languages that initially had no native language support in Visual Studio. With these extensions, you can use Visual Studio to code in your favorite language!

Save 15% or More on Car Insurance by Switching to Plain JavaScript
his article is as much satire as it is serious insight if there is even any of that at all. Don’t take it too seriously, but do tell all your friends. Also, the bit about Taco Bell is 100% true. I wouldn’t joke about something like that.

ProtoPie, the Hi-Fi Prototyping Tool That Will Improve Your Workflow
This article will give you a brief overview on what ProtoPie is, its philosophy, and why you should adopt ProtoPie as your primary prototyping tool to improve your workflow.

A Comprehensive Guide To Web Design
In this article, I’ll focus on the main principles, heuristics and approaches that will help you to create a great user experience for your website. I’ll start with global things like the user journey (how to define the “skeleton” of the website) and work down to the individual page (what should be considered during web page design). We’ll also cover other essential aspects of design, such as mobile considerations and testing.

F-Shaped Pattern of Reading on the Web: Misunderstood, But Still Relevant (Even on Mobile)
Eyetracking research shows that people scan webpages and phone screens in various patterns, one of them being the shape of the letter F. Eleven years after discovering this pattern, we revisit what it means today.


Introduction to Node.js From Microsoft
The ultimate beginner guide to creating web applications using Node.js, Express and MongoDB.

GitLab 10.2 released with Configurable Issue Boards and GitLab Geo General Availability
In this month’s release of GitLab 10.2 we’ve added capabilities to improve planning, reliability, deployment, and so much more.

React Spreadsheet Grid
Excel-like grid component for React with custom cell editors, performant scroll & resizable columns.

React-based drag’n’drop pivot table with Plotly.js charts. 附:Introducing react-pivottable

node-prune is a small tool to prune unnecessary files from ./node_modules, such as markdown, typescript source files, and so on. Primarily built for Up which lets you deploy serverless web applications in seconds.

Scrollytelling can be complicated to implement and difficult to make performant. The goal of this library is to provide a simple interface for creating scroll-driven interactives. 附:An Introduction to Scrollama.jsTake control of your scroll: customizing pull-to-refresh and overflow effects

Create beautiful JavaScript charts with one line of React

Even better PNG minification
We introduced a PNG minifier inside Photopea half a year ago. Today, we are glad to announce, that it is even better! The previous minifier was fast and generated really small files, while keeping a decent quality. But it had problems in some cases, e.g. when there were large gradients. 另附:Convert JPG, PNG, and Animated GIF to WEBP

Z - Native Pattern Matching for Javascript
The pattern matching is basically a switch on steroids, you can create powerful conditions such based on Object properties or Array content without manipulating the Object or Array itself. That amount of power leads you write functional, immutable, and expressive code instead imperative, which reduces a lot of complexity and bugs.

Convert a blog article into a clean Markdown text file.

Package gofpdf implements a PDF document generator with high level support for text, drawing and images. 如果是网页导出为 pdf 的话,用 headless chrome 应该更靠谱。

Qubes OS_ A reasonably secure operating system
Qubes OS is a security-oriented operating system (OS). The OS is the software that runs all the other programs on a computer. Some examples of popular OSes are Microsoft Windows, Mac OS X, Android, and iOS. Qubes is free and open-source software (FOSS). This means that everyone is free to use, copy, and change the software in any way. It also means that the source code is openly available so others can contribute to and audit it.

Replacing x86 firmware with Linux and Go
All of the user-space parts of the boot process are written in Go; that includes everything in initramfs, including init. This brings Linux performance, reliability, and security to the boot process and they were able to eliminate all of the ME and UEFI post-boot activity from the boot process.

1,300 Free Online Courses from Top Universities
Get 1,300 free online courses from the world’s leading universities – Stanford, Yale, MIT, Harvard, Berkeley, Oxford and more. You can download these audio & video courses (often from iTunes, YouTube, or university web sites) straight to your computer or mp3 player. Over 45,000 hours of free audio & video lectures, await you now.


Products Over Projects
Software projects are a popular way of funding and organizing software development. The organize work into temporary teams and are funded with specific benefits projected in a business case. Product-mode instead uses durable teams working on a persistent business issue. Product-mode allows teams to reorient quickly by using short-cycle iterations while maintaining the architectural integrity of their software to preserve their long-term effectiveness.

Why we never thank open source maintainers
Write a thank-you note to your favorite open source project on the NGO Thank you, open source.

Introducing Team discussions
Working together on software is so much more than writing code. Processes like planning, analysis, design, user research, documentation, and general project decision-making all play a part in the build process. Now there’s a new way to talk through projects with your team.

优秀的产品人,应该有自信去做更好的价值挖掘,尝试建立不伤害用户体验的、更为优雅的商业模式。「真正的好产品,团队内部是不需要 CEO 或团队管理者来「打鸡血」的」,每个成员都可以感受到它的魅力,与旧产品的体验有巨大差别。好产品能让团队自然兴奋,自己就能感受到创造的快乐,感受到工作的美好。反而,如果只是靠企业管理的压强、靠 KPI 的压力驱动,或许就不是很好的产品,或者产品已经开始老化。另附:对话「ThinkPad 之父」内藤在正,解读品牌背后的坚守与创新