#15 转载:康威定律

2024-03-04

几乎所有我喜欢的软件架构师,都认同康威定律(Conway Law),认为这个定律非常重要,足以影响到所有系统。而且,你没法与之抗争,想要抗拒康威定律注定要失败。

康威定律的最好表述是:“任何系统的构成,都反映了设计这个系统的组织结构。”

它的出处是 Melvin Conway 在 1968 年写的一篇文章。后来,弗雷德·布鲁克斯(Fred Brooks)在著名的《人月神话》(The Mythical Man-Month)引用了这条定律。

Melvin Conway 观察到,软件系统的架构看起来与构建它的开发团队的组织结构非常相似。

最初的描述是,如果一个团队编写一个编译器,那么它将是一个单通道编译器;但是,如果两个团队共同开发,那么它将是一个双通道编译器。这个描述后来被发现,广泛适用于大量系统。

正如我的同事 Chris Ford 对我说的:“软件耦合是由人类交流促成的。” 如果我可以轻松与代码作者交谈,那么我就更容易对代码有更深入的了解,因此我的代码更容易耦合到该代码。

应对康威定律的第一步是不要与之抗争。我仍然记得一位技术主管,他刚刚被任命为 ​​ 一个大型新项目的架构师,该项目由分布在世界各地不同城市的六个团队组成。“我做出了第一个架构决定”,他告诉我:“就是这个系统将有六个主要的子系统。我不知道它们会是什么子系统,但肯定会有六个。”

为了适应康威定律,现在有一种策略,就是一旦定下软件架构,就相应改变组织结构,让紧密耦合模块的开发者更容易沟通。

#14 耕耘与收获

2023-09-15

今天的科技爱好者周刊上分享了美国风险投资家纳瓦尔在访谈中说的一些话:

"新人企业家的常见错误,就是认为结果是可预测的。如果我长期努力工作,就应该会得到某种成果。"

"实际上,你的成果是不可预测的。你工作多么努力并不重要,重要的是你在做什么、与谁一起工作、以及在哪里工作。 "

"你每天都会看到,那些赚最多钱的人,工作时间根本不长。而淘金者和商铺老板,努力工作一天,赚不到什么钱。 "

"重要的不在于你的努力程度,而在于仔细选择工作、人员和项目。"

"真正有效的工作方式,不是铁人三项或马拉松,比拼谁坚持的时间长,而是短跑,当机会来临的时候冲刺,平时注意健康和休息。"

"你要像狮子一样,看到猎物一跃而起,而不要牛一样,从早到晚劳作。"

给我们的启示:

现实世界是非线性的,也就是说耕耘不一定可以换来收获,我们需要摆脱线性的思维。

这期科技爱好者后面的另一个言论其实也有这样的意思,对开发者的针对性更强:

不要在疲劳的时候写代码。敬业和专业精神,更多地体现在你的纪律性,而不是体现在投入的时间。
-- Robert C. Martin(鲍勃大叔),《Clean Coder》的作者

#13 转载:成年期的快与慢

2023-07-21

我们生活在这样一个社会:小孩子像成年人一样老成,而成年人像小孩子一样幼稚

现在的孩子们比以前更容易接触到成年人的世界,因此他们更早成人化。

从很小的年龄起,他们就在视频网站观看暴力战争,在社交网络上看到性感和暴露的照片和视频。

然而,当孩子们成年以后,他们往往无法实现经济独立,也没有机会承担足够的责任

结果,整个社会的文化就变得很幼稚,成年人感到无法做出承诺,即使承诺了也缺乏信心,对以后的生活感到难以把握。

他们的行事方式和处事态度,就像还在青少年时期。

#12 转载:如果风静止了

2023-03-17

wind

风力发电正在全世界如火如荼地发展。

但是,风力发电有一个前提,就是必须有源源不断的风。那么,风可能出现静止吗?

事实上,2021年的夏秋之际,欧洲大部分地区就发生了"风旱"。许多地方的风速比年平均水平至少慢了约15%,英国出现了60年来风力最小的时期。

前年9月,风电发电还占英国发电量的18%,但到了去年9月,这一比例骤降至2%。为了弥补能源缺口,英国被迫重启了两座封存的煤电厂。

一项研究表明,全世界的风速正在下降,从1978年到2010年,风速每十年下降2.3%。不过,2010年到2019 年又有所反弹。从每小时7英里增加到7.4英里。

尽管如此,科学家还是认为,未来的风速将不断放缓,到2100年全球平均风速可能下降多达10%。

其中的原因,涉及到了一个根本的问题:为什么地球上有风?

地球出现风带,主要原因是温度不均匀:两极很冷,热带很暖。这种温差导致了空气流动,从而产生了风。

但是由于全球变暖,两极与热带的温差正在减小,这是因为两极(尤其是北极)的变暖速度比热带地区快。

另一个风速变小的原因,可能是"地球表面粗糙度"的增加。世界各地的城市建筑的数量和规模正在增加,这阻挡了风的流动。

风速变小会产生严重后果,不仅仅影响到风力发电。
(1)强风可以缓解城市污染,用新鲜空气代替停滞的空气。
(2)较慢的风会让热浪难以缓解。
(3)慢风也使飞机更难起飞,因为飞行员依靠逆风升空。希腊的一个机场,由于逆风减缓和气温上升,空客320在过去30年中,最大起飞重量减少了4吨。

#10 冯·诺依曼的故事

2022-07-01

本周的《科技爱好者周刊》讲了冯·诺依曼的故事。

学计算机的,应该没有人不知道冯·诺依曼架构,冯·诺依曼也被称为现代计算机的发明人。他结合了数理逻辑、信息论和生物学,开创了自动机理论,并希望在这个领域做出更大贡献。但是他总是插入其他相对不重要的工作,比如政府相关事务,以致于最后并没有为自动机理论的发展做出应有的贡献。

他本人并非不知道这一点,但就是这种性格,喜欢同时研究很多事情,一旦对某件事情产生了兴趣,就会放下手头的工作,推说稍后再回来接着做,可惜人生并没有为他留出"回过头再做"的时间

尤其是这句话,我感觉扎心了,妥妥的就是在说我。

我感兴趣的事情实在太多,以致总是被各种事情打断而很少能实现预定目标。我一直就有一种感觉,感觉自己是一只在追赶沙丁鱼群的、“没有经验”的小旗鱼,悲哀!

我要安静下来,仔细思考我的目标到底是什么,它们有一个怎样的优先级。

#9 转载:移动支付应该怎么设计?

2021-10-30

支付宝和微信支付,垄断了中国的移动支付,两家合计的市场份额超过90%。
虽然它们用起来非常方便,可以说完美解决了手机付款,但是,作为整个国家移动支付的解决方案,我总觉得,现在的状况是有问题的。

#8 转载:交流电和直流电

2021-10-30

交流电为什么获胜?

19世纪末,人类开始使用电力。当时有两派,一派主张直流电,另一派主张交流电。

最后,交流电获胜,主要原因是交流电长途传输的效率更高,直流电做不到长途传输。

当时,交流电已经可以做到高电压,但是直流电的电压一直做不上去。这导致大功率传输时,直流电就会产生很大的电流(因为 电压 * 电流 = 功率)。另一方面,电流通过导体产生的热量,与电流的平方成正比。这意味着,直流电的长距离传输会因为电流较大,而产生很大的热量损耗。交流电由于电压可以做得很高,就没有这个问题。

所以,高电压是长距离电力传输的关键,这就是交流电获胜的根本原因。直流电直到1960年代才有办法做到高电压,但是已经太晚了。目前,直流电的应用都局限在低压短距离的使用,传输距离往往在几米之内,最长不超过1公里。

两个新趋势

但是,最近出现的两个趋势,导致人们重新对直流电发生了兴趣。

第一个趋势是太阳能发电的兴起,使得发电变成了分布式,而不是集中式。哪里需要能源,哪里就放置太阳能板,这种场景下不需要长距离电力传输。此外,太阳能发电产生的是直流电,电池释放的也是直流电。

第二个趋势是越来越多的电器内部使用直流电,比如所有电子设备(包括计算机和手机)、固态照明 (LED)、平板电视、微波炉等等。专家预计,未来20年内,多达50%的家庭负载消耗的是直流电。

电流转换的损失

如果家庭使用的是太阳能发电,就要进行两次电流转换。

首先,光伏板的直流电通过逆变器转换为交流电,传输进入家庭。然后,交流电再次通过逆变器转换为直流电,才能被电脑、LED 和微波炉等直流设备使用。每一次电流转换,都会发生能量损失,最严重情况下,会损失掉20%~30%。

如果带有光伏板的建筑直接采用直流供电,就可以避免这种电流转换损失。

直流供电的好处

首先,一旦直流供电,就没有了电流转换的能量损耗,所需的光伏板变少了,存储能量的电池系统也可以变小。

其次,逆变器是一种昂贵的设备,而且寿命短于光伏板。不使用逆变器,可以节省不少钱。

再次,目前的很多直流电气设备,内部带有交流电到直流电的转换,去掉这个部分,可以使这些设备更简单、更便宜、更可靠、能耗更低。

最后,直流电的电压低。很多直流电器不超过24伏,没有电击或火灾危险,使得电工可以使用相对简单的接线,无需接地,也无需担心触电。这进一步节省了成本。

直流供电的缺点

低压直流电的最大问题是无法长距离传输。

前面说过,能量损失等于电流的平方乘以电阻。一根普通的铜线,在10米的距离内以12V的电压传输,100瓦的功率对应的电流是8.33A,会产生3%的能量损失,这可以接受。但是,电线长度为 50 米时,能量损失变为16%,长度为 100 米时,能量损失增加到了32%。这足以抵消直流电的效率优势。

由于线路损耗很高,大功率电器也很难使用直流电。如果在12V直流电网上运行 1,000 瓦的微波炉,在电线长度仅为1米的情况下,能量损失高达16%,在电缆长度为3米的情况下,能量损失会增加到47%。

所以,低压直流电网不适用于洗衣机、洗碗机、吸尘器、电饭锅、电烤箱或热水锅炉等大功率电力设备。另外,有些电器(比如冰箱)本身的功率比微波炉小,但是它每天 24 小时运行,长时间下来也会导致巨大的线路损耗。

同样的,线路损耗也限制了多台低功率设备使用同一根供电线缆。如果一根12V的电缆长度为 12 米,并且我们希望将线路损耗保持在10%以下,那么所有电器的总功率将限制在大约150瓦。这意味着,这根线路只能同时使用两台笔记本电脑(每台 20 瓦的功率)、一台直流电冰箱(45 瓦)、五个8瓦的 LED 灯(总共 40 瓦),还留下25瓦可以支持其它较小的设备。

解决方案

有几种方法可以避免低压直流电的线路损耗。

第一种方法是尽量减少配电电缆长度。比如,厨房、客厅、卧室这些用电最多的地方,尽量搬到屋顶光伏板的下方,减少电缆长度。

第二种方法是每一个或两个房间,设置一个独立的太阳能发电系统。

第三种方法是选择更高的电压:24V 或 48V 而不是 12V。但是,目前市场上的大多数低压直流电器都在12V下运行,而且更高的电压(高于24V)消除了直流系统的安全优势。美国有很多数据中心、办公室、住宅建筑使用的直流电系统升压到了 380V,这就需要跟 110V 或 220V 交流电一样严格的安全措施了。

第四种方法是使用两套供电系统,同时供应交流电和直流电。低功率设备使用直流电网,比如 LED 灯(< 10 瓦)、笔记本电脑(< 20 瓦)、电视(30-90 瓦)和冰箱(<50 瓦),大功率设备使用单独的交流电网。但是这样做,直流电带来的节能和成本降低效益,就微乎其微了,很容易被抵消。

#7 《科技爱好者周刊(第 176 期)》阅读笔记

2021-09-17

视觉错觉

这么明显的视觉错觉,让人觉得好神奇!
我下次要拍一张这样的图片,拼在一起看看。
如果拍好了,我就更新在这个下面。

绝对值问题

由于有 +0 和 -0 的问题 (IEEE 754),问题变的复杂起来。

由于需要粘贴大量代码,我另起一篇吧(不简单的绝对值)!

手机学习网页开发

PS: 周刊中提供的链接打不开,我自己在 LinkedIn 上找到了这个用户,拿到了嵌入代码:

一个尼泊尔人教他弟弟学习 Web 开发的故事,由于没有电脑可用,就通过一部手机搭建了开发环境。
然后,经过两个月的学习,这个人成功的教他弟弟初步掌握 HTML、CSS 和 JS。

图片中采用的是什么 App 或者网站,我看不出来。但是阮一峰在上面提到了一个可以通过手机浏览器使用的 Web 开发环境 http://www.webden.dev,我试了一下,感觉还不错,如果接上鼠标键盘,确实可以用来学习。

宇宙飞船可以飞多远?

如果你走得足够远,其实就再也没办法回去了。当你回到故乡,原来的一切都已经消失了。
不过,这也不算什么,归根结底,旅程才是你的故事中最重要的部分。
-- 《如果有无尽的推动力,宇宙飞船可以飞多远?》

这段话让我想起 《三体》 中的一句话:“真正进入太空的人,再也不是人了”。
不过前者指的是时间流速不一致导致的错过,后者是社会意义上的,由于失去故土家园导致的,放弃之前所有的认同,包括国家、民族、价值观、甚至人的身份。