科技爱好者周刊(第 210 期):为什么软件变得复杂

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。

封面图

大家可能知道,Salesforce 是一家世界级软件公司,专门开发企业软件,以产品复杂而闻名。

“任何在科技行业工作足够长的人,尤其是在大公司工作的人,都曾见过下面的场景。

有一个遗留系统,很大很复杂,没有人完全理解它是如何工作的。

架构师被要求”修复”系统,他们找来一块大的白板,把这个大系统分解成很多方框和箭头。对于遇到的问题,他们的解决方案就是……添加更多方框和箭头。没有任何一个可以从系统中消去,每个人都只是加上自己的那部分。

这一段是不是写得很形象,就像是日常场景的描述。

根据他的文章,我整理了一下,Saleforce 内部的情况大概是这样的。

  1. 客户的需求非常复杂。为了满足这些需求,大型软件不可避免变得复杂。
  2. 软件公司的管理者真正在意的不是系统的复杂性,而是利润。只要软件能赚钱,高层并不在意软件变得复杂。
  3. 软件复杂性都落到少数架构师和高级程序员的头上。每个人加上自己的解决方案(方框和箭头),让软件越来越复杂,然后不可避免地,他们就会在一段时间后离开公司。
  4. 复杂系统最终变得难以理解和维护,唯一的解决方法就是放弃旧系统,从头开始写一个新系统。

所以,诺拉·劳森的结论很悲观:怎么解决软件的复杂性不了。最后就是你走人,公司把软件推倒重来。

这就是一个大厂高级程序员的真实想法。国内的情况其实差不多,上面的描述完全适用于 BAT 内部的复杂系统。

(二)

诺拉·劳森还说了一个观点。大家通常认为,复杂系统往往会在经济繁荣的时候崩溃,因为业务太多,支撑不过来,但他认为不是这样的,系统崩溃往往发生在经济收缩期。

经济繁荣时期,软件公司会大量雇佣新员工,投入更多的财力和人力,支撑复杂系统。等到经济收缩期,公司开始减少投入、冻结招聘或裁员,复杂系统可能就会在这个时候出问题,变得难以维护。

现在就是经济收缩期,那么接下来,会不会就是软件故障的高发期,我们将看到很多复杂系统的崩溃p>

前端高频面试题(2022版)

这两年,客观地说,前端开发的热度有所下降。主要原因是前端技术逐步稳定,以及智能手机的普及度见顶了。

但是,前端依然是 IT 行业中最活跃的分支。一年一度的 GitHub 调查中,JavaScript 多年来一直稳居第一,TypeScript 更是快速上升到今年的第四位,仅次于 Python 和 Java。

如果你已经有一定的前端开发基础,近期打算应聘前端岗位,这里有一份有用的资料,可以帮助大家准备面试。

这份资料就是 《前端大厂的高频面试题(2022版)》,一共有174页,收集了最新的面试题,由国内著名的程序员培训平台”极客时间”联系国内大厂制作。

此外,还会额外赠送 《三位资深程序员的面试跳槽经验分享》,分享技术之外的跳槽准备、简历准备、面试应对……这些值得借鉴的前人经验。

卡内基梅隆大学开发了一种新技术,让 VR 头盔的佩戴者可以感受到虚拟接吻。具体做法是,头盔向嘴唇发射超声波,里面包含了一些微小颗粒,让嘴唇、牙齿甚至舌头产生触感。

上图可以看到,VR 头盔的下方安装了一排超声波发生器,对准红点的位置发射。科学家开玩笑,可以用它开发”接吻机”。

5月30日,国际篮联正式宣布,允许篮球世界杯等大赛启用 LED 篮球场。

传统的篮球场都是木地板,木头具有弹性,可以吸收震动,保护球员。现在,最新的 LED 玻璃也已经能够提供足够的弹性。

3、树皮字体

五年前,一个丹麦艺术家将字体刻在一棵树上,想看看随着树木的成长,字体会变成什么样,也就是大自然会怎样呈现字体。

他发现,这些字母主要是横向成长,变得更宽更粗,高度反而变化不大。这说明,树木成形后,树干高度就基本不再变化了,开始不断长粗。

拜登政府宣布,美国将禁止销售每瓦产生低于45流明的灯泡。这实际上禁掉了白炽灯泡。

这个决定是为了提高照明的能量效率。一般来说,白炽灯泡每瓦的发光量在10流明左右,LED 灯泡则可以达到每瓦100流明以上。

文章

1、我为什么与中国游戏发行商签约又分手(中文)

2、Intel 4 工艺宣布(中文)

4、最简单的任务管理系统(英文)

5、使用 Cloudflare + Backblaze B2 打造一个免费的图像 CDN(英文)

7、我的免费摄影软件工作流(英文)

工具

1、CloudMP3.cc

一个低代码框架,用来开发内部工具。部署到服务器后,它有一个 Web 界面,通过拖拽,就可以连接各种数据源,生成各种应用或管理面板。

3、i 微信读书

GitHub 有时在国内不容易打开,这里有一个服务是 GitHub 的镜像加速器。提醒一下,如果要登陆 GitHub,使用这种服务会有安全顾虑,大家自己权衡。(@dllen 投稿)

6、Go-Ldap-Admin

Deno 框架

Deno 是 JavaScript 语言的服务器运行环境,跟 Node.js 是竞争关系。

Deno 本身的开发已经接近稳定了,下一步只要有一个好用的框架,就能推广了。

1、Fresh 框架

Aleph.js 是另一个基于 Deno 的全栈框架,类似于 Next.js,目前处于早期开发阶段,也可以关注。

3、Express

这个 页提供了一个互动式的地球,上面有全世界海底光缆和骨干机房的位置。

2、极光

波斯波利斯是古代波斯帝国的首都,位于现在的伊朗,已经是一片废墟了。这个页面还原了这座雄伟的帝国都城,重建了 3D 街景,让你在其中漫游。

图片

1、咸海

哈萨克斯坦曾经有一个巨大的湖泊,叫做咸海,面积68000平方公里,相当于两个海南岛,是世界第四大湖泊。

但是,从1960年代开始,前苏联建造了很多灌溉工程,从咸海大量引水,又没有补充,导致咸海快速干涸,目前已经接近消失了。

1985年的咸海。

2014年的咸海。

几天之后,有一个人来应征,声称他有办法让销售额快速增长40%,而且实施起来不需要很大成本。他要价10万美元。

公司管理层犹豫了数周,最后还是同意了给钱。

等到法律手续和付款流程完成后,这个人给出装有一张小纸条的信封,小纸条上只有四个英文单词:

“Make The Hole Bigger”

这句话翻译成中文,就是”让牙膏开口更大一点”。

此前,管状牙膏的开口一般是5毫米直径。稍加计算就可以知道,当直径从5毫米增加到6毫米时,假设挤出的牙膏长度不变,挤出量会增加44%。

原先顾客用一管牙膏的时间,现在要1.4管牙膏才能满足需求。看似很小的改变,却刷新了这家公司的销售记录,创造了历史。

言论

1、

一件事最可怕的时刻,总是在你开始做之前。

— 斯蒂芬·金

2、

对于那些没有想象力的人来说,保持常态就是他们的理想。

— 荣格

3、

IT 行业与传统制造业有一个重要区别,就是 IT 行业有着严重的垄断。

全世界的智能手机有70亿部,比汽车多出5倍(14亿辆)。但是,智能手机制造商比汽车制造商少了好几个数量级。搜索引擎、 交 络、操作系统都是这样,几个巨头就垄断了整个市场。

— Hacker News 读者

4、

电动汽车虽然售价高,但是每公里的行驶成本低,因此用得越久越划算。这就要求汽车厂商制造耐用的电动汽车。

— Hacker News 读者

5、

2021年只有两种人在写博客,一种是试图建立受众并从中获利的人,另一种是只想写出想法、而没有任何目标的人。

这两种人的行为都非常好。选择做你喜欢的事,坚持下去,它们最终都可以对他人产生价值。

— 《我从博客中学到的东西》

历史上的本周

2021年(第 162 期):生活就像《吃豆人》游戏

2020年(第 111 期):智能电视的误区

2019年(第 60 期):一本介绍人类起源的学术自传

2018年(第 9 期):身份证可以植入人体

订阅

微信搜索”阮一峰的 络日志”或者扫描二维码,即可订阅。

科技爱好者周刊(第 210 期):为什么软件变得复杂

(完)

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93544 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月13日
下一篇 2022年5月13日

相关推荐