From edf68f4d6bac89867d06c40256682bf485d4b089 Mon Sep 17 00:00:00 2001 From: zenany Date: Thu, 27 Jun 2019 10:52:50 +0800 Subject: [PATCH] add weekly 20190624 --- software/2019/0617.md | 2 +- software/2019/0624.md | 239 +++++++++++++++++++++++++++++++++++++ software/2019/excellent.md | 4 + 3 files changed, 244 insertions(+), 1 deletion(-) create mode 100644 software/2019/0624.md diff --git a/software/2019/0617.md b/software/2019/0617.md index 2f92578..8eb71f1 100644 --- a/software/2019/0617.md +++ b/software/2019/0617.md @@ -9,7 +9,7 @@ Design Patterns was a great effort in 1994, and I've personally benefited from i **Micro Frontends** https://martinfowler.com/articles/micro-frontends.html -Good frontend development is hard. Scaling frontend development so that many teams can work simultaneously on a large and complex product is even harder. In this article we'll describe a recent trend of breaking up frontend monoliths into many smaller, more manageable pieces, and how this architecture can increase the effectiveness and efficiency of teams working on frontend code. As well as talking about the various benefits and costs, we'll cover some of the implementation options that are available, and we'll dive deep into a full example application that demonstrates the technique. +Good frontend development is hard. Scaling frontend development so that many teams can work simultaneously on a large and complex product is even harder. In this article we'll describe a recent trend of breaking up frontend monoliths into many smaller, more manageable pieces, and how this architecture can increase the effectiveness and efficiency of teams working on frontend code. As well as talking about the various benefits and costs, we'll cover some of the implementation options that are available, and we'll dive deep into a full example application that demonstrates the technique. 另附:[Microfrontends: the good, the bad, and the ugly](https://zendev.com/2019/06/17/microfrontends-good-bad-ugly.html). **Why tools like Flutter need to succeed** https://chimon.hashnode.dev/why-tools-like-flutter-need-to-succeed-cjw23fso8000gn9s1p5t78gfd diff --git a/software/2019/0624.md b/software/2019/0624.md new file mode 100644 index 0000000..e871e2c --- /dev/null +++ b/software/2019/0624.md @@ -0,0 +1,239 @@ +2019.06.24 - Reactive Systems Architecture +======== + +## 深阅读 + +**V8 release v7.6** +https://v8.dev/blog/v8-release-76 +V8 v7.6 is filled with all sorts of developer-facing goodies. This post provides a preview of some of the highlights in anticipation of the release. 另附:[V8 - Code caching for WebAssembly developers](https://v8.dev/blog/wasm-code-caching). + +**Reactive Systems Architecture** +https://www.infoq.com/presentations/arch-reactive-systems/ +Jan Machacek and Matthew Squire give us the answer to the click-baity headline “Four things that make the biggest impact in distributed systems”, together with architectural and code examples to help avoid repeating their mistakes. + +**How we’re bringing Google Earth to the Web** +https://web.dev/earth-webassembly +Improving cross-browser access to Google Earth with WebAssembly. + +**Facebook’s open source browser contributions** +https://code.fb.com/web/browser-contributions/ +Thanks to some powerful new technologies, web applications have come a long way in the past decade. But the performance of these web applications still lags behind that of their native counterparts. Like many complex applications on the web, our desktop Facebook.com website is slower to load than our native mobile Android app on the same hardware — even though the web app loads an order of magnitude less code. We wanted to improve the startup time of web apps by improving the web platform, so we initiated several projects to help the web scale as a platform for large applications. + +**Try Bazel’s opt-in preview in Angular CLI** +https://blog.angular.io/try-bazels-opt-in-preview-in-angular-cli-b9430bd00e82 +In Google we build all our software with a tool called Bazel. We’ve been using it for the past over 12 years to build projects with any size — from small internal apps, to large applications such as Gmail, Google Drive, and Google Cloud Console. Thanks to its properties — hermeticity, parallelism, and incrementality, Bazel enables fast builds, which are proportional to the changes that we’ve made, rebuilding only the artifacts that are affected by the updated files. + +**Microfrontends: the good, the bad, and the ugly** +https://zendev.com/2019/06/17/microfrontends-good-bad-ugly.html +Front-end twitter exploded last week talking about ‘microfrontends’, with strong arguments and strong opinions jumping out on both sides. The argument reminds me a lot about the “CSS in JS” argument, with both sides talking past each other. I’ve certainly been guilty of that in the past, but this time I’m going to try for a more nuanced approach. I think just like with CSS in JS, there are real tradeoffs and differences depending on your project and organizational constraints. There are also good approaches and bad approaches to implementing microfrontends. So here we go, let’s take a look at the good, the bad, and the ugly of microfrontends. + +**支付宝玉伯:从前端到体验,如何把格局做大** +https://mp.weixin.qq.com/s/kUBGjcP2nz2KdVwTW0FSSw +国内的前端行业,是一个群星璀璨,同时又有些纷纷扰扰的圈子。很多初出茅庐的年轻人怀着改变世界的梦想,谁也不服谁。不过,有一些为前端领域做出贡献的拓荒者几乎受到所有人的尊敬,玉伯就是这些拓荒者中的一员。如今,他已经是蚂蚁金服研究员,带领着体验技术部,打造出 Ant Design、AntV、Eggjs 等广受欢迎的开源项目,他所在的团队也成为国内前端开发者向往的地方。 + +**七牛云许式伟:我所理解的架构是什么** +https://www.infoq.cn/article/scbBuLydXi00sZ4v*UyN +今天站在管理的视角再看软件工程,我们知道管理学谈的是确定性,我们如何去创造确定性是管理学中的追求,否则管理管什么呢?某种意义上来说管理学的目的就是要抑制不确定性,产生确定性。比如说开发的工期,时间成本是否能确定。其次,人力成本,研发成本和后期运维的成本是不是确定性的。所以软件项目的管理又期望达到确定性。这是一对矛盾。软件工程本身是快速变化的,是不确定的。但是软件工程管理又希望得到确定性,这就是软件工程管理上的矛盾。我们的目标是在大量的不确定性中找到确定性,这是我认为这件事情最核心的点。 + +**知乎 iOS 客户端工程化工具 - Venom** +https://zhuanlan.zhihu.com/p/69526642 +Venom 的用户端是一款为开发人员打造 Mac App,应用内置了工程构建需要的全套 Ruby Gem 和 Cocoapods 等其相关构建环境。核心目标是解决工程构建,二进制构建,组件管理,调试工具等一系列开发过程中的繁琐耗时任务。 + +**JavaScript Internals: JavaScript engine, Run-time environment & setTimeout Web API** +https://blog.bitsrc.io/javascript-internals-javascript-engine-run-time-environment-settimeout-web-api-eeed263b1617 +A detailed walk-through of all the core components that are involved in the execution of JavaScript code. + +**Chromium and the browser monoculture problem** +https://dev.to/kenbellows/chromium-and-the-browser-monoculture-problem-420n +I've been thinking a lot about an oooold problem in the web dev community, one that's been the subject of 🔥flamewars🔥 basically since web browsers have existed: "browser monoculture". This topic has flared up again recently as a result of Microsoft dropping their EdgeHTML browser engine and moving Edge to Google's Chromium engine. + +**Low-Code vs. No-Code: Form Following Function** +https://www.outsystems.com/blog/posts/low-code-vs-no-code/ +There are a number of very significant differences between low-code and no-code platforms, if you’re considering moving away from traditional application development, or even just want to try out visual application development, you’ll want to be aware of what you’re getting in each offering. Let’s get to the bottom of the low-code vs no-code phenom and see precisely what’s what. + +**The CSS Mindset** +https://mxb.dev/blog/the-css-mindset/ +Ah yes, CSS. Hardly a week passes without it being the topic of a heated online discussion. It’s too hard. It’s too simple. It’s unpredictable. It’s outdated. Peter Griffin struggles with blinds dot gif. I don’t know why CSS sparks so many different emotions in developers, but I have a hunch as to why it can sometimes seem illogical or frustrating: You need a certain mindset to write good CSS. + +**Relearn CSS layout** +https://every-layout.dev/ +If you find yourself wrestling with CSS layout, it’s likely you’re making decisions for browsers they should be making themselves. Through a series of simple, composable layouts, Every Layout will teach you how to better harness the built-in algorithms that power browsers and CSS. + +**Unleash The Power Of Path Animations With SVGator** +https://www.smashingmagazine.com/2019/06/unleash-power-path-animations-svgator/ +Creating complex SVG animations can be a challenging and tedious task — but not anymore. In this article, you will learn how to create path animations for the web using [SVGator](https://www.svgator.com/), an online app created especially for the purpose of animating SVG files. It is a web-based app that allows you to import static SVG files, animate them using a user-friendly visual interface, and export them as animated SVG. Exported animations are CSS-based and ready to use on the web. + +**Trapped in the Present: How engagement bias in short-run experiments can blind you to long-run insights** +https://medium.com/@Pinterest_Engineering/trapped-in-the-present-how-engagement-bias-in-short-run-experiments-can-blind-you-to-long-run-58b55ad3bda0 +Like many companies, Pinterest uses experiments to make product decisions multiple times a day. But as Jed Bartlett said on The West Wing, “decisions are made by those who show up”: we make decisions based on the users who actually enter our experiments, and that means we have to understand engagement bias if we want to both make Pinterest work better for existing Pinners and also inspire the next generation of Pinners to create the life they love. + +**Serverless is a Doctrine, not a Technology** +https://medium.com/@PaulDJohnston/serverless-is-a-doctrine-not-a-technology-4193ccb66cfc +Serverless is a doctrine. What is doctrine? For our purposes, a doctrine is a set of principles that you have learned from experience, and codified into some written form e.g. a set of best practices… like my best practices blog post… 另附:[From a high traffic monolithic app to serverless](https://skyscrapers.eu/insights/transforming-a-monolithic-app-to-a-serverless-app). + +**Six Strategies for Deploying to Heroku** +https://blog.heroku.com/six-strategies-deploy-to-heroku +In this post, we'll present six of the most common ways to deploy apps to Heroku and how they fit into your deployment strategy. These strategies are not mutually exclusive, and you can combine several to create the best workflow for your team. Reading this post will help you understand the different options available and how they can be implemented effectively. + +**SoundCloud Is Playing the Oboe** +https://developers.soundcloud.com/blog/soundcloud-is-playing-the-oboe +Media and playback are at the core of SoundCloud’s experience. For that reason, we have established and grown an engineering team that is specialized in providing the best possible streaming experience to our users across multiple platforms. To do this, we combine the industry’s best-fitting solutions with our own custom technologies, libraries, and tools. In this article, let’s dive into how we improved latency in our Android application by leveraging a new engine for our player’s audio sink. + +**API Mindset at eBay** +https://www.ebayinc.com/stories/blogs/tech/api-mindset-at-ebay/ +APIs allow organizations to give their partners access to data and capabilities, at scale. Extensible and adaptable API ecosystems make it easier for developers to innovate. Building such an ecosystem is a progressive journey with many technical challenges. + +**Using Causal Inference to Improve the Uber User Experience** +https://eng.uber.com/causal-inference-at-uber/ +At Uber Labs, we apply behavioral science insights and methodologies to help product teams improve the Uber customer experience. One of the most exciting areas we’ve been working on is causal inference, a category of statistical methods that is commonly used in behavioral science research to understand the causes behind the results we see from experiments or observations. We’ve found it invaluable to bring causal inference methods to our work at Uber, as it enables us to solve challenging but critical data science questions that would otherwise be impossible to tackle, such as estimating the treatment effect when a randomized controlled experiment is not possible or addressing additional complexities within the experimental data. + +**Things I Learnt The Hard Way (in 30 Years of Software Development)** +https://blog.juliobiason.net/thoughts/things-i-learnt-the-hard-way/ +This is a cynical, clinical collection of things I learnt in 30 years working with software development. Again, some things are really cynical, others are long observations on different jobs. 另附:[How to Become a Better Developer](https://blog.bitsrc.io/how-to-become-a-better-developer-8d97abd9668e). + +## 新鲜货 + +**The State of CSS 2019** +https://2019.stateofcss.com/ +In the web development family, JavaScript has developed a bit of a reputation as the angry, rebellious teenager going through a new phase every year and telling you you're just too old to understand. CSS on the other hand has always been the studious, well-behaved kid who always stays polite and never makes a rash decision. We've surveyed over 10,000 developers in this first ever State of CSS survey. So join us to find out which CSS features are used the most, which tools are gaining adoption, and much more. + +**MongoDB Charts is now Generally Available** +https://www.mongodb.com/blog/post/mongodb-charts-is-now-generally-available +Visualizing data using charts, maps, and tables is one of the best ways to make that data accessible to all and unlocking the insights within it. A collection of a million documents may be detailed and accurate, but doesn’t on its own tell stories about trends, outliers or anomalies. Even a simple bar or line chart over that data can unlock its secrets. + +**Google to reimplement curl in libcrurl** +https://daniel.haxx.se/blog/2019/06/19/google-to-reimplement-curl-in-libcrurl/ +Implementing libcurl using Cronet would allow developers to take advantage of the utility of the Chrome Network Stack, without having to learn a new interface and its corresponding workflow. This would ideally increase ease of accessibility of Cronet, and overall improve adoption of Cronet by first-party or third-party applications. + +**Vue.js 3.0 to Gain a Function-Based Component API?** +https://github.com/vuejs/rfcs/blob/function-apis/active-rfcs/0000-function-api.md +An interesting look at the next step for the Vue.js project in the shape of a new approach to exposing component options via function-based APIs rather than the class-based API (although current syntax will continue to work and be supported). Here’s the actual [pull request](https://github.com/vuejs/rfcs/pull/42). + +**TOAST UI Grid 4.0 is Finally Here!** +https://medium.com/@toastui/release-news-toast-ui-grid-4-0-is-finally-here-585934ddf091 +From the beginning of the year, we have been working hard to provide you with a faster and leaner product filled with convenient features. We have eliminated the unnecessary dependencies; enhanced the performance through the virtual DOM; and undertaken a massive task of improving the overall API. Finally, we are proud to present to you the more powerful and lighter TOAST UI Grid 4.0! + +**Just - The task library that just works** +https://github.com/microsoft/just +Just is a library that organizes build tasks for your JS projects. It consists of: a build task build definition library; sane preset build flows for node and browser projects featuring Typescript, Webpack and jest; project scaffold tool that generates no-ejection needed repos that tracks template changes. + +**EventEmitter3** +https://github.com/primus/eventemitter3 +EventEmitter3 is a high performance EventEmitter. It has been micro-optimized for various of code paths making this, one of, if not the fastest EventEmitter available for Node.js and browsers. + +**Maintainer spotlight: Russ Magee** +https://github.blog/2019-06-20-maintainer-spotlight-russ-magee/ +With the launch of GitHub Sponsors, open source maintainers and developers can apply to receive funding from the community that depends on their work. Through sponsorship, open source maintainers have the freedom, financial security, and autonomy to continue the work they’re passionate about to further build and strengthen the open source community. Over the next few weeks, we’re sharing the stories of several open source contributors. Learn about their projects, challenges, and what sponsorship means to them. + +**GitLab 12.0 released with Visual Reviews and Dependency List** +https://about.gitlab.com/2019/06/22/gitlab-12-0-released/ +Dev, Sec, and Ops; Visual Reviews; Project Dependency List; 另附:[Announcing GitLab for DevSecOps](https://about.gitlab.com/2019/06/20/announcing-gitlab-devsecops/). + +**Qt 5.13 Released!** +https://blog.qt.io/blog/2019/06/19/qt-5-13-released/ +For Qt 5.13, we have also been focused on our tooling that makes designing, developing and deploying software with Qt more efficient for designers and developers alike. Let’s take a look at some of the highlights of Qt 5.13 as well as some of the updates on the tooling side. + +**A New Bytecode Format for JavaScriptCore** +https://webkit.org/blog/9329/a-new-bytecode-format-for-javascriptcore/ +In revision r237547 we introduced a new bytecode format for JavaScriptCore (JSC). The goals of the new format were to improve memory usage and allow the bytecode to be cached on disk, while the previous format was optimized for interpreter throughput at the cost of memory usage. + +**ESLint v6.0.0 released** +https://eslint.org/blog/2019/06/eslint-v6.0.0-released +Configuration using glob patterns now supports extends and nested overrides; Using multiple processors is now supported; The function-paren-newline rule has a new multiline-arguments option; The sort-keys rule now supports a minKeys option. 另附:[Turns off all rules that are unnecessary or might conflict with Prettier](https://github.com/prettier/eslint-config-prettier). + +**Protecting Package Publishers: npm Token Security and Hygiene now Extend to GitHub** +https://blog.npmjs.org/post/185680936500/protecting-package-publishers-npm-token-security +We’re excited to announce that, in collaboration with GitHub’s token scanning partnership program, we’ve taken our existing token revocation efforts a step further. Whenever you commit or push a change to GitHub in a public repository and an npm token is found in the change, it is sent to npm for validation + +**Announcing styled-components v5: Beast Mode** +https://medium.com/styled-components/announcing-styled-components-v5-beast-mode-389747abd987 +50% faster server-side rendering, 20% faster client-side rendering, 19% smaller bundle size, RTL support and no breaking changes! + +**Craft beautiful equations in Word with LaTeX** +https://www.nature.com/articles/d41586-019-01796-1?utm_source=twt_nnc&utm_medium=social&utm_campaign=naturenews&sf214320000=1 +Manufacturers are ditching equation editors in word-processing software in favour of the LaTeX typesetting language. Here’s how to get started. + +**deepmerge** +https://github.com/TehShrike/deepmerge +Merges the enumerable properties of two or more objects deeply. + +**React-toastify** +https://fkhadra.github.io/react-toastify/ +React notification made easy ! React-Toastify allow you to add notification to your app with ease. No more nonsense! + +**React-Move** +https://github.com/react-tools/react-move +Beautiful, data-driven animations for React. Just 3.5kb (gzipped)! + +**React-designer** +https://github.com/react-designer/react-designer +Easy to configure, lightweight, editable vector graphics in your react components. + +**react-mosaic** +https://github.com/nomcopter/react-mosaic +A React tiling window manager. + +**Spotlight: A New Lightbox Gallery Library** +https://github.com/nextapps-de/spotlight +Web's most easy to integrate lightbox gallery library. Super-lightweight, outstanding performance, no dependencies. 另附:[lightgallery.js - Full featured javascript lightbox gallery](https://sachinchoolur.github.io/lightgallery.js/). + +**Freezeframe.js** +https://github.com/ctrl-freaks/freezeframe.js/ +Freezeframe.js is a library that pauses animated .gifs and enables them to animate on mouse hover / mouse click / touch event, or triggered manually. + +**CSS Wand** +https://www.csswand.dev/ +Easy Copy-Paste Beautiful CSS That can be easily customized further at your own choice + +**macOS-Simple-KVM** +https://github.com/foxlet/macOS-Simple-KVM/ +Tools to set up a quick macOS VM in QEMU, accelerated by KVM. + +**Apollo 11 in Real Time** +https://apolloinrealtime.org/11/ +A real-time journey through the first landing on the Moon. This website consists entirely of original historical mission material + +## 设计 + +**How Microsoft’s Human Insights Library Creates a Living Body of Knowledge** +https://medium.com/microsoft-design/how-microsofts-human-insights-library-creates-a-living-body-of-knowledge-fff54e53f5ec +HITS enables researchers and product teams to unlock their collective UX power. + +**Front Utah 2019 Conference Recap** +https://www.uxbooth.com/articles/front-utah-2019-conference-recap/ +Hosted in the heart of Salt Lake City, Front Utah is in its fifth year and climbing the ranks to becoming a premiere learning destination for tech workers and enthusiasts alike. Here are some of my takeaways from the [2019 Front Case Study Conference for UX + PM](https://www.frontutah.com/conference/). Learn more for yourself — each presentation title below is linked to a video of the full talk. + +**10 one-page websites to inspire your own** +https://www.invisionapp.com/inside-design/10-one-page-websites/ +When done correctly, the one-page format gives your user a simple-but-functional experience without the burden of navigating pages and links. We want to show you a few more great examples of one-page websites to help inspire your own design—and then give you some great tips on building your own in InVision Studio. + +**Drop caps & design systems** +https://product.voxmedia.com/2019/6/17/18524029/the-ballad-of-drop-caps-and-design-systems +A drop cap is often used to signify that the reader’s moved into a significant new section, or that a new chapter’s begun. On the web, we use drop caps for similar reasons: both as a design accent, and as a visual cue to draw the reader’s eye toward an important piece of text. In the web’s early days, designers like Jason Santa Maria and Jessica Hische helped popularize the technique; more recently, Jason Pamental and Jen Simmons have showed us more modern techniques for bringing drop caps to the web. + +## 产品及其它 + +**PowerPoint AI gets an upgrade and Designer surpasses a major milestone of 1 billion slides** +https://www.microsoft.com/en-us/microsoft-365/blog/2019/06/18/powerpoint-ai-upgrade-designer-major-milestone-1-billion-slides/ +We’re excited to share that not only have we hit a major milestone in PowerPoint Designer usage, we’re also announcing new Designer capabilities that suggests high quality content to jumpstart authoring and provides perspective suggestions for quantitative content. And yes, in a “but wait, there’s more” moment, we’re ready to share that our AI effort is moving beyond Designer—with our new Presenter Coach—intended to help our users build confidence in their presenting abilities. + +**Improve your English pronunciation using Youtube** +https://youglish.com/ +Use YouTube to improve your English pronunciation. With more than 30M tracks, YouGlish gives you fast, unbiased answers about how English is spoken by real people and in context. + +**Principles for a Contract for the Web** +https://contractfortheweb.org/ +The web was designed to bring people together and make knowledge freely available. Everyone has a role to play to ensure the web serves humanity. By committing to the following principles, governments, companies and citizens around the world can help protect the open web as a public good and a basic right for everyone. + +**如何超过大多数人** +https://coolshell.cn/articles/19464.html +当你看到这篇文章的标题,你一定对这篇文章产生了巨大的兴趣,因为你的潜意识在告诉你,这是一本人生的“武林秘籍”,而且还是左耳朵写的,一定有干货满满,只要读完,一定可以练就神功并找到超过大多数人的快车道和捷径……另附关于成长的两个文章:[张鑫旭:工作10年,我在前端专业成长路上的探索](https://mp.weixin.qq.com/s/mjzhU4K-RS6IbhBiiL0sgw)、[洪强宁:编程三十年,因Python结识豆瓣,想用技术改变世界](https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2651017038&idx=1&sn=94624cfc00e1ee4faa49772d9e608907)。 + +**The data in dirt** +https://www.weibo.com/1831348402/HzNw32J1m +技术型人才(例如软件开发者、发明家和科学家)总能找到吸引人的课题和了不起的合作伙伴。吴威廉正利用他的技术能力开发软件和硬件,用来改善发展中国家的农业和医疗保健。对应的公司:https://qed.ai/ Quantitative Engineering Design Scientific Computing for Health and Agriculture. + + +> 对数据可视化有兴趣的可以阅读由 AntV 带来的 [墨者修齐 2019-06-24·本周推上最火 ShowYourStripes、Uber's Vis.gl、信息图创造工具 InfoNice](https://www.yuque.com/mo-college/weekly/srtp0l) + +-- THE END -- diff --git a/software/2019/excellent.md b/software/2019/excellent.md index 4fd57e0..b097f09 100644 --- a/software/2019/excellent.md +++ b/software/2019/excellent.md @@ -3,6 +3,10 @@ Excellent ## 06 +**Serverless is a Doctrine, not a Technology** +https://medium.com/@PaulDJohnston/serverless-is-a-doctrine-not-a-technology-4193ccb66cfc +Serverless is a doctrine. What is doctrine? For our purposes, a doctrine is a set of principles that you have learned from experience, and codified into some written form e.g. a set of best practices… like my best practices blog post… + **How to Be Great? Just Be Good, Repeatably** https://blog.stephsmith.io/how-to-be-great/ Over the years, we’ve all encountered our fair share of successes and failures. As I’ve acquired more of both under my name, I’ve started to contemplate which experiences were truly “great” and why.