FEX 技术周刊 - 2017/07/10
百度 AI 开发者大会
Better Software Design with Clean Architecture
Clean Architecture provides a simple and effective framework for separating the different aspects of our system producing a highly decoupled, testable architecture. Like most design decisions there are tradeoffs to be made when considering Clean Architecture. I hope this guide has provided some insight on how Clean Architecture can improve your software design and prevent many of the common pitfalls that hinder projects. Like any pattern, it takes a little familiarity with the concepts and principles before they can be effectively applied.
React, Relay and GraphQL: Under the Hood of the Times Website Redesign
The New York Times website is changing, and the technology we use to run it is changing too. As the new site rolls out over the next several months, a look under the hood will reveal a number of modern technologies designed to make the site faster and easier to use — for readers, most importantly, but also for our developers. At the center of this has been our adoption of React, Relay and GraphQL.
Under the hood: ReactJS
This repository contains an explanation of inner work of ReactJS. In fact, I was debugging through the entire code base and put all the logic on visual block-schemes, analyzed them, summarized and explained main concepts and approaches. I’ve already finished with Stack version and now I work with the next, Fiber version.
Web Frameworks: Foundational Technologies
In this post we’ll look at how the different web frameworks deal with the fundamentals. We’ll look at what environments are supported, how well aligned they are to the current standards, how they future proof their code, and how they go above and beyond the current standards. This analysis will give us an indication of what sort of foundations we are building on when leveraging a particular framework. Especially in the enterprise, web frameworks are not just nice Christmas gifts. Using the first one we unwrap will affect our applications for a long time.
Chat Bots and the Future of Web Development
There are currently more than 100,000 bots and developers on the Messenger network alone. More than 10,000 businesses are already using or working on their own bots, and by 2020 80% businesses hope to have chatbots for interacting with customers. In this article, I’ll cover what chatbots are, the sudden boom in their popularity, how they are significantly changing the way we browse and interact with the web, why web developers and designers should care about this paradigm shift, and what they can specifically do to keep up.
A Closer Look Into WebRTC
We recently announced WebRTC support in Safari 11 on High Sierra and iOS 11 in our last WebKit blog post. Today, we would like to dive into more details of our implementation, and provide some tips on bringing WebRTC support to your website.
作者的心得：保持冷静，勿信炒作；不要轻信别人的代码；坚持这几个原则，DRY 原则 - Don’t repeat yourself，Yagni 原则（注：You ain’t gonna need it），KISS - Keep it simple stupid。
分布式系统用多个设备来处理特定问题，但是如何保证这样的处理结果像单机系统那样正确？这里的正确指的是：以相同的顺序进行相同的一系列操作，分布式系统能得到和单机系统相同的结果。本文主要介绍了分布式系统中 Linearizability 概念，以及它与 Serializability 的区别，并介绍了 Spanner 中是如何通过 TrueTime 来实现 Linearizability。
对的，我这里要讲的不是如何掌握一种程序语言，而是所有的……很多编程初学者至今还在给我写信请教，问我该学习什么程序语言，怎么学习。由于我知道如何掌握“所有”的程序语言，总是感觉这种该学“一种”什么语言的问题比较低级，所以一直没来得及回复他们 :P 可是逐渐的，我发现原来不只是小白们有这个问题，就连美国大公司的很多资深工程师，其实也没搞明白。
MySQL infrastructure testing automation at GitHub
Our MySQL infrastructure is a critical component to GitHub. MySQL serves GitHub.com, GitHub’s API, authentication and more. Every git request touches MySQL in some way. We are tasked with keeping the data available, and maintaining its integrity. We have the infrastructure to automate away such operations; in this post we share a few examples of how we build trust in our infrastructure through continuous testing. It is essentially how we sleep well at night.
Democratizing Experimentation Data for Product Innovations
A/B Testing (also known as experimentation or bucket testing), enables the product teams to gain more insights and understandings of PayPal users, their behavior and interaction with PayPal product pages, product flows and products in general (with user permissions). It is critical to arrive to some product decisions fast in a data driven manner, and hence facilitates fast iterations and turn-arounds to speed up innovations and product development cycles.
Mastering Async Await in Node.js
In this article, you will learn how you can simplify your callback or Promise based Node.js application with async functions (async/await).
From years of watching master programmers, I have observed certain common patterns in their workflows. From years of coaching skilled journeyman programmers, I have observed the absence of those patterns. I have seen what a difference introducing the patterns can make. Here are ways effective programmers get the most out of their precious 3e9 seconds on the planet.
Habits of a Happy Node Hacker 2017
Here are 8 habits for happy Node hackers updated for 2017. They’re specifically for app developers, rather than module authors, since those groups have different goals and constraints: Lock Down Your Dependency Tree; Automate Your Code Formatting with Prettier…
Django vs Flask
This analysis is a comparison of 2 python web frameworks, Flask and Django. It discusses their features and how their technical philosophies impact software developers. It is based on my experience using both, as well as time spent personally admiring both codebases.
Where do Type Systems Come From?
In short, type theory was developed to be an alternative to set theory as the foundation of mathematical proofs in symbolic logic due to its ability to solve some contradictions stemming from naive set theory.
The Many Problems with Jenkins and Continuous Delivery
Ultimately, the root of these problems stems not from specific tools, but from cultural mistakes. Problem 1: Jenkins has too many plugins. Problem 2: Jenkins was not designed for the Docker age. Problem 3: Jenkins does not support microservices well. Problem 4: CI != CD.
The Options for Programmatically Documenting CSS
Documentation is a topic that always bugs me. Working on poorly documented codebase is a ticking bomb. It makes the onboarding process a tedious experience. Now let’s take a look at the most popular documentation options in CSS.
Designing The Perfect Date And Time Picker
What could be so difficult about designing a decent date picker? Basically, we just need an input field and an icon that represents a calendar clearly enough, and once the user clicks on that icon, we pop up a little overlay with the days lined up in rows. Right?
Looking at the future of responsive design
Responsive web design is the design methodology of making a singular website ‘respond’ to the size of the viewport it is being presented in, allowing users to view your website from any device big or small and have it look as well presented as it does on a desktop computer. From humble beginnings responsive design has evolved gradually over the years, it has taken many different forms as standards and support for modern technologies have improved and the requirement for a way to cater to an increasingly mobile obsessed populace has become more crucial. This whitepaper focuses on the technologies that have emerged to tackle this issue and where they are going.
Google VR Blocks: A Free 3D Modeling Tool for HTC Vive and Oculus Rift
Blocks makes creating 3D models easy, powerful, and fun.
Apple’s WWDC 2017 Highlights For iOS Developers
Here’s my overview of what happened this WWDC season, with code samples. 另附：来自今日头条技术团队的 WWDC 参会总结
What’s new in Docker 17.06 Community Edition
Docker 17.06 CE (Community Edition) is the first version of Docker built entirely on the Moby Project. New features include Multi-Stage Build, new Networking features, a new metrics endpoint and more! In this Online Meetup, Sophia Parafina, Docker Developer Relations Engineer, demo’d and reviewed these new features.
Introducing code owners
While effective code review is essential to every successful project, it’s not always clear who should review files—even with GitHub’s reviewer suggestions. Now repository maintainers can define exactly which people and teams need to review projects using code owners. This new feature automatically requests reviews from the code owners when a pull request changes any owned files.
React-UWP came about from our love of React and Microsoft’s UWP Design. We want UWP design easier to implementation in web applications
Chalk is a Node.js module for styling and colorizing terminal output.
Ink - React for CLIs
Build and test your CLI output using components.
Announcing Gatsby 1.0.0
Gatsby is your friendly, blazing fast static site generator for React. And after nearly a year of research, prototyping, and testing, Gatsby v1 is ready for action.
Rekit 2.0 is out
Rekit is a toolkit for building scalable web applications with React, Redux and React-router. It’s an all-in-one solution for creating modern React apps. It helps you focus on business logic rather than dealing with massive libraries, patterns, configurations etc.
ECMAScript Pattern Matching Syntax
Pattern matching is a way to select behaviors based on the structure of a value in a similar way to destructuring. For example, you can trivially match objects with certain properties and bind the values of those properties in the match leg. Pattern matching enables very terse and highly readable functional patterns and is found in a number of languages. This proposal draws heavy inspiration from Rust and F#. This proposal is stage 0 and as such is open to significant revision.
Gitter is open source
Gitter is a chat and networking platform that helps to manage, grow and connect communities through messaging, content and discovery.
Making a virtual machine in Google Sheets
Infinite Scroll V3.0
The npm CLI’s Long Term Support (LTS) policy
The npm CLI project does not have designated LTS releases. The project only regularly does releases to the most recent major release.
Britecharts is a client-side reusable Charting Library based on D3.js v4 that allows easy and intuitive use of charts and components that can be composed together creating amazing visualizations.
Node.js cms and web application platform built on Express and MongoDB. KeystoneJS is the easiest way to build database-driven websites, applications and APIs in Node.js.
Text Mining of Stack Overflow Questions
This analysis focuses only on questions posted on Stack Overflow, and uses topic modeling to dig into the text.
Open Legal Documents
Docracy is a home for contracts and other legal documents, socially curated by the communities that use them. Our mission is to make these documents freely available for everyone, while in the process making them easier to customize and use. No more shady templates behind a paywall where you click download and just hope for the best. Instead we offer reputable, transparent sources and social proof to help you find something as close as possible to the perfect document.
What habits make a programmer great
A quote by Kent Beck: I’m not a great programmer; I’m just a good programmer with great habits. So what are the habits I should cultivate to be a great programmer or even a good one? What are the bad habits that I should drop?
人类将会失去这些力量 - 尤瓦尔·赫拉利
– THE END –