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

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

科技

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

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

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

封面图

中国科学家绘制的世界首幅、最详细的1:250万月球全月地质图发布,统计出月球包含12341个撞击坑、17种岩石、14类地质构造。(via[3]

本周话题:为什么软件变得复杂

我一直认为,软件开发的最大关注点,就是避免复杂性。软件设计越简单越好,太多的程序员以构建复杂的解决方案为荣。

但是,本周有一篇文章让我反思,我的想法是不现实的:软件肯定会越变越复杂。

(一)

这篇文章的作者是 Saleforce 公司的前端工程师诺拉·劳森(Nolan Lawson),题目就叫做《复杂软件的崩溃》[4](下图)。

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

所以,这件事情很讽刺。一家出产复杂软件的公司,自家的著名程序员公开说,复杂软件会崩溃。

当然,他在文章里面没提 Salesforce 的名字,但是怎么读都像在写亲身经历。下面摘录一段他的原文和配图,大家品味一下。

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

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

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

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

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

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

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

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

(二)

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

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

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

前端高频面试题(2022版)

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

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

技术稳定带来的一个后果,就是新框架、新工具少了,大家更关注已有框架/工具的改进和功能增加。

大厂的前端团队也转向了精细化探索,注重如何做得更细、更好,垂直化的技术领域(比如可视化、工程化等)得到了更多的关注。企业的用人要求也越来越高,从能够上手工作就可以要人,变成了要求深入某个领域。

总的来说,现在的前端开发处在下图右侧的那个椭圆,比前一个阶段的难度上升了

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

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

所有的题目都分门别类,由浅入深排列,每道题都附有答案详解,方便大家知识梳理、准备面试。

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

微信扫描上方二维码,就可以 免费领取 这份前端面试资料。添加客服后,请耐心等待,后台是手动通过的。

最后提醒一下,这份资料不适合刚刚学习前端的学生,更适合有前端开发基础和编程经验的从业人员。

科技动态

1、虚拟接吻[6]

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

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

除了产生嘴唇的触感,这种技术还可以在游戏中,让用户感受到风拂过脸部、蜘蛛网碰到脸,甚至食物和饮料进入嘴里的虚拟感受。

上图是一只巨大的虚拟蜘蛛将大量毒药倾泻到用户身上,用户可以感觉到毒药溅到嘴唇上。


2、LED 篮球场[7]

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

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

LED 球场有很多好处,省去了划线的麻烦,能够快速切换成篮球场、手球场、排球场、羽毛球场。

并且,它自身能发光,可以作为显示屏,实时显示比赛数据,并且配合球场活动,营造气氛。在黑暗中,界线依然保持醒目。


3、树皮字体[8]

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

下面是字母 a 和 o 在五年中的变化。

这些字体应用到印刷品,就是下面的样子。

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


4、禁止白炽灯泡[9]

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

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

文章

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

这是一篇日本独立游戏开发者的文章,被译成了中文。作者以亲身经历,解释了目前的独立游戏的发行制度和现状。


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

上周,英特尔公司正式宣布了 Intel 4 工艺。这是英特尔公司第一次将 EUV 技术用于 CPU 的生产,实现了7纳米的制程,开始追赶台积电。本文介绍该工艺的一些情况。


3、我如何搭建家用 NAS[12](中文)

本文详细记录了作者选购硬件、安装软件,搭建一台 22TB 的家用 NAS (网络存储)服务器的过程,可以当作自己架设 NAS 的参考。这里是中文翻译,另有英文原文[13]。(@yangchuansheng[14] 投稿)


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

本文介绍作者自己发明的最简单任务管理系统,就是把每天的任务写在卡片上,用一个架子放在眼前,做完一件就划掉一件。


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

本文是一篇详细的教程,教你怎么把图片托管在 Backblaze B2 对象存储,然后连接到 Cloudflare 的 CDN 服务。两者都有免费额度,对于小网站来说,不用花钱就解决了图片的存储和带宽问题。


6、如何用 iOS 快捷指令防止沉迷?[17](英文)

作者发现自己在社交媒体上,浪费了大量时间。他想出了一个办法,制作了一个 iOS 快捷指令(shortcuts),只要一打开社交 App,就会跳出提示“请专心工作”。


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

作者是一个专业的摄影师,完全采用免费软件处理数码照片。本文介绍他的解决方案。


8、我在单个服务器上托管几十个网站[19](英文)

作者详细介绍,他如何在一个服务器上托管几十个网站,大部分是 API 调用。这里最大的难题还不是把服务架起来,而是如何同时维护和管理它们。


9、如何估算流入加密货币的资金[20](英文)

多少资金流入了加密货币市场?这显然是无法准确计算的,作者想到了一个办法,可以间接估算。那就是看稳定币每月增长的发行量,上图是过去两年稳定币每个月的增长百分比。

工具

1、CloudMP3.cc[21]

一个云服务,可以将 SoundCloud 上面的音频,转成 mp3 下载。


2、ToolJet[22]

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


3、i 微信读书[23]

Chrome 浏览器插件,配合网页版微信读书使用,支持划线摘抄句子、划线生成分享图片、一键导出笔记等功能。(@secreter[24] 投稿)


4、Sogou C++ Workflow[25]

搜狗公司开源的 C++ 服务器引擎,支撑搜狗几乎所有后端 C++ 在线服务,提供了大量异步服务的功能。(@Barenboim[26] 投稿)


5、FastGit[27]

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


6、Go-Ldap-Admin[29]

一个国产软件,基于 Go+Vue 实现的 openLDAP 管理后台,可以作为打通 IM(钉钉、企业微信、飞书)与支持 ldap 认证的应用的桥梁。(@eryajf[30] 投稿)


7、Japa[31]

一个 Node.js 的测试框架,简单快速,功能也很多,而且可以直接运行测试脚本,不必通过测试框架来运行。


8、@xata.io/screenshot[32]

这个网页脚本可以生成当前页面的截图。


9、GitLens[33]

一个 VSCode 的插件,大大增强了 Git 集成,可以在编辑器里面执行很多 Git 操作,特别适合多人合作的项目。

Deno 框架

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

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


1、Fresh 框架[34]

上周,基于 Deno 的 Fresh 框架发布了预览。

该框架直接使用 TypeScript 脚本,号称零配置、零构建,页面由服务端渲染,客户端不需要 JS 生成内容,也没有多余的 JS 脚本,追求小而快,值得关注。


2、Aleph.js[35]

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


3、Express[36]

顺便提一下,老牌的 Node.js 框架 Express,最近要发布5.0版了。这是一件大事,因为4.0版是八年前发布的。这篇文章介绍了5.0版的新特性[37]

可视化作品

1、全球海底光缆[38]

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


2、极光[39]

这个网页构造了一个极地的背景,让你手绘动态的极光效果。


3、波斯波利斯[40]

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

图片

1、咸海[41]

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

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

1985年的咸海。

1997年的咸海。

2014年的咸海。


2、住宅墙[42]

加拿大有一个小镇,靠近北极,终年刮着强劲的北风。

为了挡风,当地修建了高50米,长1.3公里的挡风墙,同时这堵墙里面还是住宅、商业和教育设置,里面可以住人。

因为有了这堵住宅墙,小镇居民就拥有了一个无风的、温暖的小气候。

文摘

1、如何增加牙膏的销量[43]

1950年代,一家国外的牙膏公司,向公众征求能够大幅提高销售额的点子。

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

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

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

“Make The Hole Bigger”

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

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

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

言论

1、

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

-- 斯蒂芬·金[44]


2、

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

-- 荣格[45]


3、

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

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

-- Hacker News 读者[46]


4、

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

-- Hacker News 读者[47]


5、

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

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

-- 《我从博客中学到的东西》[48]

历史上的本周

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

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

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

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

References

[1] ruanyf/weekly: https://github.com/ruanyf/weekly
[2] 《谁在招人?》: https://github.com/ruanyf/weekly/issues/2426
[3] via: http://www.cnsa.gov.cn/n6758823/n6758838/c6840495/content.html
[4] 《复杂软件的崩溃》: https://nolanlawson.com/2022/06/09/the-collapse-of-complex-software/
[5] GitHub 调查: https://octoverse.github.com/
[6] 虚拟接吻: https://gizmodo.com/vr-researches-simulate-kisses-with-ultrasonic-transduce-1848849489
[7] LED 篮球场: http://www.lanxiongsports.com/posts/view/id/22687.html
[8] 树皮字体: https://bjoernkarmann.dk/occlusion-grotesque
[9] 禁止白炽灯泡: https://www.cnbc.com/2022/04/26/biden-blocks-sales-of-inefficient-lightbulbs-reversing-trump-policy-.html
[10] 我为什么与中国游戏发行商签约又分手: https://www.chuapp.com/?a=index&c=Article&id=288712
[11] Intel 4 工艺宣布: https://finance.sina.com.cn/tech/2022-06-14/doc-imizirau8363822.shtml
[12] 我如何搭建家用 NAS: https://icloudnative.io/posts/budget-nas/
[13] 英文原文: https://mtlynch.io/budget-nas/
[14] @yangchuansheng: https://github.com/ruanyf/weekly/issues/2444
[15] 最简单的任务管理系统: https://ugmonk.com/blogs/journal/analog-the-simplest-productivity-system
[16] 使用 Cloudflare + Backblaze B2 打造一个免费的图像 CDN: https://www.backblaze.com/blog/free-image-hosting-with-cloudflare-transform-rules-and-backblaze-b2/
[17] 如何用 iOS 快捷指令防止沉迷?: https://support.apple.com/guide/shortcuts/welcome/ios
[18] 我的免费摄影软件工作流: https://blog.fidelramos.net/photography/photography-workflow#5-replication-with-syncthing
[19] 我在单个服务器上托管几十个网站: https://cprimozic.net/blog/my-selfhosted-websites-architecture/#backup--disaster-recovery
[20] 如何估算流入加密货币的资金: https://tomtunguz.com/how-much-money-flowing-into-crypto/
[21] CloudMP3.cc: https://cloudmp3.cc/en/
[22] ToolJet: https://github.com/ToolJet/ToolJet
[23] i 微信读书: https://secreter.github.io/ireader/index.html
[24] @secreter: https://github.com/ruanyf/weekly/issues/2439
[25] Sogou C++ Workflow: https://github.com/sogou/workflow
[26] @Barenboim: https://github.com/ruanyf/weekly/issues/2446
[27] FastGit: https://doc.fastgit.org/zh-cn/guide.html
[28] @dllen: https://github.com/ruanyf/weekly/issues/2448
[29] Go-Ldap-Admin: http://ldapdoc.eryajf.net/
[30] @eryajf: https://github.com/ruanyf/weekly/issues/2450
[31] Japa: https://japa.dev/
[32] @xata.io/screenshot: https://github.com/xataio/screenshot
[33] GitLens: https://www.gitkraken.com/gitlens/features
[34] Fresh 框架: https://fresh.deno.dev/
[35] Aleph.js: https://alephjs.org/
[36] Express: https://expressjs.com/
[37] 5.0版的新特性: https://fusebit.io/blog/new-express-5-features/
[38] 全球海底光缆: http://he.net/3d-map/
[39] 极光: https://www.drawaurora.com/
[40] 波斯波利斯: https://persepolis.getty.edu/
[41] 咸海: https://zh.wikipedia.org/wiki/%E9%B9%B9%E6%B5%B7
[42] 住宅墙: https://www.houseporn.ca/landscape/article/the_wall_housing_structure_in_fermont_quebec
[43] 如何增加牙膏的销量: https://www.ifanr.com/app/1448161
[44] 斯蒂芬·金: https://gretchenrubin.com/2016/08/according-stephen-king-scariest-moment-always-____
[45] 荣格: https://quotefancy.com/quote/782361/C-G-Jung-Normality-is-a-fine-ideal-for-those-who-have-no-imagination
[46] Hacker News 读者: https://news.ycombinator.com/item?id=28896320
[47] Hacker News 读者: https://news.ycombinator.com/item?id=30914512
[48] 《我从博客中学到的东西》: https://bhupesh.me//what-i-have-learned-from-blogging-so-far-retrospect/


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
他山之石(第6期):欧洲安全秩序的转折点科技爱好者周刊(第209期):程序员是怎样的人他山之石(第5期):俄乌战争后美国在欧洲的五大要务【6.20今日折扣】Iceland超市3件3p活动上线!Crocs洞洞鞋爱好者福利来袭!Farfetch潮流时尚帽子/A美美做了一个梦无题科技爱好者周刊(第205期):互联网风口过去了吗?肥肠爱好者的乐园,一定有四川好买更好卖, 湾区古着二手爱好者的买卖福地都在这一篇啦!遭遇“90后”(2)电子产品爱好者福音,Dell Canada 7月黑五活动开启,外星人降价$1000,快给心爱的他/她送上一台吧~科技爱好者周刊(第206期):如何走出失望和怀疑【全球市场】美元指数短线料“利空出尽”—全球宏观与汇率焦点2022年(第24期)Q弹爆浆,属于夏天的冰粽,榴莲和芒果爱好者狂喜!科技爱好者周刊(第215期):互联网最喜欢的行为模式科技爱好者周刊(第 213 期):知识孤岛,知识软件科技爱好者周刊(第216期):极简主义的胜利第394堂好课|李善友:为什么你越解决问题?自己就变得越糟糕名家讲坛(第30期)丨张成思:中国现代化金融体系建设:特色、成就与展望作为重度淘宝爱好者,我最近觉得淘宝不好玩了会议预告丨中国国有企业改革论坛(第3期):数据要素的确权与规制:现状、原则和路径科技爱好者周刊(第207期):汽车行业的顶峰可能过去了会议预告丨中国国有企业改革论坛(第4期):国有经济在三次分配中的作用:基于企业和家庭捐赠数据的分析会议预告丨人大区域国别论坛(第四期):丝绸之路上的中国新疆吐鲁番绿洲考古文化他山之石(第7期):对华关税:逃出深坑科技爱好者周刊(第218期):葡萄酒,樱花,全球变暖吃辣爱好者注意!这款风靡全球的辣椒酱宣布停产!已有澳洲人准备开始囤货黄循财与其父母的点滴科技爱好者周刊(第 211 期):虚拟商品可以拉动 GDP科技爱好者周刊(第212期):人生不短名家讲坛(第28期)丨仇焕广:中国粮食安全的现状与挑战名家讲坛(第27期)丨刘后滨:盛唐气象与中国梦的历史底色科技爱好者周刊(第 208 期):晋升制度的问题在芝加哥骑自行车有多难?芝加哥200位自行车爱好者告诉你答案在巴黎过复活节
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。