首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

扎克伯格舌战群儒实录全文大放送!

回想起来,相信他们显然是错误的…… 我们应该跟进,然后做一次全面审查。这不是我们以后会犯的错误。 Nelson:是的,你们做了,而且你也为此道歉。但你并没有告知他们。...因为有些用户会分享滑雪相关的内容,表示他们对此感兴趣,他们也会在平台上表示他们是不是女性,这样我们就能把信息准确地分享给正确的人。在此期间,信息并不转手给广告商。...我的问题是,在此次事件中,将近8700万Facebook用户的信息被共享给了一个第三方,而其中只有30万人授权同意了该行为,这怎么能说是没有违反协定呢?...你有没有尝试了解? 扎克伯格:由于我们刚刚知道他们在一个月前还没有删除,我们做了一系列事情,比如说一个针对他们是否在他们的广告里使用任何这些信息的调查。...但假如我拥有这些数据,那么数据被盗用时,我又怎么会不知道呢?所以,您怎么能说,当其他人可以利用我的数据时,还能说这是我的数据呢?您能解释下这个问题吗?我完全不希望任何人持有我的任何信息。

92050

代码审查如何保证软件质量

尽管测试可以检测到所有错误并由开发人员修复它们,但让我们讨论一个方案,该方案将清楚说明为什么它不能代替代码审查。 我将分享我的个人经验。我们的团队正在开发大型动态Web应用程序。...尝试查找可能导致错误测试顺序的小错误。每当有时间时,请并行浏览应用程序的存储库,并尝试了解开发人员在该处所做的事情。...另外,如果您团队中的某人正在检查代码,请与他们讨论或坐在一起,并尝试了解他们的工作方式。...您的评论绝不能伤害:在评论中要有建设性,而不是批评。提出问题而不是发表声明。此外,还要称赞开发人员的工作。您以正确的语气提供的反馈意见一定不会伤害他们,而应该激励他们改正错误,并确保不再发生错误。...依靠代码查看工具:代替手动检查和写下问题,使用代码查看工具可以通过启用内联注释和错误报告来节省工作量。 “我希望您现在意识到SDLC中代码审查的重要性,以及它与测试的区别。

1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    干货 | 我从资深软件工程师学到的避坑大法

    当进入代码审查环境的时候,我才明白为什么命名这么难。 在计算机科学里有两个难题:内存不足、命名、以及差一(off-by-one)错误。...如果我忘记了这部分代码,之后又回到了代码工作上,没有注释的话我不能重新创建上下文,我可能只会想:「为什么他们要这么写?这没有任何意义……哦,等等,是我写的。」 这里就是开发文档和注释该出现的地方。...每次代码审查时我都问自己:「他们为什么这样做?「。每当我找不到合适的答案时,我就会去和他们谈谈。 在第一个月后,我开始在同事的代码中找到错误(就像他们对我代码做的一样)。...但是如果该应用程序可完成 100 种不同的功能,那该怎么办呢?我不想花半个小时来测试所有的功能,何况有时候还会忘记一些需要测试的地方。 所以就出现了自动化测试。...是否安装了正确的代码? 配置是否正确? ,像代码中的路由是否正确? 模式版本是否正确? 然后进入代码。

    57520

    【业界】Facebook对收集用户通话和短信数据的言论作出了回应

    但即使用户没有将该权限授予Messenger,他们也可能会在Facebook的移动应用程序中进行使用,因为Android在过去已经处理过访问通话记录权限的问题。...但是,如果Android应用程序写入早期版本的API,则可以绕过此更改,因此Facebook API可以通过较早的Android SDK继续访问通话和SMS数据。...在清除了我的联系人数据之后,我的联系人和通话仍然在我下载的存档文件中,这可能是因为我的新请求没有重新生成存档。...如果他们不再希望使用这个功能,他们可以在设置中关闭它,或者将所有以前共享的通话和文本历史记录通过该应用程序删除。虽然我们从Android获得了一定的权限,但上传这些信息的过程一直都是选择性的。”...Facebook从来没有明确地透露数据是被收集的,而且它只是作为与账户相关数据审查的一部分被发现。

    1.3K70

    前车之鉴:聊聊我在云基础设施中掉过的坑

    同事们吓了一跳,但他们不知道这种反应的背后是种深深的恐惧。 所以我想用这篇文章聊聊自己犯过的最大错误,希望能给各位后来者一点指引。其实我知道,无论看不看本文,该犯的错都会犯、该掉的坑都要掉。...我对应用程序进行了身份验证,也能查看正确的 secrets;但在轮替期间会有两条 secrets 同时处于正确状态,这一点我是真的没想到。...现在的我,会称这种思路为“过早优化症候群”。 按照多云设计思路,我开始审查“多云兼容性”并通过自主维护的 SDK 替代 AWS 提供的预制 SDK。...继续追问,他们的回答也只是“我们只想看看到底会报多少次警,没突然增多就行。” 这种不在意的态度终究会体现在真正紧急的警报当中,导致我们没能把握时机解决关键问题。那能不能减少警报数量呢?...6 不要用 Python 编写内部 CLI 工具 这事我只简单谈两句。 没人知道怎么正确安装和打包 Python 应用程序。

    42010

    使用WebRTC开发Android Messenger:第3部分

    这意味着攻击者无法访问易受攻击的代码。 VK VK是Mail.ru发布的社交网络应用程序,其中用户必须明确允许特定的其他用户与他们联系,然后才允许每个用户呼叫他们。...他们使用动态下载的WebRTC版本,该版本与VK使用的版本相同。由于库是完全一样的,因此我的BUG利用也可以正常工作,并且我也不必费心测试TamTam,因为它是如此相似。...另一个促成因素是,直到2019年,WebRTC都没有向集成商提供任何安全修补指导,实际上,他们的网站不准确地表示,该库中从未报告过BUG,这是因为WebRTC安全BUG通常存储在Chromium错误跟踪器中...我分析的许多应用程序都具有早于此的WebRTC版本,因此,此不正确指南的遗留之处很可能仍然导致应用程序无法更新WebRTC。...这个BUG在Signal、googleduo、JioChat和另一个应用程序上是完全远程的,需要用户在VK、OK和TamTam上进行交互。其他休闲包没有受到影响,因为他们有效地禁用了SCTP。

    1.6K53

    CTO 写低级 Bug,致公司 70 GB 数据遭泄露!

    在这份代码中存在一个很明显的错误类型,而这往往是新手才容易犯的错误,即第 23 行代码中,拆分了“reject”和“filter”代码,这两个 API 函数实现了防止 SQL 注入攻击的编程习惯。...对此,Facebook 的前产品工程师 Dmitry Borodaenko 在一封电子邮件中写道,“ 或许 Rails 的官方文档没有警告过用户存在这个陷阱,但是,如果作为开发者,完全了解在 Web 应用程序中使用...3、网友:不足为奇 针对这样的错误,也引发了不少网友的讨论: 一点都不足为奇。在某一时刻,当他们有一个 API 时,我可以跟踪和看到在网站上看不到的"锁定"帐户中的信息。...我对他们网站反馈了这一问题,他们回复说:“哦, 是的, 我们现在正在做很多改变,”然后从来没有修复过这一 Bug。...这是糟糕的代码, 有点让我吃惊的是, 一个前 Facebook 工程师写了它 (后来成为 CTO),显然,Gab 并没有雇佣到一位最优秀、最聪明的 CTO。 对此,你怎么看?

    57610

    如何把测试带给团队?

    我会把它归类为静态测试检查工具,因为如果你的代码里有语法错误,那 prettier 会格式化有问题的代码。 引入 TypeScript 和 Flow 可能会有点麻烦。...它们可能在做类型检查时不是那么有用,但我见过很多人放弃 TypeScript 的一个原因是:他们花了很多时间去想怎么才能写好类型。不完美就不完美吧,你可以在学到更多知识后再回过头来做更新迭代。...可以慢慢迭代到最佳版本,不要让完美主义阻碍你的步伐。 第三步:写一个单测 我们再来看下一个测试类型。单测是最容易写的测试了。...直接选项目里最简单的一个 纯函数 ,安装并配置好相应的测试工具,然后把它给测了。一旦一个东西测成功了,那么写其它的测试就非常简单了。 很多人不写测试就是因为配置工具这块非常麻烦。...通过让人信心满满的测试策略,你晚上会睡得更好。 晚安。 好了,这篇外文就给大家带到这里了。这篇文章主要聊了一下如何把测试引入项目里,如果大家也在做同样的工作,可以参考一下这 5 个步骤。

    27510

    Facebook 20 亿用户数据均可能泄露,扎克伯格仍不打算辞职

    到目前为止,他也还没有开除过任何一个人,并认为最终责任在他自己。“不论如何,这是我的责任,我开创了Facebook,我运营它,我负责。”“我不会把别人抓来背黑锅。”...这样就能很容易地将Facebook活动添加到日历、票务或其他应用程序。但是,Facebook活动包含有关其他人的出席信息以及留言板上的帖子,所以确保应用程序正确使用其访问权非常重要。...我们在2014年开始批准这些权限,但现在我们正在收紧审查流程,要求这些应用程序在访问此数据之前同意严格的要求。...“生活就是从错误中吸取教训,”扎克伯格周三在与记者的电话会议中说: “不论如何,这是我的责任,我开创了Facebook,我运营它,我负责。”...扎克伯格表示,Facebook等到周三才公布8700万这一数据,是因为希望“彻底弄清情况”,“让你们有一个全面的理解”。 扎克伯格明确表示,他不打算辞去首席执行官职务。

    86440

    Facebook将MySQL升级至8.0

    ,以防止Facebook的工作负载的性能退化 Facebook上一次升级到 MySQL 5.6 的主要版本花了一年多的时间才推出。...Facebook的大多数自定义代码都有很好的注释和描述,因此他们可以轻松确定应用程序是否仍然需要它,或者是否可以删除。但一些补丁非常模糊,需要挖掘旧的设计文档、帖子或代码审查评论以了解它们的历史。...Facebook编写了集成测试来检测在5.6版本和8.0版本上运行的每一部分自动化,并验证它们的正确性。在进行测试时,Facebook发现了几个错误和行为差异。...某些复制失败的错误代码发生了变化,必须修复Facebook的自动化工具以正确处理它们。 8.0 版本的数据字典废弃了表 .frm 文件,但Facebook的一些自动化工具使用它们来检测表架构的修改。...8.0 中引入了新的保留关键字,其中一些与应用程序查询中使用的表列名和别名相冲突,例如组和排名。这些查询没有通过反引号对名称进行转义,从而导致解析错误。

    99930

    我只是一名平庸的开发者

    每当你在代码中发现一些你不明白的东西时——哦,这太复杂了。怎么做呢? 重写,使设计更干净 提供文档 给最棘手的部分添加注释。...关于“学习如何编写没有bug的代码”的魔法书是不存在的。因为所有软件都有bug——除了这个框架之外。遇到bug我们就应该处理掉。 关键要点是:每个人编写的代码都不应该带有明显的错误。...应用程序部署后,我仍然不自信 终于,我的应用程序已经进入了产品阶段。它可以工作了。我可以休息休息,应该不会出什么问题了。等等,不!一切都崩溃了。是的,我没有说错:一切。...当你的任何用户发生错误时——你将收到通知。几乎绑定了所有编程语言; 使用不同的服务和工具将多个进程和服务器的日志收集到一个地方; 服务器监控。这是你可以为CPU,磁盘,网络和内存配置显示器的地方。...如果我们想编写出好的软件,那么我们需要不断地学习怎么做。没有捷径也没有魔法。每天进步一点点,就会越来越好。 总之,我们需要理解两件基本的事情: 每个人都会遇到问题。

    851100

    如何编写没有bug的代码?

    每当你在代码中发现一些你不明白的东西时——哦,这太复杂了。怎么做呢? 重写,使设计更干净 提供文档 给最棘手的部分添加注释。...关于“学习如何编写没有bug的代码”的魔法书是不存在的。因为所有软件都有bug——除了这个框架之外。遇到bug我们就应该处理掉。 关键要点是:每个人编写的代码都不应该带有明显的错误。...05 应用程序部署后,我仍然不自信 终于,我的应用程序已经进入了产品阶段。它可以工作了。我可以休息休息,应该不会出什么问题了。等等,不!一切都崩溃了。是的,我没有说错:一切。...当你的任何用户发生错误时——你将收到通知。几乎绑定了所有编程语言; 使用不同的服务和工具将多个进程和服务器的日志收集到一个地方; 服务器监控。这是你可以为CPU,磁盘,网络和内存配置显示器的地方。...如果我们想编写出好的软件,那么我们需要不断地学习怎么做。没有捷径也没有魔法。每天进步一点点,就会越来越好。 总之,我们需要理解两件基本的事情: 每个人都会遇到问题。

    89510

    平庸开发者的生存指南

    每当你在代码中发现一些你不明白的东西时——哦,这太复杂了。怎么做呢? 重写,使设计更干净 提供文档 给最棘手的部分添加注释。...关于“学习如何编写没有bug的代码”的魔法书是不存在的。因为所有软件都有bug——除了这个框架之外。遇到bug我们就应该处理掉。 关键要点是:每个人编写的代码都不应该带有明显的错误。...以及合并后的某个时间也是如此; 付钱让其他人来审核你的代码。此手段可以产生巨大的积极影响!因为如果是陌生的开发人员来查看你的代码,他们更容易发现不一致和糟糕的设计决策。...应用程序部署后,我仍然不自信 终于,我的应用程序已经进入了产品阶段。它可以工作了。我可以休息休息,应该不会出什么问题了。等等,不!一切都崩溃了。是的,我没有说错:一切。...如果我们想编写出好的软件,那么我们需要不断地学习怎么做。没有捷径也没有魔法。每天进步一点点,就会越来越好。 总之,我们需要理解两件基本的事情: 每个人都会遇到问题。

    41910

    作为初级开发人员如何进行代码审查?

    例如,如果您的团队决定文件应按业务模块组织,而开发人员在其拉取请求中没有遵循此约定,那么代码审查是告诉他们的正确方法。...检查错误或边缘情况 通过仔细检查,代码审查有助于发现开发过程中可能被忽视的潜在错误、逻辑错误或漏洞。尽早识别并解决这些问题可以节省时间并最大限度地减少未来的复杂性。...您还将了解您正在从事的具体项目、应用程序的设计方式、其技术债务等。 如果有不清楚的地方请说出来 如果您遇到不清楚或令人困惑的代码部分,请毫不犹豫地提出问题或寻求澄清。...这种方法鼓励讨论并允许开发人员解释他们的思维过程。 示例:您注意到开发人员做了框架文档不赞成的事情。不要告诉“你应该这样做而不是那样做”,而是考虑“我注意到文档建议不要那样做。为什么不这样做呢?...例如,如果您认为变量或函数名称是错误的(命名事物很困难),不要只是告诉“请为变量/函数指定一个更好的名称”。相反,你可以说“我认为这个名字或那个名字更有意义,你觉得怎么样?”

    21120

    百万年薪程序员博文:Python程序员心得,我视它为生存指南!

    每当你在代码中发现一些你不明白的东西时——哦,这太复杂了。怎么做呢? 重写,使设计更干净 提供文档 给最棘手的部分添加注释。...关于“学习如何编写没有bug的代码”的魔法书是不存在的。因为所有软件都有bug——除了这个框架之外。遇到bug我们就应该处理掉。 关键要点是:每个人编写的代码都不应该带有明显的错误。...应用程序部署后,我仍然不自信 终于,我的应用程序已经进入了产品阶段。它可以工作了。我可以休息休息,应该不会出什么问题了。等等,不!一切都崩溃了。是的,我没有说错:一切。...当你的任何用户发生错误时——你将收到通知。几乎绑定了所有编程语言; 使用不同的服务和工具将多个进程和服务器的日志收集到一个地方; 服务器监控。这是你可以为CPU,磁盘,网络和内存配置显示器的地方。...如果我们想编写出好的软件,那么我们需要不断地学习怎么做。没有捷径也没有魔法。每天进步一点点,就会越来越好。 总之,我们需要理解两件基本的事情: 每个人都会遇到问题。

    52400

    平庸开发者的生存指南

    每当你在代码中发现一些你不明白的东西时——哦,这太复杂了。怎么做呢? 重写,使设计更干净 提供文档 给最棘手的部分添加注释。...关于“学习如何编写没有bug的代码”的魔法书是不存在的。因为所有软件都有bug——除了这个框架之外。遇到bug我们就应该处理掉。 关键要点是:每个人编写的代码都不应该带有明显的错误。...应用程序部署后,我仍然不自信 终于,我的应用程序已经进入了产品阶段。它可以工作了。我可以休息休息,应该不会出什么问题了。等等,不!一切都崩溃了。是的,我没有说错:一切。...当你的任何用户发生错误时——你将收到通知。几乎绑定了所有编程语言; 使用不同的服务和工具将多个进程和服务器的日志收集到一个地方; 服务器监控。这是你可以为CPU,磁盘,网络和内存配置显示器的地方。...如果我们想编写出好的软件,那么我们需要不断地学习怎么做。没有捷径也没有魔法。每天进步一点点,就会越来越好。 总之,我们需要理解两件基本的事情: 每个人都会遇到问题。

    67120

    Facebook数据泄漏受害者: 既然无法阻止个人数据被卖, 不如我自己先卖

    既然自己的数据怎么都要被卖掉,为什么不能自己卖掉自己的数据,自己赚钱呢?本文讲述的就是这样一个用户,就在尝试直接将自己的数据卖给第三方交易平台。 ?...作为去年Facebook账号泄露事件的受害者之一,Gregory Barber通过对不同平台的对比,形成了一套「出卖自己数据」的心得,我们一起来看看他是怎么做的吧。...通过Facebook Connect,会员将可在整个网络上使用Facebook的身份验证资料,包括档案照片、名称、照片、朋友、群组、活动和其他资讯等等,这让我想到,我的个人信息就直接暴露在互联网上了……...为了逃离这些黑客和数据掠夺,我曾想过直接删除账户信息,但转念间又考虑到,如果在我不知情的情况下,我的个人数据被营销公司、第三方应用程序甚至是政治宣传者兜售,谋取利益,那么,为什么我不能自己直接从中获益呢...同时,注册信息包括分享自拍、位置信息和 Apple Health上的数据。 最后,还尝试了一下Wibson。在Wibson应用程序上链接了我在Facebook上分享的信息和Strava上的跑步路线。

    60830

    Web3的三次革命

    人们指责Equifax,称他们的安全状况极差。 但是,像Facebook和谷歌这样雇佣了世界上最好工程师的公司,也在同一年发生了数据泄露事件。 这里的教训是,没有一个系统是真正安全的。...这是一个令人担忧的方向。 2.4 审查 接下来,审查。有了中心化的服务器,政府就很容易阻止对它们的访问。 例如,土耳其近两年来一直禁止访问维基百科。因为,正如我们所知,维基百科是对国家安全的威胁。...例如,Airbnb、Twitter、Facebook、YouTube都有去中心化的版本,没有中央权威或权力。...pod是加密的,可以托管在用户需要的任何地方:在他们的设备、服务器上,甚至可能在区块链上。 它的设想是能够通过这样一个按钮连接到Web应用程序。...如果Uber和Lyft不想使用这些去中心化的组件,也没关系,因为Uber和Lyft的去中心化版本会使用它们。 这种创新的基础设施应该有助于防止垄断,因为它使开发者更容易地构建Web应用程序。

    57720

    技术再好,能阻止暴力视频的疯传吗?

    这部视频引起关注的初始原始是其谋杀的“内容”。据报道至少两个小时后视频才被删除。该公司从视频上获得丰厚利润,而不采取任何审查画面的相关措施(它不受传统广播相同的限制),这一行为非常不妥。...他发现了可怕的行为传播的广泛程度和模仿暴力的可能性之间存在着某种关系。“那些精神不正常的人可能会认为这(那)是他们想做的事情。” AI 审查 Facebook 的大多数解决方案都是技术性的。...旁观者效应 谁能判断暴力视频的去留呢?目前AI肯定没有能力做出精细的区分; Facebook 的审查仍然无法区分哺乳的母亲、在家分娩和色情,或标志性的战争摄影和儿童剥削的照片。...尤其是当他们在 Facebook上疯传,这意味着人们正在积极分享它。我们为什么要这样做呢?” 甚至在Facebook删除视频后,视频在其他平台上也在流传。在其中一个帖子中,视频有160万浏览量。...说Facebook 只是问题的一部分并没有让该公司摆脱困境。我们也要承担一些传播内容的责任,而且没有应用程序可以解决这一问题。 原文链接:http://36kr.com/p/5073159.html

    51480

    前端测试一共有哪几种?

    /item-list' // 有些人可能不会把这样的测试叫做单测,因为我们还是要用 React 渲染成 DOM // 他们还可能会告诉你要用 shallow render // 当他们跟你说这个的时候...是因为我让你写?是因为如果不写测试你的 PR 无法通过?还是因为测试可以提升开发体验? 我写测试最大、最重要的原因就是 CONFIDENCE(代码信心)。...当然我不能这么做,这是因为还有一个超级重要的因素,可能你经常会听我说到它: 当你的测试和你应用的使用方式越相似,它们能给你的信心就越大。 这是什么意思呢?...再加上我们会定期发布软件更新,任何人都无法用上最新的版本。 所以要怎么解决?我们要做权衡。 那我们应该怎么做?...说一下这些测试的问题,静态分析工具无法给你带来任何对业务逻辑的信心。单测也无法确保你是否正确地使用依赖的(虽然你可以用断言判断它们是怎么被调用的,但是你仍然无法确保它在单测里是否被正确调用了)。

    58720
    领券