程序员告诉自己的9个谎言

对我们凌驾于机器之上的能力的自信,也让我们对希望现实屈从于我们的代码感到内疚

程序员有充分的理由自豪。没有人有能力进入数据库并改变现实。世界越依赖计算机来定义世界的运作方式,程序员就会变得越强大。

哎,骄者必败。我们分享的力量是真实的,但它远非绝对的,而且往往是空洞的。事实上,它可能总是空的,因为没有完美的代码段。有时候,我们会交叉手指,设定限制,因为电脑会出错。电脑也会出错,这一点我们从太多的第一手经验中都知道。

当然,许多问题源于我们程序员做出的不正确的假设。它们通常在某些时候是正确的,但这并不意味着一直都是正确的。就像马克·吐温(Mark Twain)所说的,“不是你不知道的东西让你陷入麻烦。”你明明知道事实并非如此。”

凯文Deldycke GitHub-hosted程序员相信的谎言清单是一个很好的例子,说明了网络空间与现实的脱节程度。这是一个只会随着其他人贡献他们的战争故事而增长的纲要。想想看,列举上千个例子,本质上说,“记住,凯撒,你是会死的。”

我最喜欢的可能是关于电话号码的谎言清单。如果你认为为一个人保存电话号码就像在数据库中输入7个或10个数字一样简单,那你就错了。因为有国家代码,废弃的号码,还有十几个陷阱,所以很难做好电话号码列表。难怪卢德分子的脸上挂着得意的笑容,他们把自己的电话号码记录在一个小黑本里。

这里有一些错误的信念,我们程序员经常假装是非常正确的。

问题只有一个答案

数据库表由列填充,每个列有一个条目,或者没有。它要么是满的,要么是空的。为每个问题匹配一个答案有什么难的?

唉,有时候答案不止一个,然后表格就开始失效了。也许一个人有不止一个电话号码或第二个周末的家。数据库设计人员通过创建一对多和多对一的映射来解决这个问题,这些映射可以存储多个答案。一些更现代的NoSQL解决方案使用“文档”模型,将所有可能的答案与不同的标记放在一个大汤中。

+也在网络世界有个足球雷竞技app经典的黑客、网络钓鱼和社会工程谎言+

这些解决方案更好,但即使是它们也有局限性。有时答案只在很短的时间内有效。除下午4点至6点的高峰时段外,停车场可能是合法的。

如果您认为在表中添加一个槽来处理每天的窗口就足够了,请记住有时也有一些例外,比如早上7点到9点和下午4点到6点。但是不要仅仅因为周末的停车规则不同就记下一天的时间,周末的定义也会改变。在哥伦比亚特区,周日停车是免费的,但周六不免费。联邦假日也不同,地方假日也不同。

这只是时间问题。潜在异常的列表不断增加,这使我们无法想象数据库会通过存储任何问题的绝对和最终答案来模拟现实,无论这个问题多么简单。

相关:
12 第1页
第1页共2页
2021年IT薪资调查:结果在