zoukankan      html  css  js  c++  java
  • 让我至今仍旧感到羞耻的代码

    简评:最近基因编辑婴儿的事件闹得沸沸扬扬。
    私以为,技术应该在道德的规范下使用,不然一把利器也会变成凶器。这件事也让我想起了两年前一篇文章,原作者年轻时为药厂写的网站,误导消费者买药,最后导致一名女孩吃了后因抑郁而自杀。

    下文中「我」指代原作者 Bill Sourour

    如果你是一名程序员,那么你可能会在事业中遇到有人要求你编写一些欺诈性或者非常不道德的代码。

    2000 年,我就遇到了这样的事情。

    我 6 岁的时候编写了第一行代码,虽然我并不是神童,但我爸爸给了我很多指导,我也由此爱上了编程。

    我 15 岁的时候,在爸爸的咨询公司做兼职,建网站,或者为商业应用编写组件。

    我拿的薪水很少,但是就如我爸爸很喜欢说的那样,我可以免费用工作场所,还能获得了非常有价值的工作经验。

    之后,我还接了一些自由编程的工作,为一些本地小型电商写网站,薪水足够我付一半的学费!

    21 岁的时候,我在加拿大多伦多的交互市场公司找到了一份全职程序员工作。

    这家公司由一个医学博士创建,它的许多客户来自医药公司。

    加拿大对于医药公司的处方药宣传上有着非常严格的规定。

    因此,这些公司想要建立一个网站,它能提供各种药物的信息。如果访问这个网站的用户能够提供处方证明,就有权访问能够得到更具体药物信息的网站门户。

    The home page of edfactscanada.com circa 2001, via The Internet Archive

    我参与的一个项目,其目标客户是女性群体,更确切地说,是青少年女性。

    网站的一个功能是 —— 向女孩们询问问题,然后根据她们的回答推荐药物。

    请注意,这个网站提供的是宽泛的信息,而非为特定药物做的广告。

    我看到这个网站的需求里面有询问的题目,以及各种选项。

    但是需求里面没有说明的是 —— 我应该如何根据问题的回答来处理最后的结果,也就是我应该根据什么规则,在用户回答完之后向她们推荐药物?

    我跟商务提到这件事,她和客户联系后反馈了我需求,于是我就继续编写问题环节。

    在向客户提交前,我的项目经理快速测试了一下,她回答了网站问题,然后找到我说:

    「问答功能有问题。」
    「哪里不对?」我问道。
    「好像无论我怎么选答案,网站最后都会向我推荐客户的药物是最好的,除非我说我药物过敏,或者我已经吃过这个药了。」
    「是的,需求就是这么说的,所有的问题都会指向客户的药物产品。」
    「哦,好吧。」

    之后她就离开了。

    其实,当我第一次看到这样的需求的时候,我有些不爽。

    我应该告诉你,当我编写一些根本上就是用来欺骗女孩子的代码时,我觉得做错了。

    但事实上,我当时没有想太多,我有工作要做,而且我这么做了。

    我们并没有做什么不合法的事情。作为组里面最年轻的开发者,我在这个年纪就赚了不少钱。后来我才意识到,网站的真正目的就是为了推广某种药物,其实我就是个「营销策略」。

    最后,客户对网站很满意,还邀请我们整个组去参加一个牛排晚宴。

    当天离开办公室前,一位同事发了封邮件给我,里面有个新闻链接,报道一个年轻女孩服用了我创建的网站所推广的药物。

    她自杀了。

    这个药物的主要副作用中,包含了重度抑郁和自杀倾向。

    给我发邮件的同事没有出现在那天的晚餐上。

    我依旧去了,感觉很艰难和尴尬。我从没提及那篇新闻报道,只是安静地吃牛排,试着强迫自己微笑。

    之后,我和我 19 岁的妹妹打电话,发现在我做那个网站项目的时候,她已经服用了那个网站所推广的药物。

    当我们第一次提到这个(女孩自杀)事情的时候,以为整个事件仅仅是一个巧合。

    而现在,我们对话的态度完全变了。我劝她尽快停止服用这个药。谢天谢地,她听了我的话。

    如果我要为自己在之后的(病人)自杀和重度抑郁事件中辩解,有很多种方法。即便是今天,仍有来自之前服用过这个药物的病人的诉讼。

    证明自己对这些事件毫无责任并不难,然而,我从来没有因为自己写出那些代码而感到好受过。

    在那个晚餐的不久后,我辞职了。

    作为开发者,我们常常是抵抗那些不道德之事的最后一道防线。

    我们处于一个软件能够打车带我们看球赛的时代,也有了很多人工智能程序帮助医生诊断疾病。不难想象,软件不久后就能推荐处方药了。

    软件越多地参与到我们生活的方方面面中,对于我们开发者来说,保证我们的道德底线永远驻留在代码中,就变得愈发重要。

    从那天起,我写代码前,我总会试着去三思代码所带来的影响。

    希望你也是这样。


    原文链接:

    The code I’m still ashamed of

  • 相关阅读:
    迭代器和生成器
    案例:复制大文件
    案例:使用seek倒查获取日志文件的最后一行
    Leetcode165. Compare Version Numbers比较版本号
    Leetcode137. Single Number II只出现一次的数字2
    Leetcode129. Sum Root to Leaf Numbers求根到叶子节点数字之和
    Leetcode116. Populating Next Right Pointers in Each Node填充同一层的兄弟节点
    Leetcode114. Flatten Binary Tree to Linked List二叉树展开为链表
    Leetcode113. Path Sum II路径总和2
    C++stl中vector的几种常用构造方法
  • 原文地址:https://www.cnblogs.com/jpush88/p/10068969.html
Copyright © 2011-2022 走看看