FEX 技术周刊 - 2017/04/05
Simple React Development in 2017
Regardless of your background, you’ve likely had a similar experience: React itself seems pretty straightforward, but the tooling and ecosystem is overwhelming. However, this is a solved problem! Believe it or not, it is actually very simple and painless to start a new React project, thanks to amazing work by the community over the past year. The goal of this guide is to showcase how easy it can be to start modern React development. It shares a step-by-step process, from initial system setup through to deployment, without straying into tangent explanations that aren’t critical at this point in the learning process.
Building For Mobile: RWD, PWA, AMP Or Instant Articles?
Today, as our findings indicate, responsive web design is the norm, with 7 out of 10 mobile-optimized websites being responsive, up from 5 last year, which begs the questions: What’s next? Where is it all heading? We solved the screen-size issue and had a great run for a few years — now what?
70%以上业务由H5开发，手机QQ Hybrid 的架构如何优化演进
Powering UberEATS with React Native and Uber Engineering
In this article, we focus on one challenge in particular: how Uber Engineering handled introducing a third party to what had previously been a two-sided marketplace.
Memory-Efficient Image Passing in the Document Scanner
Speed is not the only thing that matters in a mobile environment: what about memory? Bounding both peak memory usage and memory spikes is important, since the operating system may terminate the app outright when under memory pressure. In this blog post, we will discuss some tweaks we made to lower the memory usage of our iOS document scanner.
ARIA Grid: Supporting nonvisual layout and keyboard traversal
At Facebook, we are experimenting with a user interface pattern for traversing a page with a keyboard that we call a logical grid. A logical grid reduces numerous tab stops to a single tab stop within a part of the interface designated as a grid. From the single tab stop, a person can traverse items in the grid using arrow keys.
A11Y Style Guide
The A11Y style guide comes with pre-populated accessible components that include helpful links to related tools, articles, and WCAG guidelines to make your site more inclusive. These components also serve as a guide for both HTML markup and SCSS/CSS code, to inform designers, front-end and back-end developers at every stage of the website’s creation.
Setting up multi-platform npm packages
This blog post explains ways of targeting multiple platforms via the same npm package.
Using DevTools to Tweak Designs in the Browser
Let’s look at some ways we can use the browsers DevTools to do design work. There are a few somewhat hidden tricks you mind find handy!
The Definitive Guide for Monitoring Node.js Applications
In this article, we will learn about running and monitoring Node.js applications in Production. Let’s discuss these topics: What is monitoring? What should be monitored? Open-source monitoring solutions; SaaS and On-premise monitoring offerings.
使用React的同学们都应该要知道React Fiber，因为这玩意快要正式发布了。据说Facebook在自己的网站已经将React Fiber投入实战，所以，React Fiber大势所趋，是时候了解一下React Fiber了。React Fiber是个什么东西呢？官方的一句话解释是“React Fiber是对核心算法的一次重新实现”。这么说似乎太虚无缥缈，所以还是要详细说一下。
React London 2017 Conference Report
In this blog post I hope to get you up to speed on what was presented at the conference. I’ll do a short blow-by-blow rundown of a few of the presentations and then share one person’s perspective of the themes that emerged during the day. 另附：MobX vs Redux: Comparing the Opposing Paradigms - React Conf 2017 纪要
React Lifecycle Methods- how and when to use them
In an ideal world, we wouldn’t use lifecycle methods. All our rendering issues would be controlled via state and props. But it’s not an ideal world, and sometimes you need to exact a little more control over how and when your component is updating. Use these methods sparingly, and use them with care. I hope this article has been helpful in illuminating when and how to use lifecycle methods.
In case you missed it, Node now supports async/await out of the box since version 7.6. If you haven’t tried it yet, here are a bunch of reasons with examples why you should adopt it immediately and never look back.
精读 js 模块化发展
React/Vue 和 Redux/Vuex 是分别在 MVC 中的 View 层和 Model 层做了进一步发展。如果 MVC 中的 Controller 层也推进一步，将得到一种升级版的 MVC，我们称之为 IMVC（同构 MVC）。IMVC 可以实现一份代码在服务端和浏览器端皆可运行，具备单页应用和多页应用的所有优势，并且可以这两种模式里通过配置项进行自由切换。配合 Node.js、Webpack、Babel 等基础设施，我们可以得到相比之前更加完善的一种前端架构。
CURL IS C
Every once in a while someone suggests to me that curl and libcurl would do better if rewritten in a “safe language”. Rust is one such alternative language commonly suggested. This happens especially often when we publish new security vulnerabilities. At the end of the day the question that remains is: would we gain more than we would pay, and over which time frame? Who would gain and who would lose? CURL 的维护者对技术选型的考虑挺值得参考的。
Scaling your API with rate limiters
Rate limiting is one of the most powerful ways to prepare your API for scale. The different rate limiting strategies described in this post are not all necessary on day one, you can gradually introduce them once you realize the need for rate limiting. 另附：如何设计一个小而美的秒杀系统 https://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=2659599014&idx=1&sn=14ffbf9307b0f11fd218285c837204f2
Thirteen Years of Bad Game Code
There are many, many more embarrassing mistakes to discuss. I discovered another “creative” method to avoid globals. For some time I was obsessed with closures. I designed an “entity” “component” “system” that was anything but. I tried to multithread a voxel engine by sprinkling locks everywhere. Here’s the takeaway: Make decisions upfront instead of lazily leaving them to the computer; Separate behavior and state; Write pure functions; Write the client code first; Write boring code.
Modules vs. microservices
Much has been said about moving from monoliths to microservices. Besides rolling off the tongue nicely, it also seems like a no-brainer to chop up a monolith into microservices. But is this approach really the best choice for your organization? It’s true that there are many drawbacks to maintaining a messy monolithic application. But there is a compelling alternative which is often overlooked: modular application development. In this article, we’ll explore what this alternative entails and show how it relates to building microservices.
Google Open Source - A new home for Google Open Source
赞 Google 的 slogan : Bringing better technology to the world by promoting open source. 另附：Microsoft Shutting down CodePlex.
New Web Features in Safari 10.1
While this release makes the web platform more capable and powerful, it also makes web development easier, simplifying the ongoing maintenance of your code. We’re excited to see how web developers will translate these improvements into better experiences for users.
Swift 3.1 Released!
Swift 3.1 is now officially released! Swift 3.1 is a minor release that contains improvements and refinements to the Standard Library. Thanks to efforts by IBM and other members of the community, it also includes many updates to the Linux implementation of Swift. There are also a number of updates to Swift Package Manager.
Echarts v3.5 发布
在 echarts 新发布的 3.5 版本中，新增了日历坐标系，增强了坐标轴指示器。同时，echarts 统计扩展 1.0 版本发布了。日历坐标系用于在日历中绘制图表，坐标轴指示器方便用户观察数据内容，统计扩展是一个专门用来进行数据分析的工具。
The Complete Redux Book
In this book you will learn about the inner workings of Redux, and how to use it to solve real-world challenges. We’ll teach you about everything you need to know to use this valuable tool effectively, including store enhancers, normalized state, unit testing, using third-party libraries, and much, much more.
We are proud to introduce Next 2.0 to the world. What follows is a quick summary of every new feature and improvement we have made: Component CSS Support; Programmatic API; Pre-fetching.
Redux Offline: A Persistent Redux Store for Offline-First Apps
Persistent Redux store for Reasonaboutable™️ Offline-First applications, with first-class support for optimistic UI. Use with React, React Native, or as standalone state container for any web app.
Reactide - The first dedicated IDE for React web application development
Reactide is a cross-platform desktop application that offers a custom simulator, making build-tool and server configuration unnecessary. Reactide brings development back to the days where opening a single file instantly renders the project in the browser. With Reactide, developers can achieve the same simplicity with a single React JSX file while still utilizing the power of React.
Fuchsia: a new operating system
Fuchsia is a new operating system being built more or less from scratch at Google. From piecing together information from the online documentation and source code, we can surmise that Fuchsia is a complete operating system for PCs, tablets, and high-end phones.
Apollo Client is a client-side library that leverages the power of a GraphQL API to handle data fetching and management for you, so that you can spend less time plumbing data and more on building your application.
explainshell is a tool (with a web interface) capable of parsing man pages, extracting options and explain a given command-line by matching each argument to the relevant help text in the man page.
The 5 features of ES8 and a wishlist for ES
We wanted to take a few moments to highlight our 5 favorite things about the upcoming 2017 release: 1. Object.entries and Object.values; 2. String.prototype.padStart / String.prototype.padEnd; 3. Object.getOwnPropertyDescriptors; 4. Async functions; 5. Shared memory and atomics.
A library used to position poppers in web applications.A popper is an element on the screen which “pops out” from the natural flow of your application. Common examples of poppers are tooltips, popovers and drop-downs.
A minimalistic finite state machine library for browser and node implemented using promises.
Glimmer - A fast and lightweight UI component library from the Ember.js team
Glimmer is one of the fastest DOM rendering engines, delivering exceptional performance for initial renders as well as updates. Architected like a virtual machine (VM), Glimmer compiles your templates into low-level code so it can run as fast as possible—without sacrificing ease of use.
在我的二十年程序员生涯中，我与其他程序员一起工作，作为同事，或者由我指导他们达成目标，为Redis和其他项目贡献代码补丁。在工作过程中，我仔细观察他们。与此同时，有很多人说我是一个高能的程序员。不过我不认为自己是一个工作狂，我只是编码速度比较快而已。 下面列出了我认为可以用于区分程序员生产力高低的重要特质。 另附：完美代码只是一个幻想罢了
Tower 团队 48 个月远程实践