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

2018 年让程序员崩溃的 60 个瞬间,笑死我了。。。

好像真的没人发现我产品里的 bug...... 10. 下班前我还有一项任务没有完成 11. 产品还没测试直接投入生产时 12. 调试过多线程的都会懂! 13....当我以为已捕获了所有可能的异常...的时候 14. 当我试图清理几行所谓的旧代码的时候 15. 当有人让我帮他调试代码时 16. 当程序员第一次向老板演示项目时 17. 结对编程,需要再了解一下吗?...准备下班的时候,测试又提 bug 过來了… 43. 使用新框架却忘记阅读文档 44. 测试实习生的代码 45. 网络延迟的危害... 46....测试刚写完的代码 47. delete 时,忘记加 where 条件了 48. 轻量级架构遇到重量级需求 49. 当我以为我修复了一个 Bug 50. 当我看实习生编码 51....我设计的接口 和 别人调用我的接口 (好疼) 56. try-catch 在错误的地方 57. 修改一个小 bug,却把服务器弄宕机了 58. 当我推错了分支 59. 工作中经常被打断 60.

66930

因为没有网关,我的服务器被 DDoS 了

每天早上七点三十分,准时推送干货 大家好,我是鸭血粉丝,想起来之前生产发生的事故,阿粉我的内心到现在都还很忐忑不安,今天我们来学习一个 Kong 以及跟你们聊聊做好网关限流控制的重要性。...然后紧急分析问题,一开始以为是客户端的 APP 升级出现了问题,导致死循环了,但是问了下终端负责人,并没有发布新的 APK。然后事情都这里想必大家都猜到原因了,没错,那就是我们被 DDoS 了。...在 Kong 的官网赫然的写了上面的一句话,翻译起来有点别扭,我就不直译了,大家自己看英文更能理解。简单来说 Kong 就是下一代的 API 网关,用起来就对了。 ?...我这边已经创建 kong 数据库了,所以显示错误,正常是可以创建成功的。...如果能看到用户和数据库都有的话,那就说明创建成功了,如果没有说明没有设置成功,按照上面的操作再仔细来一遍。

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

    Java学习的我,答完这10道题,崩溃了(内含答案解析)

    为每个topic维护了多个partition分区,能保证一个topic的消息消费有序 C....最坏情况:基准值选择了子数组里的最大或者最小值 每次都把子数组分成了两个更小的子数组,其中一个的长度为 1,另外一个的长度只比原子数组少 1,这样就需要n次的切分。...非叶节点只保存关键字和指针,同样大小非叶节点,b+树可以容纳更多的关键字,可以降低树高,查询时磁盘读写代价更低; C. B+树的查询效率比较稳定。任何关键字的查找必须走一条从根结点到叶子结点的路。...任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同,效率相当。 7. 以下关于Netty说法,正确的是?...如果大于核心线程数,就会判断缓冲队列是否满了,如果没有满,则放入队列,等待线程空闲时执行任务。 如果队列已经满了,则判断是否达到了线程池设置的最大线程数,如果没有达到,就创建新线程来执行任务。

    81110

    要解析一个配置文件,当打开文件的时候我崩溃了

    猫.jpg 薛定谔的猫 首先,说一些题外话,按照我一贯的风格,这篇文章本应该叫《浅谈如何优雅读取特殊格式配置文件》,但是最近被某些网站的推送恶心到了,我是不太喜欢这种标题的,所以我一直尽量避免使用这种标题党式的标题...,但是,好奇心驱使我,想做一次实验,欢迎大家留言,说出你的想法,你更喜欢哪个标题?...要解析一个配置文件,当打开文件的时候我崩溃了 | 为人性癖耽佳句,语不惊人死不休 B. 浅谈如何优雅读取特殊格式配置文件 | 少一点套路,多一点真诚 C. ...这个配置文件原本也是键值对性质的文件,但是这里键值的分隔符,用了空格和制表符而不是等号。 键也不是唯一的,同名键可能有多个值的情况。 如何满足这个需求呢?...作为一名老CRUD,我是这么想的,在原始数据加载时候,引入一个纯数据缓存队列,用于应对读取操作,引入一个辅助元数据队列, 用于协助判断键具体的类型,例如,键值对、键多值对等情况。

    43400

    要解析一个配置文件,当打开文件的时候我崩溃了

    薛定谔的猫 首先,说一些题外话,按照我一贯的风格,这篇文章本应该叫《浅谈如何优雅读取特殊格式配置文件》,但是最近被某些网站的推送恶心到了,我是不太喜欢这种标题的,所以我一直尽量避免使用这种标题党式的标题...,但是,好奇心驱使我,想做一次实验,欢迎大家留言,说出你的想法,你更喜欢哪个标题?...要解析一个配置文件,当打开文件的时候我崩溃了 | 为人性癖耽佳句,语不惊人死不休 B. 浅谈如何优雅读取特殊格式配置文件 | 少一点套路,多一点真诚 C....这个配置文件原本也是键值对性质的文件,但是这里键值的分隔符,用了空格和制表符而不是等号。 键也不是唯一的,同名键可能有多个值的情况。 如何满足这个需求呢?...作为一名老CRUD,我是这么想的,在原始数据加载时候,引入一个纯数据缓存队列,用于应对读取操作,引入一个辅助元数据队列, 用于协助判断键具体的类型,例如,键值对、键多值对等情况。

    43320

    【Rust日报】2022-02-09 热议帖 - 我TM的做开源没有得到任何资助

    热议帖 - 我TM的做开源没有得到任何资助 kind 和 hvm 的作者由于更新慢而被社区有人批评,感到很愤怒。我TM的做开源这么久了,没有得到一块钱资助,你有什么资格批评。...社区今天的热帖,欢迎围观。 最近发生了太多这样的事情,导致很多作者感觉做开源,真的没意思。这其实已经成了一个开源界世界的问题。...理想很美好,为了对抗巨头科技公司的集权。现实还不知道怎样呢。...repo: https://github.com/nviennot/turbo-resin/ 我的Rust前端开发经历 作者使用Rust来开发一个音乐播放程序的前端。尝试了Seed和Dioxus。...Steam 一款经典arcade风格的wave防守游戏。

    36740

    这个适用于任何数据源的“增量”刷新方法,治愈了我的数据刷新焦虑!|PBI实战

    大部分朋友(我也是其中一员),日常工作中没有Pro账号,或不能将公司数据发布到云端,或只能使用Power BI Report Server进行本地化部署,而且往往有各种数据源,尤其是大量Excel文件,...针对这种情况,经过摸索找到一个“准增量”的数据处理方式,希望对存在大量历史数据的朋友有所帮助。...比如我们有很多年的数据,那么我们可以将今年以前的数据全部放在“历史数据”中,今年的数据则放在“新数据”中,这样,报表刷新时,历史数据不刷新,只要刷新今年的数据即可。...将新数据和历史数据做“追加查询”,然后历史数据不加载、不刷新不就可以了? 然而,这是不行的!因为,一旦新数据引用(追加查询)了历史数据,在新数据刷新时,历史数据仍然会被连带刷新!...此时,当我们在Power BI中刷新数据时,将只刷新new查询(新数据文件夹)中的数据: 此外,因为我们已经将his和new表的数据汇总了,在后面的数据分析中不需要再用到his和new的数据,所以,我们可以将这两份数据进行隐藏

    2.4K10

    千万别看这篇文章,因为我感觉好久没有分享这样的干货了

    了解我的读者,经常看我文章的读者,可能都知道,我已经好久没有分享过 Android 相关的干货了,说实话,作为一个以分享 Android 技术起家的公众号来讲,不分享 Android 确实有点过分了。...但是,大家可能也都知道我已经不做 Android 开发快两年了,我从去年管理团队,到去年年底离职创业,到现在这一年多的时间里,其实我仍然处于开发一线,既创业又开发,但是很少做原生 App 了。...我虽然没有做 Android ,但是一直处于前端开发的位置,从 Vue 到小程序,研究各种小程序框架等,其实处于大前端的位置。所以,感觉对 Android 开发已经好陌生了。...人都是随着时代和技术的变化而学习的,持续的学习才不会被淘汰。 其实后台很多读者抱怨说:为什么不分享干货了?因为接触的少的东西,不能乱分享,以免误人子弟,不是我不分享,是因为角色的变化导致我接触的少了。...它的优势如下: 兼容性好:零 Hook,没有调用系统的 hidden API,完美兼容 Android 9.0 功能完整:插件支持独立应用的绝大部分特性 稳定可靠:历经货车帮旗下多款产品 50+ 插件两年多千万级用户验证

    46710

    大语言模型被证明没有推理能力,但是它的救星Prolog来了,我准备入坑了

    大语言模型(LLM),如GPT等,在自然语言生成上已经展示了非凡的能力,但在推理方面,事情就没那么简单了。它们被证明在逻辑推理上存在严重的短板。...但别担心,Prolog,一个以推理见长的古老编程语言,正悄然成为LLM的救星。我准备好入坑了,因为它的逻辑能力确实有望弥补LLM的这一重大缺陷。1. LLM为什么“不会推理”?...但是如果你给它一个复杂的逻辑推理题,比如“如果所有猫都怕水,汤姆是只猫,那么汤姆怕水吗?”这种涉及多个前提和结论的推导,LLM有时会“迷失”。它可能会给出一个看似合理但没有实际逻辑支撑的答案。...这些经典示例展示了Prolog在逻辑推理、图算法、约束满足问题和逻辑谜题求解中的应用。然而,Prolog虽然强大,但也不是没有挑战。...这也是我为什么准备入坑Prolog的原因——在未来的智能系统中,它的地位不可忽视。一些思考在当下的大语言模型浪潮中,逻辑推理能力一直是一个亟待解决的问题。

    18810

    第一胎都还没有,我就用Python早早的帮第三胎起好名了

    最近国家开放三胎了,现在应该有人在“重金求子”了吧!而且某些省份为了鼓励生育,福利满满的。...还别说,我一上网搜索关键字“起名字”,发现挺多起名网站的: ?...faker faker库主要用来随机创建一些伪数据,里面有很多的方法,而我们只需要调用Faker提供的方法,即可完成数据的生成。...locale携带的参数为生成数据的文化选项,只有传入相关文化,才能生成文化相对应的随机信息;它默认为美国英文en_US,因为我们要生成的是中文名字,所以这里传入的是zh_cn,表示中国文化: fk=Faker...结语 两个库中我比较喜欢chinesename,因为比较简洁,而且里面包含《楚辞》、《诗经》,可以让名字更为好听一点... 上面这句话以及本文,呃呃,纯属图一乐!

    84540

    29.Go异常处理-recover

    29.Go异常处理-recover 4. recover 运行时panic异常一旦被引发就会导致程序崩溃。这当然不是我们愿意看到的,因为谁也不能保证程序不会发生任何运行时错误。...Go语言为我们提供了专用于“拦截”运行时panic的内建函数——recover。它可以是当前的程序从运行时panic的状态中恢复并重新获得流程控制权。...虽然程序没有崩溃,但是我们也没有看到任何的提示信息,那么怎样才能够看到相应的提示信息呢?...使用 recover() 返回崩溃的错误信息 可以直接打印recover( )函数的返回结果,如下所示: package main import "fmt" func TestA() { fmt.Println...但是,如果程序没有出错,也就是数组下标没有越界,会出现什么情况呢? image-20210606002619770 这时输出的是空,但是我们希望程序没有错误的时候,不输出任何内容。

    50720

    代码调试最佳实践

    我在Twitter上发了一条推文说,我从来没有见过任何好的调试代码的指南。像往常一样,我得到了很多有帮助的回答,现在我对如何教授代码调试技巧/描述调试过程有了些想法。...有了这样的错误信息,我就可以检查我是否需要修复防火墙,或者我是否由于某种原因得到了错误的IP地址。...这是一个nginx错误,在本例中基本上是因为“程序在响应一个请求而发送任何内容之前崩溃了”。...找出崩溃的原因是很容易的,但是有更好的错误处理方式(返回错误而不是崩溃)可以节省我一点时间,因为我不必去检查崩溃的原因,我只需阅读错误信息,知道发生了什么就可以了。...“Julia,你的服务器崩溃了!”

    97910

    呦,应用又闪退啦?

    常见收集用户使用时出现的崩溃信息方式有三种(新版iTunes Connect已经不能查看崩溃日志了) ?...接下来在测试项目中初始化SDK并人为的制造一个崩溃(哈哈哈哈哈哈哈写bug我可太有经验了) ? ? 需要注意的是,debug模式下无法收集异常,需要改为Release ?...同学们需要注意检查是否有集成其他第三方错误统计SDK,或自己获取错误信息的方法,如有此情况,则U-App无法统计到错误信息。 ?...到这里,就得到了Apple format 的Crash文件,接下来你可以对它做任何处理,想怎么传就怎么传! ?...好啦,就到这里啦,等产品妹子再揍我的时候,我再来和大家侃侃日志解析,爱你们呦~啵~~~~~~

    1.9K20

    避免 Swift 单元测试中的强制解析

    当我们的 app 增加了新功能时,我们的测试代码需要花费大量时间来维护和升级。 测试代码对于加入团队的新人来说难于理解。 你可能已经理解我所讲的内容了 。...然而,一旦我因为编写测试而发现验证自己的代码有多么快,以及对自己有多么自信 —— 我对测试的态度就开始了转变。 所现在我相信对于测试代码,和将要移交的产品代码进行同等的高标准要求是非常重要的。...上述的错误信息可能出现在巨大的“文字墙”中,导致难以看出错误的来源。更严重的是,它会阻止后续的测试被执行(因为测试进程会崩溃),这将导致修复工作进展缓慢并且令人烦躁。...这很简单,我们只需要对 XCTestCase 增加一个拓展,让我们分析任何可选类型表达式,并且返回非可选的值或者抛出一个错误,像这样: extension XCTestCase { // 为了能够输出优雅的错误信息...你会采用一些本文中的技巧,还是你已经用了一些相关的方式?请让我知道,包括你可能有的任何的问题、评价和反馈。 感谢阅读!

    1.1K10

    Unhandled Exception: 处理未捕获异常的最佳实践 ️

    Unhandled Exception: 处理未捕获异常的最佳实践 ️ 摘要 大家好,我是默语,擅长全栈开发、运维和人工智能技术。...未捕获异常(Unhandled Exception)是软件开发中常见的问题,会导致程序崩溃和用户体验下降。在本文中,我将分享处理未捕获异常的最佳实践,帮助大家提高程序的稳定性和可靠性。...理解未捕获异常 1.1 什么是未捕获异常 未捕获异常是在程序运行时发生的异常,但没有相应的捕获和处理代码。例如,当一个数组下标越界时,如果没有相应的捕获代码,程序将终止并抛出异常。...A1: 未捕获异常是指在程序运行过程中发生但没有相应的捕获和处理代码的异常,通常会导致程序崩溃。 Q2: 如何实现全局异常处理器?...A3: 自定义异常是通过继承 Exception 类创建的异常类型,用于提供更具体和有意义的错误信息。 小结 未捕获异常会导致程序崩溃和用户体验下降。

    51110

    Python 错误处理的终极指南(下)

    在这个代码片段中,注意Tkinter允许SystemExit异常(表示应用程序正在退出)继续冒泡,但捕获了所有其他异常以防止崩溃。...这种模式在所有写入数据库的端点中反复出现。 这是一个非常糟糕的做法。首先,对于回滚错误,这个函数没有任何恢复的办法。...如果发生了回滚错误,那意味着数据库遇到了严重的问题,你可能会持续遇到错误,记录一个回滚错误发生了对你没有任何帮助。...在开发过程中,应用程序崩溃并显示堆栈跟踪实际上并没有任何问题。实际上,这是一件好事,因为你希望错误和缺陷被注意到并被修复。...在开发模式下,我们现在重新抛出异常以导致应用程序崩溃,这样我们就可以在工作时看到错误和堆栈跟踪。但我们这样做的同时,并没有削弱生产版本的稳定性,它继续捕获所有错误并防止崩溃。

    9610

    27.Go异常处理-panic函数

    2 panic函数 error返回的是一般性的错误,但是panic函数返回的是让程序崩溃的错误。...当某些不应该发生的场景发生时,我们就应该调用panic。 一般而言,当panic异常发生时,程序会中断运行。随后,程序崩溃并输出日志信息。日志信息包括panic value和函数调用的堆栈跟踪信息。...当然,如果直接调用内置的panic函数也会引发panic异常;panic函数接受任何值作为参数。 调用panic函数的基本方式 下面给大家演示一下,直接调用panic函数,是否会导致程序的崩溃。...: image-20210605163051217 所以,我们在实际的开发过程中并不会直接调用panic( )函数,但是当我们编程的程序遇到致命错误时,系统会自动调用该函数来终止整个程序的运行,也就是系统内置了...,发现确实是panic异常,导致了整个程序崩溃。

    39220

    Go通关07:错误处理,如何通过errorpanic处理错误?

    您诸位好啊,我是无尘,今天聊聊Go语言的错误处理。 错误 在Go语言中,错误并不是非常严重,它是可以预期的,可以返回错误给调用者自行处理。...panic 是Go语言内置函数,可以接收 interface{} 类型的参数,也就是说任何类型的值都是可以传递给 panic 函数的: func panic(v interface{}) ❝interface...panic 是一种非常严重的错误,会使程序中断执行,所以 「如果不是影响程序运行的错误,使用 error 即可」 ❞ Recover 捕获 Panic 异常 一般我们不对panic异常做处理,但是如果有一些需要在程序崩溃前做处理的操作...程序 panic 异常崩溃的时候,只有defer修饰的函数才会被执行,所以 recover 函数要结合 defer 关键字一起使用: func main() { defer func() {...= nil { fmt.Println(p) } }() connectMySQL("","root","123456") } recover 函数捕获了 panic

    59920

    C++ 与 Java 的对比分析:除法运算中的错误处理

    其他未定义行为:在某些编译器或平台上,除以零可能导致不同的表现,比如输出一个奇怪的数值,或者没有任何明显的错误。 这种未定义的行为意味着程序员必须自行处理这种错误,避免出现除以零的情况。...,它会抛出异常并被catch块捕获,程序不会崩溃,而是输出相应的错误信息。...C++中的未定义行为使得错误的处理不够清晰,程序员必须自行管理这种情况。而Java则通过抛出ArithmeticException来明确告知程序员错误类型,提供了一种更直接和系统化的错误处理方式。...这两种语言的错误处理机制各有优缺点: C++: 优点:由于没有强制的错误处理机制,程序员拥有更高的自由度,可以根据需求自定义错误处理逻辑。...条件判断与数据验证:在执行任何数学运算之前,首先验证输入数据的合法性,避免在运行时发生错误。

    5810
    领券