工作中常见的两种谬误

golcm
发布于 2023-1-17 11:20
浏览
0收藏

谬误一

一个人写的烂代码会给另一个人带来一份全职的工作

变体:

别人看不出做什么用又不敢删、不敢改的代码是维护者的核心竞争力

解析:

在早几年或者一些非常老旧的系统可能经常会存在这些难以维护的代码。但是越来越重视软件工程的如今,这些问题代码不太可能是长久的饭碗。主要有两个原因:

巴士指数(bus factor)

巴士指数是美国硅谷流行起来的对团队容灾的一种民间定义。意思是团队中某人被车撞了,团队照常运行的能力。结对编程、多人代码审查(code review)本质上不仅是为了提高代码质量,同时也是提高团队的容灾性。同时团队相比功能开发,会花更多的时间进行功能设计和评审。这意味着个人的替代成本在降低。

本质原因

根据四象限时间理论,如果一个功能或者一段代码写的很烂还没有被替换掉,很可能是因为这件事情没有那么重要。如果真想改,有的是方法来控制影响范围。既然功能都不重要,人员的轮换也不会是问题。

谬误二

这个错误的做法我就不说了,直接说正确的做法:用更谦虚的学习西方技术来代替虚假的民族自豪感。

说这个话题前先表明一下自己的立场,本人坚定的爱国主义者,自己用的第一个U盘是爱国者的;第一部手机是夏新的,当时就是看着这款手机漂亮,但是用了几天就被偷走了,其实当时是有些如释重负的,因为调成振动模式时手机就跟疯了一样;第一个笔记本电脑是北大方正的(20年前8千大洋买的),虽然一毕业就被我给拆着玩了。虽然这些技术咱们国家都现在都很成熟了,当时可真的是见证了硬件和软件一样的不稳定。见证了国家技术的高速成长与进步,所以并没有为当初的投入感到不值。但是进步是要站在巨人的肩膀上的。下面是我看到的一些巨人的肩膀。

例子1:

加密算法咱们国家发明了国密算法,确实在安全性和运算速度等方面优于国际算法。但是一个算法第一重要的是正确性和认知一致性,而实际工作中经常会遇到由于各自实现没有遵从统一的补位标准而出现无法解密或者验签成功的问题。所以国际上并认可。

来看看代表未来科技的神盾局里是怎么做加密的(RSA是国际算法):

工作中常见的两种谬误-鸿蒙开发者社区

例子2:

有些朋友对外语有很多抵触。我现在还记得英语老师带着自豪的口吻说:“中文是最难学的,博大精深。” 直到我掌握了1万多个单词,看个英文技术书还要不断的翻阅字典,我才发现我信了二十多年的话错的离谱。总体而言,英文比中文力求准确,所以词汇分的很细,词汇量很大。其准确性也让它作为编程语言基础方面有天然的优势。

近几年的毕业生,较前几届,平均来讲会有一个比较大的表达能力的提升,和西方文化的入侵有很大关系。

中国古文化讲究不靠表达清楚,靠理解的人自身有悟性。

飞雪连天射白鹿,笑书神侠倚碧鸳。 

金庸的 飞、雪 两部作品合起来诉说了一个沟通不畅引起的血案:李自成兵败,身边的胡护卫假意投诚。但是却没有做好信息同步,苗、田两个护卫不知情,杀了胡护卫。胡护卫之子胡一刀来寻仇,告知苗、田真相。苗、田没有跟家人做好信息同步,直接自杀。苗、田之子又找胡一刀寻仇,最终胡一刀夫妇死在两人手里。光到这里就死了两代人了。

如果这些人都是搞IT的,学过软件工程,估计1集就可以大团圈结局了,就是这么高效。

回过头来说语言,look、see、read、browse四个词在很多词典中都被翻译成:看。但是侧重点有大不同,look可以翻译成“看了”、see可以翻译成“kan看见”,read可以翻译成“一览无余”,browse可以翻译成“随便看看”。细品有很大不同。所以很多外企的员工喜欢说话的时候夹带一些英文,很多情况下是因为确实很难很简短的用中文表达清楚。

但是追溯其英文表述更加精确地原因,是因为追求精确地思维习惯的传承。咱们国家近几年也有更加追求精确地趋势,由此近几年涌现了很多新词。事实上,很多软件公司都有自己独特的术语。福尔摩斯根据什么毛发、划痕之类的判断很多信息的,特别是根据密码设置人的te特性推断出密码的,我对这些事不信的,情况太多,准确率太低。但是如果说根据某人在比如某个技术演讲中的一些术语推断出这个人所在的公司,成功率是很高的。这说明为了追求准确的表达一个场景,咱们的语言丰富性处于一个百家齐放的时代。

在谬误一中那种大家不敢碰的代码,在英文中有个专业的名词来表示:huanted graveyards,闹鬼的坟墓。一个词把动了就不知道会出现什么可怕的事件,表现得淋漓尽致。

这个是咱们要吸取的方面。


文章转载自公众号:编程一生

分类
标签
已于2023-1-17 11:20:10修改
收藏
回复
举报
回复
    相关推荐