深阅读

Is High Quality Software Worth the Cost?
https://martinfowler.com/articles/is-quality-worth-cost.html
A common debate in software development projects is between spending time on improving the quality of the software versus concentrating on releasing more valuable features. Usually the pressure to deliver functionality dominates the discussion, leading many developers to complain that they don’t have time to work on architecture and code quality. Although most of my writing is aimed at professional software developers, for this article I’m not going to assume any knowledge of the mechanics of software development. My hope is that this is an article that can be valuable to anyone involved with thinking about software efforts, particularly those, such as business leaders, that act as customers of software development teams.

Why I’m still using jQuery in 2019
https://arp242.net/jquery.html
I’m not married to jQuery, and I’ll happily use a “jQuery light” which patches over the JS API with something more palatable. YMNJQ recommends bonzo and $dom, and several others for AJAX and such, but many seem unmaintained. Besides, everyone already knows jQuery. Why replace it with something else unless there’s a compelling reason to?

Version 8 of Angular — Smaller bundles, CLI APIs, and alignment with the ecosystem
https://blog.angular.io/version-8-of-angular-smaller-bundles-cli-apis-and-alignment-with-the-ecosystem-af0261112a27
This is a major release spanning the entire platform, including the framework, Angular Material, and the CLI with synchronized major versions. This release improves application startup time on modern browsers, provides new APIs for tapping into the CLI, and aligns Angular to the ecosystem and more web standards.

Ant Design 4.0 进行时!
https://www.yuque.com/ant-design/ant-design/antd4-in-progress
Ant Design 于 17 年 12 月发布 3.0 以来,已经经历了 16 个月的时间。在此期间,我们修复了海量 Bug、以及增加大量新功能(更新日志)。我们也发布了 Ant Design Pro 4.0。支持了 TypeScript、区块以及对布局进行抽象。与此同时,我们也在思考下一步是什么,如何才能使 Ant Design 走的更远,我们预计在今年 Q4 发布 Ant Design 4.0 版本。以下是关于 4.0 的详细计划,当然这仍在计划中。正式发布时可能会有调整。

前端开发 20 年变迁史
https://mp.weixin.qq.com/s/yNg7Q0XNLJMnqffTIJhNUg
在这将近20年的前端发展史中,我们经历了从最早的纯静态页面,到JavaScript跨时代的诞生;从PC端到移动端;从依赖后端到前端可自由打包开发;从早期的网景Navigator浏览器到现在各家浏览器百花齐放……我们经历了前端的洪荒时代、Prototype时代、jQuery时代 、后jQuery时期、三大框架割据时代,这其中均是由国外开发者主导,直到如今的小程序时代,才是中国开发者独创的。

你用的那些CSS转场动画可以换一换了
https://www.zhangxinxu.com/wordpress/2019/05/css-transfer-animation/
传统转场动画就是滑来滑去,淡入淡出这些。时代在召唤,技术在发展,可以试一试使用一些新的转场动画了。

[译]技术轮回,静态Web再度成为新趋势?
https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247491334&idx=1&sn=f7b8c61eacfe53c26810106bddb6b1a8
本文先回顾了互联网的早期历史,探讨当下动态网站广泛流行的历史成因。然后分析了静态网站在性能、编辑速度和自然搜索方面的优势。

The CSS background-image property as an anti-pattern
https://nystudio107.com/blog/the-css-background-image-property-as-an-anti-pattern
The CSS back­ground-image prop­er­ty allowed us to do some amaz­ing things, but in most cas­es, it’s time to leave it behind.

Your first performance budget with Lighthouse
https://bitsofco.de/your-first-performance-budget-with-lighthouse/
At Google I/O this year, the Lighthouse team announced support for performance budgets that can be integrated with Lighthouse. We can now define a simple performance budget in a JSON file, which will be tested as part of the lighthouse audit!

The dangerous folly of “Software as a Service”
http://esr.ibiblio.org/?p=8338
Comes the word that Saleforce.com has announced a ban on its customers selling “military-style rifles”. The reason this ban has teeth is that the company provides “software as a service”; that is, the software you run is a client for servers that the provider owns and operates. If the provider decides it doesn’t want your business, you probably have no real recourse. OK, you could sue for tortious interference in business relationships, but that’s chancy and anyway you didn’t want to be in a lawsuit, you wanted to conduct your business.

The SaaS CTO Security Checklist
https://www.sqreen.com/checklists/saas-cto-security-checklist
Security shouldn’t feel like a chore. This second edition of the SaaS CTO Security Checklist provides actionable security best practices for CTOs or developers. Select your startup stage and use these rules to improve your security!

Building Facebook’s service encryption infrastructure
https://code.fb.com/security/service-encryption/
We previously explained how we implement Transport Layer Security (TLS) on the public internet, including our Fizz library and our pilot project for DNS over TLS. In this post, we’ll talk about how we migrated our encryption infrastructure in data centers from the Kerberos authentication protocol to TLS. Optimizing for operability and performance, while still satisfying the right security model for each service, required navigating difficult trade-offs. By sharing our experiences, we hope to show how we think about our encryption infrastructure and help others as they think through their own implementation.

Simplifying event-driven architectures with the latest updates to Event Grid
https://azure.microsoft.com/en-us/blog/simplifying-event-driven-architectures-with-the-latest-updates-to-event-grid/
Event-driven architectures are increasingly replacing and outpacing less dynamic polling-based systems, bringing the benefits of serverless computing to IoT scenarios, data processing tasks or infrastructure automation jobs. As the natural evolution of microservices, companies all over the world are taking an event-driven approach to create new experiences in existing applications or bring those applications to the cloud, building more powerful and complex scenarios every day. Today, we’re incredibly excited to announce a series of updates to Event Grid that will power higher performance and more advanced event-driven applications in the cloud.

Exploring Domain-Driven Design at CircleCI
https://circleci.com/blog/exploring-domain-driven-design-at-circleci/
My team at CircleCI, which focuses on plans and payments, has gone through many organizational changes over the last year as we’ve grown.One thing that has helped us maintain a sense of consistency throughout these changes is to adopt a different approach to writing software: Domain-Driven Design, also known as DDD.

Our not-so-magic journey scaling low latency, multi-region services on AWS
https://www.atlassian.com/blog/technology/aws-scaling-multi-region-low-latency-service
Atlassian went “all in” on AWS in 2016 and they continue to be our preferred cloud provider. The extent of that migration was covered from a high-level in this article. But what we didn’t cover in that piece was the number of services we needed to modify or build to be stateless.

A Look at MetricsDB: A Time Series Database for Storing Metrics at Twitter
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/metricsdb.html
Twitter’s time series ingestion service is handling 83 million metrics a second and to scale into the future, they had to seek a new approach. MetricsDB, which went live in 2017, gives an overall cost reduction of 10x and latency by 5x compared to traditional key value stores.

Researching AI and Machine Learning for the Future of Low-Code
https://www.outsystems.com/blog/posts/ai-machine-learning-future-low-code/
In this article, I want to talk through the unique research challenges presented by AI/ML, particularly when you’re dealing with code. Additionally, I’ll cover why our investment in internal research teams and collaborations with institutions like Carnegie Mellon University are so important to developing truly capable machine-learning-powered AI development assistants.

新鲜货

Displaying a sponsor button in your repository
https://help.github.com/en/articles/displaying-a-sponsor-button-in-your-repository
You can add a sponsor button in your repository to increase the visibility of funding options for your open source project. Anyone with admin permissions can enable a sponsor button in a repository.

W3C and the WHATWG signed an agreement to collaborate on a single version of HTML and DOM
https://www.w3.org/blog/news/archives/7753
Motivated by the belief that having two distinct HTML and DOM specifications claiming to be normative is generally harmful for the community, and the mutual desire to bring the work back together.

Celebrating Node.js Turning 10 Years Old
https://www.youtube.com/watch?v=6ZdIwbHne-c
Node.js project is ten years old this week, and a few people have been celebrating on Twitter and, as here, on YouTube.

Announcing Microsoft Web Template Studio
https://blogs.windows.com/buildingapps/2019/05/15/announcing-microsoft-web-template-studio/
We are excited to announce an early release of Microsoft Web Template Studio, a cross-platform extension for Visual Studio Code that simplifies and accelerates creating new full-stack web applications. Web Template Studio addresses a top community ask from developer surveys and 1-1 conversations with developers: Make it easy to create a new cloud-based web app. Web Template Studio uses a dev-friendly wizard to generate your application and provide a ReadMe.md to give you step by step instructions to get up and developing in no time. Best of all, Web Template Studio is open source on GitHub.

Announcing TypeScript 3.5
https://devblogs.microsoft.com/typescript/announcing-typescript-3-5/
Type-checking speed-ups; The Omit helper type, Smarter union type checking; Higher order type inference from generic constructors…

Quickly integrate file upload in your web app using the Chooser
http://blogs.dropbox.com/developers/2019/05/quickly-integrate-file-upload-in-your-web-app-using-the-chooser/
The Dropbox Chooser is an easy-to-implement, pre-built component that allows users to access their Dropbox files from within your app. Simply include our JavaScript snippet to add a file-browsing UI and handle authentication to a users’ Dropbox account. This post will cover the three simple steps to add the Dropbox Chooser to your website or application.

CKEditor 4 - Integrate WYSIWYG editor with React
https://ckeditor.com/blog/CKEditor-4-integrate-WYSIWYG-editor-with-React/
We are happy to announce the release of the native integration of CKEditor 4, a full-featured WYSIWYG editor, with React, one of the most popular JavaScript frameworks. The CKEditor 4 React integration is already available on npm. It allows you to implement CKEditor 4 as a React component, using the <CKEditor /> JSX tag.

Introducing Lightning Web Components Open Source
https://developer.salesforce.com/blogs/2019/05/introducing-lightning-web-components-open-source.html
A few months ago, we introduced Lightning Web Components, a new JavaScript framework that leverages the web standards breakthroughs of the last five years. Today, we are excited to announce the open sourcing of the Lightning Web Components framework, allowing developers to contribute to the roadmap and to use the same framework whether they are building applications on Salesforce or on any other platform. 附:译文.

private package development with npm Orgs
https://blog.npmjs.org/post/185203568140/private-package-development-with-npm-orgs
Most of you probably download packages from the public npm registry on a regular basis. Some of you might even publish packages for others to use. Did you know that npm provides tools for collaborative development as well? With npm Orgs, you get the npm developer experience you love while adding the ability to collaborate on private packages across one or more teams. 另附:Verdaccio - a free open source javascript package proxy registry.

Parse CSV with JavaScript
https://github.com/mholt/PapaParse
Papa Parse is the fastest in-browser CSV (or delimited text) parser for JavaScript. It is reliable and correct according to RFC 4180, and it comes with these features: Easy to use, Parse CSV files directly (local or over the network)…

normalizr
https://github.com/paularmstrong/normalizr
Normalizes nested JSON according to a schema.

Puppeteer recorder
https://github.com/checkly/puppeteer-recorder
Puppeteer recorder is a Chrome extension that records your browser interactions and generates a Puppeteer script.

tiptap
https://github.com/scrumpy/tiptap
A renderless and extendable rich-text editor for Vue.js.

pickr
https://github.com/Simonwep/pickr
Flat, simple, responsive and hackable Color-Picker library. No dependencies, no jQuery. Compatible with all CSS Frameworks e.g. Bootstrap, Materialize. Supports alpha channel, rgba, hsla, hsva and more!

mqtt.js
https://github.com/mqttjs/MQTT.js
MQTT.js is a client library for the MQTT protocol, written in JavaScript for node.js and the browser.

FunctionScript
https://github.com/FunctionScript/FunctionScript
A language and specification for turning JavaScript functions into typed HTTP APIs.

Zdog - Round, flat, designer-friendly
https://zzz.dog/
pseudo-3D engine for canvas & SVG. View complete documentation and live demos at zzz.dog.

Go library to run WebAssembly binaries
https://github.com/wasmerio/go-ext-wasm/
Wasmer is a Go library for executing WebAssembly binaries. 另附:How to make a tic-tac-toe bot with WebAssembly for Go.

Compiling C to WebAssembly without Emscripten
https://dassur.ma/things/c-to-webassembly/
A compiler is just a part of Emscripten. What if we stripped away all the bells and whistles and used just the compiler?

Core Go Developers Respond to Queries Over Who Go Really ‘Belongs’ To
https://groups.google.com/forum/#!msg/golang-nuts/6dKNSN0M_kg/EUzcym2FBAAJ
Russ Cox’s response: There are certainly senses in which Go is Google’s language: it was created at Google, Google continues to fund most of the development, and a few people at Google are the final deciders about the language itself. But I disagree with the “not ours:” I think Go is also the Go community’s language.

设计

Fluent: Design Behind the Design
https://medium.com/microsoft-design/fluent-design-behind-the-design-973028062fcc
How our Fluent Design System focuses innovation on evolving principles and real-world customer needs.

Daily Ethical Design
https://alistapart.com/article/daily-ethical-design/
As designers, we’re optimists by nature. We see the world as a set of problems that we can solve systematically and creatively if only we try hard enough. We intend well. However, merely having the intention to do good is not going to be enough. Our mindset comes with the pitfall of (dis)missing potential disastrous consequences, especially under pressure of daily constraints. That’s why we need to regularly, systematically take a step back and consider the future impact of our work. My hope is that the practical, structural mindset to ethics introduced in this article will help us agree on a higher standard for design.

Should Chatbots Replace Forms On Mobile?
https://www.smashingmagazine.com/2019/05/chatbots-forms-mobile/
Have you noticed that contact forms are disappearing? Have you also noticed that many websites are replacing their forms with chatbots? Let’s explore what is happening to forms on the mobile web and why chatbots may or may not be a suitable replacement for them.

Rethinking a calendar
https://uxplanet.org/rethinking-a-calendar-def7711c8b02
Improving the user experience for calendar apps.

设计新势力?2019体验设计趋势探索
https://mp.weixin.qq.com/s/ZH-7rXv30v2LkP4SB2uWMQ
在日新月异的数字市场,全新的技术带来新的体验,人们触达的产品和终端正变得更丰富多样。无论产品还是技术如何革新,都是围绕着用户至上的体验。作为设计师的我们,需要在变化的浪潮中调优思想和方向。虽然不能预见未来,但可以尝试从一些主流的变化中初窥一些趋势,这些趋势和近期一些主流平台发布的理念是契合的。

产品及其它

GDPR After One Year: Costs and Unintended Consequences
https://truthonthemarket.com/2019/05/24/gdpr-after-one-year-costs-and-unintended-consequences/
GDPR is officially one year old. How have the first 12 months gone? As you can see from the mix of data and anecdotes below, it appears that compliance costs have been astronomical; individual “data rights” have led to unintended consequences; “privacy protection” seems to have undermined market competition; and there have been large unseen — but not unmeasurable! — costs in forgone startup investment. So, all-in-all, about what we expected.

关于芯片之争,终于有人说出了本质
https://www.huxiu.com/article/266816.html
在中国和“外国”这两国的较量中,究竟哪一国更占上风?有说中国吊打外国,有说外国轻松把中国摁在地上摩擦,双方都列举了林林总总的例子,整得我们吃瓜群众一脸懵逼。当然,中间派肯定说两国各有利弊,但这结论虽然正确却没啥营养。想要在中外两国这个话题上显得有见识,得先搞明白啥是技术?

到底什么是“以客户为中心”?
https://mp.weixin.qq.com/s?__biz=MjM5NjM5MjQ4MQ==&mid=2651616207&idx=1&sn=b0bb5fce95b5d278395033f845e5cf15
当你对自己利益很满意,也想“顺便”对用户好一点的时候,是不会懂什么叫“以客户为中心”的。那什么叫“以客户为中心”?只有当你的利益,和客户的利益不一致时,才会明白你到底把谁当做中心。

湖畔大学阿里 CEO 张勇:找人的核心,就看2点
https://mp.weixin.qq.com/s?__biz=MzIxNTAzNzU0Ng==&mid=2654629208&idx=1&sn=647e58a468c2f830acaadd9b163032fb
谈及商业设计,张勇首先抛出了企业一号位面临的首要问题——“我的客户是谁?”并告诫这些头部企业时代会发生变化,一定要不断挑战自我,挑战自己已经习惯的模式,不断问自己为什么不能是另外一种方式。而组织设计部分,张勇分享了设计的关键点——在特定的时间点,纵横、分合如何选择。在他看来,所有组织设计都是为特定的战略目标服务,讲清楚我要解决什么问题,当前的首要矛盾是什么。他并不认同团队任何时候都讲究协同,而是认为没有竞争的团队不是一个好团队,没有杀性的leader不是一个好leader。

腾讯进军教育:一半战火,一半田园诗
https://mp.weixin.qq.com/s?__biz=MzU0NDEwMTc1MA==&mid=2247492533&idx=1&sn=f097302266849e9f1115040daa664a00
说到数据和智能,玩得最六的肯定是巨头 BAT,在过去漫长的时光里,我们好像没听说 BAT 深度切入教育领域,这是为个啥?在我看来,原因很简单:教育和医疗,无论在哪个国家都不是纯市场化的行业。国家不会要求公立学校自负盈亏,教育局和高校也不会用“钱生钱”的逻辑来投资软硬件建设。说白了,教育行业就不是个适合“捞金”的地方。所以,巨头如果要进入教育,不仅要舍得花钱,也不仅要有技术,更重要的也许是反商业逻辑的勇气、决心和情怀。今天的主角是腾讯。2019年5月22日,腾讯高调宣布整合教育品牌,集结了队伍进军教育主战场。在马化腾高喊的“科技向善”愿景上,又撒上了一层追光。另附:网易有道的决心:“All In K12”,掷注大班课未来十年将会是AI影响教育的十年松鼠 AI 周伟:站在教育本质,重新思考技术的未来.

对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2019-06-03·中美贸易战对抗、可视化降维算法、麦卡托投影的视觉误导

– THE END –

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