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

13 年 Bug 调试经验总结

哪怕通常不会发生,但系统(或交互系统)其他部分bug可能会导致事件发生。 2.过早。这是第一点“事件顺序”一个特例,但它确实会引起一些棘手bug,因此把它单独拎出来说明。...在调试这类问题时,我们总是假定在空闲列表时候连接被设置为down(但当时为什么不把它放到列表外面?)。这是我们思考不足,没有考虑到有时候事情会过早发生。 3.悄无声息故障。...发生这种情况时,很难改变新设计影响到所有情况。找到关于改变所有显式依赖关系不难,难是要找到所有隐性依赖于旧设计情况。例如,可能会有获取给定某一天所有客户事件代码。...通过启动逐渐添加所需小功能,得到了一些非常有用工具。自己写工具好处是,得到正是想要。 在测试中发现所有的bug,那绝对是不可能。...但我学会了不再用这种方式去回应。更多时间,事实往往证明,他们所报告的确是实际发生情况。因此,这些天,开始接受他们所报告内容表明价值。当然,依然会仔细检查一切是否被正确地设置等等。

71850

13 年 Bug 调试经验总结

哪怕通常不会发生,但系统(或交互系统)其他部分bug可能会导致事件发生。 2.过早。这是第一点“事件顺序”一个特例,但它确实会引起一些棘手bug,因此把它单独拎出来说明。...在调试这类问题时,我们总是假定在空闲列表时候连接被设置为down(但当时为什么不把它放到列表外面?)。这是我们思考不足,没有考虑到有时候事情会过早发生。 3.悄无声息故障。...发生这种情况时,很难改变新设计影响到所有情况。找到关于改变所有显式依赖关系不难,难是要找到所有隐性依赖于旧设计情况。例如,可能会有获取给定某一天所有客户事件代码。...通过启动逐渐添加所需小功能,得到了一些非常有用工具。自己写工具好处是,得到正是想要。 在测试中发现所有的bug,那绝对是不可能。...但我学会了不再用这种方式去回应。更多时间,事实往往证明,他们所报告的确是实际发生情况。因此,这些天,开始接受他们所报告内容表明价值。当然,依然会仔细检查一切是否被正确地设置等等。

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

13 年 Bug 调试经验总结

如果此事件接连发生两次会怎么样?哪怕通常不会发生,但系统(或交互系统)其他部分bug可能会导致事件发生。 2.过早。...在调试这类问题时,我们总是假定在空闲列表时候连接被设置为down(但当时为什么不把它放到列表外面?)。这是我们思考不足,没有考虑到有时候事情会过早发生。 3.悄无声息故障。...于是很多代码是在这样假设下写下。但是后来,设计改变了,允许每天有多个客户事件了。发生这种情况时,很难改变新设计影响到所有情况。...通过启动逐渐添加所需小功能,得到了一些非常有用工具。自己写工具好处是,得到正是想要。 在测试中发现所有的bug,那绝对是不可能。...但我学会了不再用这种方式去回应。更多时间,事实往往证明,他们所报告的确是实际发生情况。因此,这些天,开始接受他们所报告内容表明价值。当然,依然会仔细检查一切是否被正确地设置等等。

94790

13 年 Bug 调试经验总结

哪怕通常不会发生,但系统(或交互系统)其他部分bug可能会导致事件发生。 2.过早。这是第一点“事件顺序”一个特例,但它确实会引起一些棘手bug,因此把它单独拎出来说明。...在调试这类问题时,我们总是假定在空闲列表时候连接被设置为down(但当时为什么不把它放到列表外面?)。这是我们思考不足,没有考虑到有时候事情会过早发生。 3.悄无声息故障。...发生这种情况时,很难改变新设计影响到所有情况。找到关于改变所有显式依赖关系不难,难是要找到所有隐性依赖于旧设计情况。例如,可能会有获取给定某一天所有客户事件代码。...通过启动逐渐添加所需小功能,得到了一些非常有用工具。自己写工具好处是,得到正是想要。 在测试中发现所有的bug,那绝对是不可能。...但我学会了不再用这种方式去回应。更多时间,事实往往证明,他们所报告的确是实际发生情况。因此,这些天,开始接受他们所报告内容表明价值。当然,依然会仔细检查一切是否被正确地设置等等。

69560

13 年 Bug 调试经验总结

哪怕通常不会发生,但系统(或交互系统)其他部分bug可能会导致事件发生。 2.过早。这是第一点“事件顺序”一个特例,但它确实会引起一些棘手bug,因此把它单独拎出来说明。...在调试这类问题时,我们总是假定在空闲列表时候连接被设置为down(但当时为什么不把它放到列表外面?)。这是我们思考不足,没有考虑到有时候事情会过早发生。 3.悄无声息故障。...发生这种情况时,很难改变新设计影响到所有情况。找到关于改变所有显式依赖关系不难,难是要找到所有隐性依赖于旧设计情况。例如,可能会有获取给定某一天所有客户事件代码。...通过启动逐渐添加所需小功能,得到了一些非常有用工具。自己写工具好处是,得到正是想要。 在测试中发现所有的bug,那绝对是不可能。...但我学会了不再用这种方式去回应。更多时间,事实往往证明,他们所报告的确是实际发生情况。因此,这些天,开始接受他们所报告内容表明价值。当然,依然会仔细检查一切是否被正确地设置等等。

50120

深度学习基础:为什么神经网络感知机神经元需要偏置项?

但你是否考虑过我们为什么要使用偏置项?就而言,直到不久前才弄清楚这个问题。...对来说,向她解释这些概念当然很容易,但我却很难进一步地告诉她我们为什么要使用偏置项。过了一段时间,决定尝试写代码来研究这一问题。 让我们先从一些简单概念开始。...但是下面的内容是很容易理解: 我们很容易就注意到,当b=0时,函数总是通过原点[0,0]。当我们保持a不变情况下引入b时,新函数总是相互平行。那么,我们能从中得到什么信息?...那么感知机如何对它分类?有偏置项和无偏置项结果分别是怎样?让我们通过编程,看看将会发生什么!...在这种情况下尽管一直在向分离平面逼近,但它还是不能将[0,0]和[1,0]分开, 有偏置项感知器 现在我们来看一下有偏置项感知器。首先,注意分类器灵活性。

2.4K20

关于pythonset与dict无序问题

好了,当我疯狂运行这个程序时候输出结果自然也不唯一。无序嘛!就是这个意思~ 但是事情没有那么简单,无意又用int类型试了一试,如下: s = {1,2,3} print(s) 猜猜发生了什么?...这种情况下,无论怎么疯狂输出,疯狂运行这段代码得到结果却是唯一,那就是print了{1,2,3} 通过反复尝试发现,只要是int类型,那么set好像就变成有序了,无论声明这个set时数字如何摆放...那么为什么出现这种现象,答案只需要从底层源码中就能找到。简单来说,就是字典和集合无序性在python是如何实现? 字典和集合无序实现方式是hash表。...而且在真正生产过程,你用到列表随机说明就有重复值呀~如果没有。。为什么不直接就用set。。。Σ( ° △ °|||)︴可别忘了set还带去重! 所以!记住set是无序!...所以set与dict是无序~但是无序世界里也有小惊喜等着我们发现~ 谢谢阅读~是大蟒蛇,希望通过自己轻松愉快语气与大家讲解遇到,或是帮助大家解决你遇到python问题,也希望能给

2.1K20

那些原则No.90

这也是经常会犯错误,当一个事情交到我手上时候,经常会神经反射地去寻找自己脑袋中所能找到最好方案,但是很多时候,其实多方位地去咨询别人,会得到更好结果,特别是你周围全都是比你厉害的人,这点我深有体会...在工作因为观点不同总会存在很多分歧,也会有很多争论,觉得这是一个比较好风气,因为我们都在寻找正确东西。...但是总是有些时候,自己都会搞不清楚,自己究竟是在试图理解这个问题,还是仅仅为了证明对方观点是傻逼。...一些这种情况可能是 “邓宁克鲁格效应”造成,这事一种认知偏差,显示为能力低的人误认为自己更强。 嗯。很多人这样。要警惕自己是不是也有时候是这样。...要知道,你预测是能改变决策者决策,甚至能改变未来。以前看过一些经济学书,就以为,嗯,这不是很简单嘛,就一些公式,为什么会出现那么多经济学家?他们在研究什么

590100

再谈Android许可证

不过,文章写错了,并不代表Google没有做错。你可以这样想,如果Google所作所为都是无可指责的话,那么为什么Linux内核开发小组会撤下它代码?...如果这个角度评价Android,那篇文章错误就会少一些,也不会遭到那么多反对意见了。 5. 在所有的批评,有些不是针对那篇文章具体内容,而是针对个人。...虽然觉得,这些评价对不太公平,但是还是要谢谢这些朋友指教。愿意虚心汲取教训,以后写文章一定更加严谨,减少错误。 6. 不过,也想借这个机会澄清一些误解。...* Linux内核是Google能找到最便宜内核,为什么不用?   * Google又没违反License,还有什么可说。   * 为什么Android代码非要回馈给Linux?...是的,地球上就是有这种人类,谁妨碍了他发财,他就想除掉你。只要自身利益得到保障,他人死活才无所谓。 正是由于这种自私的人存在,才需要我们更坚定地支持自由软件。

1.1K60

生成式 AI 如何辅助软件交付

多年来,一直在强调,当人们关注代码时,他们认为构建软件就是坐在电脑前,面对IDE编写代码,这似乎就是全部内容。这也是为什么Thoughtworks多年来一直在使用极限编程实践包括结对编程。...多年来,我们客户一直在问,为什么要支付两名开发人员工资来编写相同代码?这很昂贵。我们不得不做很多解释工作,实际上这是一个巨大错误假设,因为这项工作是有设计部分。...有了生成式 AI,这种情况就不太会发生了,它会告诉你它做了什么。它给你一些实现选项,但如果你没有经验和专业知识来对这些选项做出判断,那么可能会生成更多糟糕软件。...但生成式 AI 可以消除许多流程障碍,这就是为什么你必须观察整个软件开发生命周期,包括思考我们如何培养未来工程师成为优秀工程师。...可以保证,你组织每位软件工程师都已经在使用生成式 AI。还可以保证,侵犯知识产权情况已经在发生

24620

面向对象编程是计算机科学最大错误

因此,自动执行这种约束是符合逻辑。 不幸是,OOP 并不是我们一直在寻找解决方案。它没有提供任何约束来帮助解决代码纠缠问题。...,但似乎在给定相同输入情况下,这个函数总是返回相同输出。...前者函数总是在给定相同输入情况下产生相同输出,就像数学函数一样。换句话说,函数是确定性。后一个函数可能会产生预期值,但这是不保证。或者换句话说,这个函数是不确定。...这取决于你团队初级开发人员是否遵循这样最佳实践,以及这些实践是否在代码审查得到执行(这并不总是发生)。 那函数式编程?在函数式编程,函数式组成(和分解)是构建程序唯一方法。...这正是我们一直在寻找东西! 函数调用其他函数,大函数总是由小函数组成,就是这样。与 OOP 不同是,函数式编程组成是自然

56250

程序员翻车时 30 种常见反应

不知道该把它删掉还是该重写” 看着旧代码,你总有一种想要重写它们冲动。丑陋逻辑语句和啰嗦语法极大降低了代码可读性!但是,如果代码跑得好好为什么要去修改它们?...“这个功能有没有对应插件?” 为什么要重复发明轮子?要扩展用户界面、程序或网站,插件是一种很好方式。另外,插件还能提供定制化功能。如果找不到相应插件,为什么不自己开发一个? 6....但如果你发现你又因此浪费了一个小时经常遇到这种情况,这让人感到非常沮丧。 20. “天哪,为什么没写注释?” 在写前端 HTML/CSS/JS 代码时,并不总是需要写注释。...“刚才它还能运行……” 开发程序最令人感到沮丧,可能是什么都没做——既没有更新,也没有修改代码——程序却突然不能正常运行了。发誓,这种事请经常发生。也许是因为其他程序正在运行旧版本?...“想知道如果请人来修复犯下错误要花多少钱?” 聘请其他开发者来修复问题,这种想法很诱人,但显然财务上不允许。另外,如果你不亲自动手,怎么能从这些错误吸取到教训

49310

开发高质量软件要付出什么样代价?

既然客户从来没见过这个应用程序代码,而且也不影响应用程序运行,那为什么还会有人为 Rebecca 软件额外支付 4 美元?...---- 内部质量使增强软件变得更容易 那么为什么软件开发人员会把内部质量当成一个问题?程序员大部分时间都花在代码修改上。即使在一个新系统,几乎所有的编程都是在现有代码基础上完成。...Cruft 增加了理解如何改变时间,还增加了错误可能性。如果发现了自己错误,那么就会浪费更多时间,因为还必须了解这一错误是什么,以及如何纠正这个错误。...在物理世界,类似的情况是,一旦一半建筑物建成并被占用,客户通常会添加新楼层,并改变楼层平面图,而混凝土基本性能每隔一年就会发生变化。 鉴于存在这种程度变化,软件项目总是创造一些新颖东西。...其实这是一个错误选择,这点在《State of Dev Ops Repot》严谨科学研究得到了证实。 几年来,他们一直使用调差统计分析来梳理高效软件团队实践。

82130

5.4 万 Star,一夜清零!

在配置文件和存储库方面,GitHub 概念模型会将用户和组织视为非常相似的实体。在这种情况下,由于我只是想在我们组织个人资料上重复相同操作,大脑切换到了「自动驾驶」模式。...这就是为什么一开始要隐藏 httpie/httpie,而不是 httpie/.github,并且没有意识到我错误。 但是,还有一个确认流程?...片刻之后,意识到发生了什么事。所以我回到 repo 设置来翻转开关。但 GitHub 不允许这样做——整整半个小时。 为什么这么久?...为什么 GitHub 不给我们恢复? GitHub 显然有备份,并且有恢复 repo 方法。...我们希望 GitHub / 微软 有朝一日能够改变他们态度,并恢复我们项目社区,他们拥有实现这一点所有数据和方法。我们也希望他们改进 UI 和数据库设计,以防止这种情况未来发生在其他团队身上。

97430

为什么IP地址与Mac地址缺一不可?为了方便理解,来讲个故事:再深一点:

而理论上,世界上IP地址和Mac地址也是独一无二,为什么通信过程,既需要Mac地址又需要IP地址简单讲,是因为网络环境太复杂了.网络通信要经过许多路由器转发信息,才能实现双方通信.所以才需要...为了方便理解,来讲个故事: 传纸条 是昭昭,我处在教室座位第一排,想给第五排小Y同学传一个纸条.但迫于自己胳膊不够长,只能把纸条折三折,在纸条背面面写上(是昭昭,帮我把这个纸条传给小Y,谢谢路过小伙伴啦...再深一点: 传纸条一定要加自己名字么这个,其实吧,如果不加自己名字的话,人家小Y收到后怎么回你帮忙传纸条小伙伴是何许人也在实际网络,这些帮我传纸条小伙伴们就是网关(可以理解为我们平时家里装无线路由器...关于TTL: TTL 在实际网络,发送数据要远比传纸条复杂得多,比如,在传纸条过程,第四排是一个新同学,他不知道小Y在第五排,他以为小Y在第二排,就把纸条传到了第二排,然后这个纸条就会一直在第二排与第四排之间循环传递......这种乌龙事件在网络是有可能发生,为了避免这种情况,我们会在要传递数据上,加一个初始值(这个初始值就是大名鼎鼎TTL,暂定128),每经过一次传递,就将这个值减1,当减到0时候,就把这个数据包丢掉

77570

PHP命名空间(Namespace)初探

之后可能想要增加对所有用户留言一些信息统计功能,比如说得到所有留言数量。...> 复制代码 为什么要说第一个命名空间?因为同一脚本文件可以创建多个命名空间。 下面创建了两个命名空间,顺便为这两个空间各自添加了一个Comment类元素: <?...在这种情况下,Comment总是被解析为代码文字名(literal name)A rticle \Comment。...> 复制代码 注意到,如果导入元素时候,当前空间有相同名字元素将会怎样?显然结果会发生致命错误。 例: 复制代码 字符串形式调用问题 上面的动态调用例子,我们看到了字符串形式动态调用方式,如果要使用这种方式要注意两个问题。 1. 使用双引号时候特殊字符可能被转义 <?

1.7K10

芭比Q了!5.4万GitHub Star一朝清零!

在配置文件和存储库方面,GitHub 概念模型会将用户和组织视为非常相似的实体。在这种情况下,由于我只是想在我们组织个人资料上重复相同操作,大脑切换到了「自动驾驶」模式。...这就是为什么一开始要隐藏 httpie/httpie,而不是 httpie/.github,并且没有意识到我错误。 但是,还有一个确认流程?...所以我回到 repo 设置来翻转开关。但 GitHub 不允许这样做——整整半个小时。 为什么这么久?因为这是 GitHub 级联删除我们 10 年来 Star 和关注者所花费时间。...而且没有办法阻止这个过程。所能做就是开始发消息给 GitHub 寻求支持,刷新页面并等待 Star 数量达到零,然后才能再次将其公开。 为什么 GitHub 不给我们恢复?...我们希望 GitHub / 微软 有朝一日能够改变他们态度,并恢复我们项目社区,他们拥有实现这一点所有数据和方法。我们也希望他们改进 UI 和数据库设计,以防止这种情况未来发生在其他团队身上。

40760

设计师都能懂 Redux 指南

更改数据代码必须像数学公式一样。 在相同输入情况下,它必须返回相同结果。 无论你运行多少次,4 平方总是 16。 当你遵循上述原则来开发应用的话,不可思议事情就来了。...自动错误报告 想象一下:一个用户在你应用程序中发现了一些错误,想要报告这个 bug。她煞费苦心地回忆和描述她所做事情。然后,开发人员尝试手动执行这些步骤,以查看是否再次发生错误。...开发人员单击“重播错误”按钮并观察错误是如何发生。 bug 被当场压扁,每个人都很开心! Redux Bug Reporter 就是这样玩。它工作原理?Redux 限制条件让一切变成可能。...“样板” 代码 在许多情况下,使用Redux意味着编写更多代码。通常需要接触多个文件才能使一个简单功能正常工作。人们一直在抱怨他们必须用 Redux 编写样板代码知道,这听起来很矛盾。...Redux 一般思想适用于任何地方 只要你明智地使用 Redux,你可以在很多情况得到好处,而不仅仅是在React应用。 总结 有不可避免缺点。

1.6K10

当你设计时,应该思考些什么

也许有的人练习了很久发现自己进步速度很缓慢,有的人练习不多,但每次输出作品质量跟上次相比却提升很多。那么其中差异到底是出现在哪些方面之前也一直在思考这方面的问题。...那么你有没有思考过为什么会产生这样结果?对于自身学习和思考方式我们是不是还有待改进方法?我们可以先来了解一下学习金字塔这个模型: ?...分析最直接方式就是自我提问。“这个设计为什么会觉得它好看,是颜色搭配吸引了,还是版式设计非常合理,又或者是整体配图非常和谐?”...就像在学校时,老师总是强调我们试卷答题完成后一定要进行自我检查去排除一些不该犯错误。同理,设计也是一样,每当我们初步完成了设计界面后,觉得最重要也是进行自我检查,排除一些界面常见错误。...说起来很简单,但不要因为这个错误发生而让别人质疑你专业性; 以上列举了一些部分常见界面问题走查,还有更多界面基本问题值得大家去留意。

42040
领券