摘文
据说软件“正在吞噬世界。”越来越多的领域依赖于代码。2015年夏天一天之内,离港管理系统存在问题,联合航空公司停飞; 纽约证券交易系统升级暂停交易; 华尔街日报网站的头版崩溃了;西雅图的911系统再次出现故障,这次是因为另一台路由器出现故障。
这么多软件系统的出现故障,作为软件开发者我们要有责任感。你的疏忽往小方面说影响公司营收;往大的方面有可能导致灾难。软件缺陷不仅来自程序员开发代码不严谨。也来自产品设计不合理,导致开发过于复杂。下面有两个简短事故,我们要引以为戒。
事故1:
在2014年4月10日晚,在华盛顿州的全部人无法拨打911服务热线。一名西雅图女子至少37次拨打911,一名陌生人试图闯入她的房子。当他终于从窗户爬进她的起居室时,她拿起一把菜刀。那个男人逃走了。
在这次报道中,911延机原因被追溯到科罗拉多州恩格尔伍德的服务器上运行的软件。由一个名为Intrado的提供商运营,该服务器有一个运行计数器,记录已经向全美各地的911调度员发送了多少呼叫。Intrado程序员设定了计数器阈值为百万的数字。
在4月10日午夜,超过了这个阀值,导致这次事故。而且由于程序员没有预料到这个问题,他们没有警报系统。直到早上恩格尔伍德的Intrado软件负责任人才发现,并且修复是为了改变一个数字。
事故二:
2007年9月,Jean Bookout女士在开着自己的丰田凯美瑞载着她的好朋友Barbara Schwarz 驾驶离俄克拉荷马州际69号高速公路时,她的汽车突然失去了控制。她不断地踩刹车,可是刹车踏板似乎失控了。情急之下,她拉紧手刹,汽车在减速撞击前,右后轮擦出了一条长达46米的刹车痕。 她的朋友Barbara Schwarz不幸当场去世。昏迷的Bookout女士被送到医院,她因为头部和背部的严重伤势在医院驻留了5个月。
在Bookout事故的诉讼中,软件专家团队花了18个月研究了丰田代码。Barr描述它们是“意大利面条代码”,彻检缺陷困难。
最终他们使用与事故中涉及的凯美瑞相同的模型,Barr的团队证明,实际上有超过1000万种方式可以使车载计算机导致意外加速。他们表明,只需一个位翻转 - 计算机内存中的一变为零或反之亦然 - 可能会使汽车失控。
总而言之,丰田召回了超过900万辆汽车,并支付了近30亿美元的定居费和与意外加速相关的罚款。
原文:即将来临的软件启示录[1]
新闻摘要
Microsoft Edge推出mac预览版
新的Microsoft Edge预览基于Chromium渲染引擎。现在可以在macOS使用'Canary'版本。
原文:Microsoft Edge推出mac预览版[2]
Firefox 67发布
Firefox的最新支持夜间模式以及新的渲染架构。
原文:Firefox 67发布[3]
好文推荐
为什么高级程序员写的代码都是傻瓜式的?
好的代码应该是通俗易懂的,给人一种赏心悦目好像在阅读一篇美好的散文。
原文:为什么高级程序员写的代码都是傻瓜式的?[4]
59条令人捧腹但真实的程序员编程语录
收集了很多关于软件开发者的编程语录。这些语录和软件开发维护、调试、软件bug、软件设计和文档、代码质量、测试和管理等相关。下面这59条编程语录虽然令人捧腹但也揭示了真相。只有真正的软件开发人员才能理解这些编程语录的价值。
原文:59条令人捧腹但真实的程序员编程语录[5]
SOLID原则:软件开发人员强健可维护代码框架
原文:SOLID原则:软件开发人员强健可维护代码框架[6]
Koin vs Dagger,向Koin问好
原文:Koin vs Dagger,向Koin问好[7]
什么是UX工程师?
介绍UX工程师工作职责,需要具备哪些技能。
原文:什么是UX工程师?[8]
教程
Vue.js和SEO:如何优化响应式网站
使用响应式框架创建的网站是否会被Google和其他搜索引擎索引?
原文:Vue.js和SEO:如何优化响应式网站[9]
Three.js基础知识
这是关于three.js的系列文章中的第一篇文章。 Three.js是一个3D库,试图让它尽可能容易地在网页上实现3D内容。
原文:Three.js基础知识[10]
为什么要用WebP图片
WebP是由Google在2010年开发的一种图像格式。目的是为了替代PNG和JPG等格式,它的优点是在保持相似图像质量的同时压缩文件大小。
原文:为什么要用WebP图片[11]
权威的Node.js手册
本手册是Node.js的入门指南。
原文:权威的Node.js手册[12]
学习JavaScript设计模式
chrome浏览器一位员工编写在线版JavaScript设计模式教程。
原文:学习JavaScript设计模式[13]
前端开发人员手册2019
每个人都可以了解的前端开发实践的指南。它概括并概述了前端工程的实践:如何学习它以及在2019年实践它时使用的工具。有pdf以及epub版本。
原文:前端开发人员手册2019[14]
动画手册
动画手册制作出色的动画更加直观的数字产品界面。
原文:动画手册[15]
学习资料
Python学算法入门大全
用Python代码实现了主流的算法。
原文:Python学算法入门大全[16]
前端收集
收录前端开发相关的优秀网站、博客、以及活跃开发者。
原文:前端收集[17]
Go 夜读
这个项目每周会通过在线直播的方式,向开发者分享 Go 相关的技术话题,在Slack上沟通交流编程技术话题。
原文:Go 夜读[18]
JavaScript 编码规范
一份来自 Airbnb 团队开源的 JavaScript 编码规范指南。
原文:JavaScript 编码规范[19]
ChinaMobilePhoneNumberRegex
国内手机号码正则表达式。
原文:ChinaMobilePhoneNumberRegex[20]
F4Lab
基于Flutter开源的GitLab客户端。
原文:F4Lab[21]
Kotlin教程
一个友好Kotlin入门教程
原文:Kotlin教程[22]
js
对图片和帧的本地延迟加载的深入研究
现在的网站充斥着大量的流媒体文件,如图片和视频。图片占网站平均流量的50%左右。懒加载是一种按需加载资源来改善用户体验的好方法。
原文:对图片和帧的本地延迟加载的深入研究[23]
你想知道的关于inputmode的一切
介绍在浏览器中根据inputmode设置模式,决定键盘在浏览器显示方式。
原文:你想知道的关于inputmode的一切[24]
免费指南:JavaScript工具的演变
在本指南中,分析Angular,React和Vue,比较它们的优缺点,以帮助开发人员进行工具决策制定过程
原文:免费指南:JavaScript工具的演变[25]
折叠DOM:使用3D CSS变换来“折叠”图像
基于React、CSS创建图像折叠效果。
原文:折叠DOM[26]
CSS
网页排版
几种流畅的网页排版方法,并研究了哪种方法效果最好。
原文:网页排版[27]
调试CSS网格
一系列简短的文章深入研究网格布局常见问题,旨在更好地理解网格,以便可以预测布局问题,并在发生问题时更轻松地进行调试。
原文:调试CSS网格[28]
z-index无法工作的4个原因(以及如何解决)
Z-index是一个CSS属性,允许将图层中的元素放在彼此的顶部。了解如何在CSS中使用的一个非常重要的工具。
原文:z-index无法工作的4个原因[29]
截断多行文本的CSS功能
在Firefox实现类似微信朋友圈截断文本,限制指定的行数(1或更多),最后用省略号(...)结尾。
原文:截断多行文本的CSS功能[30]
css实现中国古代传统窗格--窗棂
应用-webkit-box-reflect属性实现中国古代传统窗格--窗棂
原文:css实现中国古代传统窗格--窗棂[31]
漂亮简单易用的标签动画
专注于流动性,简洁性和易用性。纯CSS实现。完全开源和MIT许可。
原文:漂亮简单易用的标签动画[32]
CSS3 Transform
一个2D和3D CSS Transform函数可视化工具。
原文:CSS3 Transform[33]
Organic Blending
一个美丽的有机内容滑块,带有混合渐变背景
原文:Organic Blending[34]
CSS可以做这些事
CSS可以做的事情列表
原文:CSS可以做这些事[35]
工具
GitHub JS
2019年5月,GitHub JS 43个最受欢迎的存储库
原文:[GitHub JS](https://dev.to/iriskatastic/43-most-popular-github-js-repositories-in-may-2019-dhn?utm_source=digest_mailer&utm_medium=email&utm_campaign=digest_email "GitHub JS
Tornis介绍
一个JavaScript库,用于跟踪鼠标位置,窗口大小,滚动位置等
原文:Tornis介绍[36]
Rough.js
Rough.js是一个小型(约8.5kB gzip)粗略的手绘风格图形库。该库定义了绘制直线,曲线,圆弧,多边形,圆和椭圆的基元。支持绘制SVG路径。
原文:Rough.js[37]
reveal.js
使用HTML轻松创建精美PPT效果的框架
原文:reveal.js[38]
embetty
在博客嵌入推文以及视频
原文:embetty[39]
参考资料
[1]即将来临的软件启示录: https://medium.com/the-atlantic/the-coming-software-apocalypse-4ffb43f3b288
[2]Microsoft Edge推出mac预览版: https://blogs.windows.com/msedgedev/2019/05/20/microsoft-edge-macos-canary-preview/
[3]Firefox 67发布: https://hacks.mozilla.org/2019/05/firefox-67-dark-mode-css-webrender/
[4]为什么高级程序员写的代码都是傻瓜式的?: https://www.infoq.cn/article/gu0HigYOJ-Wf20HayH69
[5]59条令人捧腹但真实的程序员编程语录: http://www.cocoachina.com/programmer/20160704/16918.html
[6]SOLID原则:软件开发人员强健可维护代码框架: https://khalilstemmler.com/articles/solid-principles/solid-typescript/
[7]Koin vs Dagger,向Koin问好: https://medium.com/@farshidabazari/android-koin-with-mvvm-and-retrofit-e040e4e15f9d
[8]什么是UX工程师?: https://dev.to/emmawedekind/ux-engineering-3hem
[9]Vue.js和SEO:如何优化响应式网站: https://www.smashingmagazine.com/2019/05/vue-js-seo-reactive-websites-search-engines-bots/
[10]Three.js基础知识: https://threejsfundamentals.org/threejs/lessons/threejs-fundamentals.html
[11]为什么要用WebP图片: https://bitsofco.de/why-and-how-to-use-webp-images-today/
[12]权威的Node.js手册: https://medium.freecodecamp.org/the-definitive-node-js-handbook-6912378afc6e
[13]学习JavaScript设计模式: https://addyosmani.com/resources/essentialjsdesignpatterns/book/
[14]前端开发人员手册2019: https://frontendmasters.com/books/front-end-handbook/2019/
[15]动画手册: https://www.designbetter.co/animation-handbook/purpose
[16]Python学算法入门大全: https://github.com/TheAlgorithms/Python
[17]前端收集: https://github.com/foru17/front-end-collect
[18]Go 夜读: https://github.com/developer-learning/reading-go
[19]JavaScript 编码规范: https://github.com/airbnb/javascript
[20]ChinaMobilePhoneNumberRegex: https://github.com/VincentSit/ChinaMobilePhoneNumberRegex
[21]F4Lab: https://github.com/stefanJi/Flutter4GitLab
[22]Kotlin教程: http://lixiaojun.xin/static/courses/kotlin/
[23]对图片和帧的本地延迟加载的深入研究: https://css-tricks.com/a-deep-dive-into-native-lazy-loading-for-images-and-frames/
[24]你想知道的关于inputmode的一切: https://css-tricks.com/everything-you-ever-wanted-to-know-about-inputmode/
[25]免费指南:JavaScript工具的演变: https://www.sencha.com/resources/whitepaper/the-evolution-of-javascript-tooling/?utm_source=cooperpress&utm_medium=advertising&utm_campaign=sncextjs&utm_content=052219-sncextjs-ad-fef
[26]折叠DOM: https://www.joshwcomeau.com/posts/folding-the-dom/
[27]网页排版: https://betterwebtype.com/articles/2019/05/14/the-state-of-fluid-web-typography/?utm_source=CSS-Weekly&utm_campaign=Issue-364&utm_medium=web
[28]调试CSS网格: https://css-irl.info/debugging-css-grid-part-1-understanding-implicit-tracks/
[29]z-index无法工作的4个原因: https://medium.freecodecamp.org/4-reasons-your-z-index-isnt-working-and-how-to-fix-it-coder-coder-6bc05f103e6c
[30]截断多行文本的CSS功能: https://webplatform.news/issues/2019-05-17?utm_source=CSS-Weekly&utm_campaign=Issue-364&utm_medium=web
[31]css实现中国古代传统窗格--窗棂: https://yuanchuan.dev/2019/05/15/window-lattice-and-css.html?utm_source=CSS-Weekly&utm_campaign=Issue-364&utm_medium=web
[32]漂亮简单易用的标签动画: https://cssfx.dev/?utm_source=CSS-Weekly&utm_campaign=Issue-364&utm_medium=web
[33]CSS3 Transform: https://css-transform.moro.es/?utm_source=CSS-Weekly&utm_campaign=Issue-364&utm_medium=web
[34]Organic Blending: https://codepen.io/team/keyframers/pen/RmLjzQ?utm_source=CSS-Weekly&utm_campaign=Issue-364&utm_medium=web
[35]CSS可以做这些事: https://dev.to/ananyaneogi/css-can-do-that-18g7
[36]Tornis介绍: https://tornis.robbowen.digital/
[37]Rough.js: https://roughjs.com/
[38]reveal.js: https://github.com/hakimel/reveal.js
[39]embetty: https://github.com/heiseonline/embetty