深阅读

Domain-Oriented Observability
https://martinfowler.com/articles/domain-oriented-observability.html
Observability in our software systems has always been valuable and has become even more so in this era of cloud and microservices. However, the observability we add to our systems tends to be rather low level and technical in nature, and too often it seems to require littering our codebase with crufty, verbose calls to various logging, instrumentation, and analytics frameworks. This article describes a pattern that cleans up this mess and allows us to add business-relevant observability in a clean, testable way.

The 2019 IPFS Roadmap
https://blog.ipfs.io/78-ipfs-2019-roadmap/
To ground our thinking about the next year, we first had to zoom out to the core mission of the IPFS project in the long-term. We take on many efforts and support many groups in our open source community, but it is all driven by the aim to make the internet more accessible, empowering, and useful for many years to come.

Distributed Application Architecture for Edge-Based Service Delivery
https://thenewstack.io/distributed-application-architecture-for-edge-based-service-delivery/
We have seen the revolution in software application development after containers arrived and CI/CD was started to adapt by IT firms. Now, as the focus of many enterprises and technology vendors started to shift to edge, a new architecture may evolve as distributed applications have a different environment with a different type of latency requirement. Managing such distributed applications that cross-platform boundaries are one of the most complex challenges facing the industry at this time. A goal of services in the edge-based environment should be to have the right application development environment in place for faster innovation for end consumers.

Web Components will replace your frontend framework
https://www.dannymoerkerke.com/blog/web-components-will-replace-your-frontend-framework
Create your own custom HTML tags that inherit all properties of the HTML elements they extend and which you can use in any supporting browser by simply importing a script. All HTML, CSS and JavaScript defined inside the component is fully scoped to the component itself. The component will show up as a single HTML tag in your browser’s dev tools with its styling and behaviour fully encapsulated, no workarounds, frameworks or transpiling needed. Let’s take a look at the main features of Web Components. 另附:Aurelia Unveils Its Web Components Plugin.

How We Used WebAssembly To Speed Up Our Web App By 20X
https://www.smashingmagazine.com/2019/04/webassembly-speed-web-app/
In this article, we explore how we can speed up web applications by replacing slow JavaScript calculations with compiled WebAssembly.

中国第五届CSS大会演讲资料
https://www.yuque.com/cssconf/5th
中国第五届CSS大会演讲资料,包括演讲PPT及视频。还有演讲嘉宾的个人介绍及演讲主题介绍。

2019年Node趋势解读:大前端如何与Node结合
https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247490877&idx=1&sn=e1cdc6be87238eec9c5d0148c6b44b10
根据 ModuleCounts.com 的数据,Node 的包注册中心 NPM 每天会增加 507 个包,相比下一名要多 4 倍多。2018 年 Stack Overflow 调查也有类似的结果,JavaScript 是使用最广泛的语言,Node.js 是使用最广泛的框架。本节我会主要分享一些跟 Node.js 结合比较密切的点:首先介绍一下 API 演进与 GraphQL,然后讲一下 SSR 如何结合 API 落地,构建出具有 Node.js 特色的服务,然后再简要介绍下 Node.js 的新特性、新书等,最后聊聊我对Deno 的一点看法。

无代码编程
https://mp.weixin.qq.com/s/eKvSxOvSyEZEr3BLloCXdw
无代码/低代码是一种创建应用的方法,它可以让开发人员使用最少的编码知识,来快速开发应用程序。它可以在图形界面中,使用可视化建模的方式,来组装和配置应用程序。开发人员可以直接跳过所有的基础架构,只关注于使用代码来实现业务逻辑。

软件架构的10个常见模式
https://mp.weixin.qq.com/s/2QM2vTjevpKeZ5jy3Ss95g
什么是架构模式?根据维基百科:架构模式是针对特定软件架构场景常见问题的通用、可重用解决方案。架构模式类似于软件设计模式,但范围更广。本文将简要解释10种常见架构模式及其用法、优缺点。

为什么 Node 是小菜前端团队的核心技术栈
https://juejin.im/post/5ca321f76fb9a05e5d09bb8a
这篇文章向大家介绍下小菜前端的基建在一步步走过来的过程中,NodeJS 是如何使用的及扮演了哪些角色,它对于工程师个人,团队能力,公司研发效率,业务支撑,技术的探索与突破等等到底有什么实际的意义,以及为什么是它而不是 Python/C++/PHP/Java 成为了前端团队的核心技术栈。

我们能从 InteliJ IDEA 中学到什么?
https://linux.cn/article-10686-1.html
阅读本文,您将了解到心流与人体工效的重要性,并使自己变得更强大,文章将从以下几点展开:InteliJ IDEA 当前的市场情况与表现;IntelliJ IDEA 成功的原因;IntelliJ IDEA 在 IDE 设计器领域胜出的两个关键点;IntelliJ IDEA 对现实工作的启示;

You probably don’t need that hip web framework
https://char.gd/blog/2019/you-dont-need-that-hipster-web-framework
Every year, there’s something new to learn and play with in the web development world that’s considered something you must use: React, Vue, GraphQL, Docker, whatever it might be. And, every year I mess around with these new things and find myself stuck, regretting even trying to use them when I could have just launched something. The obsession with finding better frameworks is killing ideas before they reach the world, and nobody’s really talking about it.

Pure JavaScript Functions as a Replacement for Lodash
https://blog.bitsrc.io/you-dont-need-lodash-or-how-i-started-loving-javascript-functions-3f45791fa6cd
A brief overview of pure replacement functions over Lodash/Underscore.js.

Make it hard to screw up driven development
https://css-tricks.com/make-it-hard-to-screw-up-driven-development/
Developers say things like, “I’m just going to do this quick and dirty first,” because it’s taken as fact that if you code anything quickly, it not only will be prone to mistakes, but that you’ll be deliberately not honoring established conventions and skipping tasks that make for more solid code. There is probably no practical way to make it impossible to write sloppy, bad code, but it is fascinating to consider how tooling has evolved to make it harder. Let’s get all Poka-yoke on development.

Getting creative with the Console API!
https://areknawo.com/getting-creative-with-the-console-api/
Debugging in JavaScript has always been inseparably connected with the Console API, which is most of the time used only through console.log(). But, did you know that it doesn’t have to be this way? Hasn’t console.log() already bored you with its monolithic output? Do you want to make your logs better, to make them prettier? 💅 If so, follow me, as we’ll discover how colorful and playful Console API can really be!

Revisiting the rendering tier
https://www.theguardian.com/info/2019/apr/04/revisiting-the-rendering-tier
Introducing the new rendering layer for theguardian.com.

Behind the Scenes: What makes Gatsby Great
https://www.gatsbyjs.org/blog/2019-04-02-behind-the-scenes-what-makes-gatsby-great/
Gatsby is great from a multititude of perspectives. Our community is great. The developer experience is great. The performance of the resulting application is great. Our documentation is great. And so on and so forth… if I were to focus on each of these areas, this post would become an overly long love letter that I’m not sure many would want to read.

Bottoms-Up: How the Pinterest growth team decentralizes its structure
https://medium.com/@Pinterest_Engineering/bottoms-up-how-the-pinterest-growth-team-decentralizes-team-structure-d9f890fa8869
On the growth team at Pinterest, we describe our structure as “bottoms-up”, meaning ideas and responsibilities flow throughout the team in a way that provides a lot of autonomy to work on the projects each person wants to tackle, across a variety of roles. The result is a team that is very scalable and flexible. And it means that each of us on the team has a lot of liberty to choose how we spend our time.

An intro to Infrastructure as Code
https://circleci.com/blog/an-intro-to-infrastructure-as-code/
This post will focus on the basics of Infrastructure as Code (IaC), addressing a fundamental question that I’m often asked when speaking with folks who are new to the platform: “Can I use Terraform on CircleCI?” The answer is yes. Yes you can! The followup post will contain best practices for executing Terraform on CircleCI and address more sophisticated use cases.

The Unreasonable Effectiveness of SQL
https://blog.couchbase.com/unreasonable-effectiveness-of-sql/
In the years since Don Chamberlin and Ramond Boyce published SEQUEL: A Structured English Query Language relational model and SQL have been extended and adapted to a significant number of technologies: OLTP, OLAP, object databases, object-relational databases, and even NoSQL. SQL has inspired query language design for non-relational databases: SQL for object databases, SQL for object-relational, SQL for XML, SQL for spatial, SQL for search, SQL for JSON, SQL for timeseries, SQL for streams and so on. Every BI tool interacts with the data using variety of SQL. In fact, SQL is the most successful 4th generation language. 另附:Amazon consumer biz celebrates ridding itself of last Oracle database with tame staff party… and a Big Red piñata.

新鲜货

San 3.7.3 Released!
https://baidu.github.io/san/
San是一个灵活的Javascript MVVM 组件框架,它体积小巧,兼容性好,性能卓越,广泛应用与百度各产品线,百度智能小程序Swan框架也是基于San搭建。3.7.3 版本新增了组件根元素支持应用 if 指令,提升了视图渲染的性能,在性能上全面超越同类组件框架。

Request’s Past, Present and Future
https://github.com/request/request/issues/3142
Before I go into the details and reasoning I’ll get straight to the point. The most valuable thing request can do for the JavaScript ecosystem is to go into maintenance mode and stop considering new features or major releases. Apologies in advance to the other committers on request that have been doing their best to improve it, but it’s for the best.

I tried creating a web browser, and Google blocked me
https://blog.samuelmaddock.com/posts/google-widevine-blocked-my-browser/
After 4 months of waiting, that is the response I got from Widevine, Google’s DRM for web browsers, regarding a license agreement. For the last 2 years I’ve been working on a web browser that now cannot be completed because Google, the creators of the open source browser Chrome, won’t allow DRM in an open source project. 另附:谷歌:昔日屠龙者正在成为“恶龙”?

Visual Studio 2019: Code faster. Work smarter. Create the future.
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-code-faster-work-smarter-create-the-future/
Visual Studio 2019 is generally available today and available for download. With Visual Studio 2019, you and your teams will become more productive in building current and future projects as you benefit from the innovation in the IDE that makes every keystroke count.

Base Web React Components
https://baseweb.design/
Base Web is a foundation, a basis for initiating, evolving, and unifying web products. The system is designed to be fully responsive and device agnostic providing designers and developers with a unique catalog of components. 另附:Getting Started with Base Web.

Formal
https://github.com/kevinwolfcr/formal
Elegant form management primitives for the react hooks era.

react-three-fiber 2.0
https://github.com/drcmda/react-three-fiber
React-three-fiber is a small React renderer for Threejs. Why, you might ask? React was made to drive complex tree structures, it makes just as much sense for Threejs as for the DOM. Building a dynamic scene graph becomes so much easier because you can break it up into declarative, re-usable components with clean, reactive semantics. This also opens up the ecosystem, you can now apply generic packages for state, animation, gestures and so on. 另附:React Particles WebGL - A 2D/3D particle library built with React, Three.js and WebGL.

Next.js 8.0.4
https://nextjs.org/blog/next-8-0-4
We are happy to introduce the production-ready Next.js 8.0.4: Build performance improvements; Deterministic builds; Smaller client runtime; Smaller serverless functions; Default viewport tag; Learning guide improvements…

Announcing the Ionic Vue Beta
https://blog.ionicframework.com/announcing-the-ionic-vue-beta/

pigpio
https://github.com/fivdi/pigpio
A wrapper for the pigpio C library to enable fast GPIO, PWM, servo control, state change notification and interrupt handling with Node.js on the Raspberry Pi Zero, 1, 2 or 3. pigpio supports Node.js versions 4, 6, 8, 10 and 12.

Gimli
https://gimli.app/
A Visual Studio Code extension enabling Smart visual tools for front-end developers. 另附:RMStudio Online - page layout and report designer.

Homebrew - 2.1.0
https://brew.sh/2019/04/04/homebrew-2.1.0/

Django 2.2 released
https://www.djangoproject.com/weblog/2019/apr/01/django-22-released/

Vugu: A modern UI library for Go+WebAssembly
https://www.vugu.org/
Build a web front-end in Go that runs in your browser, today. Pure Go. Targets WebAssembly (and/or server). Modern browsers supported. Experimental, for now. Really cool.

git-rs
https://github.com/chrisdickinson/git-rs
Implementing git in rust for fun and education! This is actually my second stab at it, so big blocks will land in place from my first attempt. I’m trying again this year after reading more of “Programming Rust” (Blandy, Orendorff). 另附:A work-in-progress, open-source, multi-player city simulation gameCrossing the Rust FFI frontier with Protocol Buffers.

Computer Graphics from scratch
http://www.gabrielgambetta.com/computer-graphics-from-scratch/introduction.html
This book will not teach you how to use OpenGL or DirectX; instead, it can teach you how OpenGL and DirectX work. In practice you won’t write a software renderer for production use, but understanding how and why a renderer works will let you use OpenGL and DirectX more effectively.

设计

Awesome Design Tools
https://github.com/LisaDziuba/Awesome-Design-Tools
The best design tools for everything.

品牌设计探索-让品牌融于应用之中
https://mp.weixin.qq.com/s/8jEyqA49Xj1HLdoF0OTRaQ
2017年短视频产品爆发,有别于一般短视频产品,DOV主要讲求透过短视频记录生活,并且将短视频分享给熟人关系链好友,透过短视频本身作为媒介达到社交的目的。目标族群明确的定位在于高中以上的年轻族群。设计的任务除了基础的体验之外,更应该将分享生活的轻松感以及时下年轻人的生活态度结合至产品之中,藉由视觉的手法提升用户的记忆与认同。本次DOV的品牌设计在基础UI已具备的条件下,上线前两周经过讨论,以QQ family中人气最高的多福熊作为吉祥物,品牌LOGO也沿用了多福的形象,为了有更全面的品牌感受,本次DOV品牌的设计包含了LOGO、吉祥物、图形系统、动效系统、常规运营规范等等。

放置类AR体验框架和设计建议
http://mux.baidu.com/1027
http://mux.baidu.com/1084
AR的场景多种多样,其中在手机设备的AR体验中,有一种基本且常见的场景:通过手机摄像头,用户在环境中放置虚拟物体(模型),用户与它有一些具体的互动操作,如移动、旋转等。我们将这类场景统一称为放置类AR场景:基放置对象可以是一扇虚拟场景的任意门,用户可走入门中互动;也可以是一件家居商品,用户可预览商品是否与室内环境搭配等。针对不同的放置对象和场景,设计侧重点也会有所不同。 于真实环境放置虚拟模型,并与模型进行交互的AR场景。

How Design Helped Us Talk About UX Writing
https://medium.com/microsoft-design/how-design-helped-us-talk-about-ux-writing-416f07c7aed9
A group of Microsoft writers are rewriting the rules of the conventional critique. 另附:UX writing explained in 5 F wordsThe role of UX writing in design ethics.

产品及其它

Ahead of Its Time, Behind the Curve: Why Evernote Failed to Realize Its Potential
https://usefyi.com/evernote-history/
Here are some of the things I’ll be exploring in this article: Why timing was so crucial to Evernote’s success, and how co-founder and former CEO Phil Libin’s vision for the product created vital tailwind for Evernote’s growth; How the company resisted investor pressure and remained true to their convictions about the value of Evernote as a freemium product; How Evernote lost sight of its original vision and how this almost doomed the company. The idea for Evernote began with the personal quest of its founder, Stepan Pachikov. He aimed to solve a giant problem: overcoming the limitations of human memory.

From Show HN to Series D
https://segment.com/blog/show-hn-to-series-d/
In this post, we wanted to give you a window into Segment’s journey in that first year; from the initial product launch, to our first hundred customers, to the pitch deck we used to raise our first funding. For all the startups out there in a similar boat, hopefully you can take something from our experience and apply it to your own.

乐高又来种草,拼积木也能学会编程
https://www.geekpark.net/news/240143
Spike Prime 并不是多么复杂的可编程玩具,如果你玩过乐高,那么看到这些花花绿绿的配件或并不陌生。523 个 Technic 砖块不但丰富,还能让任何人都发挥出自己独特的创意,而在这其中,则包含了两部分可玩性不同的基础部分。

为什么说作为CEO,你一定要警惕“拜产品教”
http://mp.weixin.qq.com/s?__biz=MjM5NjM5MjQ4MQ==&mid=2651614950&idx=1&sn=cc71f87a3345ef33e0c931666497f433
每个好的 CEO 都应该是好的产品经理,但是,但是后面的话更重要。但是每个好的产品经理,都不一定是好的 CEO。因为我对这句话有很多深刻的感受。在这几年时间里,伴随着互联网的浪潮,有很多人取得了成功。但提及成功的原因,绝大部分人都会说,因为我们的产品好。不得不说,这是一种“拜产品教”,有一些人对产品的崇拜,陷入比较极端的境地。这难道有什么不对吗?

很多人28岁已死,80岁才埋
https://mp.weixin.qq.com/s?__biz=MjM5MDc0NTY2OA==&mid=2651464578&idx=1&sn=ec1038b1fabb11893a4aac5a1cd7a433
“成长型思维”的提出者,是斯坦福大学著名心理学教授 Carol Dweck。她还为此专门写了一本书,并受到比尔盖茨的推崇,书的英文名叫《mindset》,翻译成中文就叫做《终身成长》。Carol Dweck在书中列举了大量案例,分析了教育、体育、商业、人际关系等领域成功与失败的因素。并提出,归根结底,都是思维方式的不同,成功者是成长型思维,而失败者是固定型思维。两者思维模式最根本的区别是什么呢?一言以蔽之,成长型思维者,认为万事万物通过自己的参与都可以改变;因此,心智也在不断迭代强化,从而造就非凡人生。而固定型思维者,认为可控因素少的可怜,自己不过是洪流中的一片树叶。因此,心智在年轻尚轻就停止发育,一直守至终老,才与身体一起埋藏。

– THE END –

作者:zhangzhao (https://github.com/loatheb) - Working in Progress

- 百度数据可视化
- 百度智能建站