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

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

正如李在《如何构建好软件》中所说,「软件的主要价值不是编写的代码,而是编写的人所积累的知识。」 比如说,我们有个似乎没有人用过的、面向随机客户端的 API 终端。因为这些原因,我就应该把删除?...如果说,在某个特定国家,有 10 名记者会一年一次将他们的报道发送到这个终端,怎么办?如何测试?如果没有开发文档(那时就没有)就不能测试。所以我们没有测试。我们删除了那个终端。...我在维护过程中遇到了这个问题:系统为什么会降级,以及如何降级? 有两个原因可以解答为什么系统也会有降级的时候: 首先,系统不应当舍弃旧的东西,而是在已有的基础上增加更多功能。...然后,无论选择什么部署过程,总是希望你的机器像一头牛而不是像宠物一样。它们并不珍贵。知道每台机器上运行的是什么,以及如何在死机的情况下重新创建它们。...当你修复 bug 不仅仅关注如何修复 bug,而是为什么不早点发现呢?是否有布置警报?如何能够更好地监控来避免类似的问题? 我还不知道如何监控 UI。

55520

GitHub项目推荐 | Python初学者常犯的简单错误集合与练习

这个知识库是初学者在开始编写Python代码可能会遇到的简单的错误的集合。我们的想法是呈现这些练习,让初学者可以经历这些编程错误并尝试去自行解决这些问题。...如何使用本知识库 我们建议进行如下操作: 1. Fork本知识库 2. 在你的终端提示符中(如git bash、命令提示符等等),导航到每一个挑战目录(如:01_challenge) 3....运行过程中应该会抛出一个类似于challenge目录中的 .png的错误 5. 修复错误并重新运行 6. 如果错误被正确修复应该能看到运行fizz buzz的输出结果 7....问题解决后,使用以下命令更新challenge目录 (01_readme.md) 中的自述文件(readme): a.哪个部分的错误信息给了解决的线索 b.如何解决这个问题的...不要忘记提交修复错误的代码并更新自述文件 9. 专业提示:在设置完成后,尽最大努力将每个练习的时间限制在10分钟以内。我们强烈推荐对Python一无所知的初学者按照这个建议进行学习。

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

入门 | Python初学者常犯的简单错误集合与练习

通过完成这些示例,我们希望你在以下方面做得更好: 阅读错误 调试 阅读和编辑他人的代码 用Google检索具体的问题 自行解决错误 如何使用本知识库 建议进行如下操作: 1....在你的终端提示符中(如git bash、命令提示符等等),导航到每一个挑战目录(如:01_challenge) 3....运行过程中应该会抛出一个类似于challenge目录中的 .png的错误 5. 修复错误并重新运行 6. 如果错误被正确修复应该能看到运行fizz buzz的输出结果 7....问题解决后,使用以下命令更新challenge目录 (01_readme.md) 中的自述文件(readme): a.哪个部分的错误信息给了解决的线索 b.如何解决这个问题的 c.总结一下在解决这个问题的过程中学到了什么...不要忘记提交修复错误的代码并更新自述文件 9. 专业提示:在设置完成后,尽最大努力将每个练习的时间限制在10分钟以内。我们强烈推荐对Python一无所知的初学者按照这个建议进行学习。

42010

Java 异常|Java Exceptions

本文是对以下内容的分析:Java异常设计,Java异常可以告诉什么,以及如何使用Java异常。 Java Exceptions Java Exception 是为处理异常应用程序行为而创建的类。...在本文中,我将解释如何使用 Java Exception 类以及如何在考虑现有 Java Exceptions 设计的情况下创建异常结构。...检查,运行时,错误;所以呢? 了解异常类的类型后,我们可能会 回答下一个问题: 情况有多糟糕以及问题的原因是什么。 如何解决问题。 我们需要重启JVM? 我们需要重写代码?...知道异常类,我们可以预测可能出错的地方。考虑潜在的原因,我们可以假设问题的原因是什么以及如何解决。让我们回顾一下最流行的场景,看看这些异常可以告诉我们什么。...,更改端口不不中断异常依赖线程通知中断(锁释放,另一个线程完成操作)高的没有必要修复;这是一种通知相关线程中事件的方法不不另一个线程中断并使用中断通知相关中等的修复另一个线程中出现的问题(可以是任何东西

3.1K40

笨办法学 Python3 第五版(预览)(一)

通常这些错误非常难以理解,但如果将该文本复制到搜索引擎中,会找到其他遇到过这个错误的人,并且可能会弄清楚如何修复。 学习练习 学习练习包含应该尝试做的事情。...如果还不知道如何输入,请找出如何输入。我们经常使用这个字符在变量名中的单词之间放置一个虚拟空格。...如果一次只输入几行代码,会更频繁地运行代码,当出现错误时,知道这可能是刚刚输入的那几行代码有问题。当你输入 100 行代码将花费接下来的 5 天来寻找所有的错误,最终放弃。...需要在这里做同样的事情,关注我如何输入命令以及为什么要有命令行参数。 我如何从 IDLE 运行这个? 不要使用 IDLE。很糟糕。 我可以为 prompt 变量使用双引号? 完全可以。...当我试图缩短这个脚本,在结尾关闭文件出现错误

13810

设计师都能懂的 Redux 指南

让我们深入研究 Redux 可以做什么,它为什么的事情,的缺点是什么,以及它与设计有哪些关联? 听说过 Redux ?它是什么?...他们中的许多人都知道 Redux 与React 一起工作,的工作是状态管理。 本文的目的就是让对 Redux 有更全面的认知: 它能做什么?为什么它要这样设计?何时使用它?...你们很多人可能都听说过,的工作是状态管理。稍后我将解释状态管理的含义, 此刻,我只能想让看下面这张图: 为什么要了解 Redux Redux 更多的是关于应用程序的内部工作而不是的外观和感受。...它是如何工作的? 还记得 Redux 强制执行的三条严格规则? 这是的秘诀所在。 自动错误报告 想象一下:一个用户在你的应用程序中发现了一些错误,想要报告这个 bug。...我知道,这听起来很矛盾。 我不是说 Redux 能够用最少的代码实现功能? 这有点像使用洗碗机。 首先,得花时间仔细地排列盘子。

1.6K10

从设计的角度看 Redux

知道 Redux 真正的作用远不止状态管理是否想要了解 Redux 的工作原理? 让我们深入研究 Redux 可以做什么,它为什么的事情,的缺点是什么,以及它与设计有哪些关联?...他们中的许多人都知道 Redux 与React 一起工作,的工作是状态管理。 本文的目的就是让对 Redux 有更全面的认知: 它能做什么?为什么它要这样设计?何时使用它?...我认为我们应该拥抱。汽车设计师应该了解引擎的用途,对?为了成功地设计应用程序界面,设计师还应该对底层的东西有扎实的了解。我们应该了解它可以做什么,理解开发人员为什么使用它,并了解的优势和含义。...它是如何工作的? 还记得 Redux 强制执行的三条严格规则? 这是的秘诀所在。 图片描述 自动错误报告 想象一下:一个用户在你的应用程序中发现了一些错误,想要报告这个 bug。...我知道,这听起来很矛盾。 我不是说 Redux 能够用最少的代码实现功能? 这有点像使用洗碗机。 首先,得花时间仔细地排列盘子。

1.7K30

写了挺久的代码,却还被异常支配?

Error:错误。Error 类以及的子类的示例,代表了 JVM 本身的错误错误不能被程序员通过代码处理,Error 一般很少出现。 Exception:异常。...我们知道如果在方法内部抛出了异常(或者在方法内调用的其他方法抛出了异常),这个方法将会在抛出异常的过程中结束。...咋看代码可以觉得很奇怪,为什么有人会优先使用基于异常的循环,大部分会这样写的都会以为错误判断机制性能会比较高,因为 JVM 对每次数组访问都要检查是否越界。...当异常的栈轨迹过长,控制台会刷出一列下来的错误信息,不知道为什么,每次看到这种信息总有种心烦的感觉,真糟糕~ 不知道小伙伴有没有一样的感触。...这相当于,我父类的方法好好的,被你一继承居然出现了异常,而且我还可能不知道,这不是背地里砸我招牌! finally 使用 对于一些代码,我们希望无论 try 块中的异常是否抛出,它们都能够得到执行。

55010

带你学习hyperf-6.1 问题汇总

1,2,3都有创建的需求,投递至1开启事务,并在未提交,出现异常抛出了throw。...框架分别的处理方案: laravel:数据2不会创建成功,并且会影响之后的所有数据的创建 hyperf:数据2创建成功,并在终端抛出您可能上一个事务未回滚的提醒,并且执行了一次回滚操作。 为什么?...Error: No buffer space available 可以忽略此错误这个错误就是 socket_buffer_size 选项过大,个别系统不接受,并不影响程序的运行。...语法错误导致服务无法启动 当项目启动抛出类似于以下错误时 Fatal error: Uncaught PhpParserError: Syntax error, unexpected T_STRING...14. watch 热更新不生效 查看终端是否出现报错信息,有则处理 使用lsof -i:端口号查看进程id,kill掉并重启 15.

3.6K20

【大牛经验】探讨Java的异常与错误处理

异常与错误: 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现错误我们统一称之为异常,它是VM(虚拟机)通知的一种方式,通过这种方式,VM让知道(开发人员)已经犯了个错误...1.一个异常是在一个程序执行过程中出现的一个事件,中断了正常指令的运行 2.错误,偏离了可接受的代码行为的一个动作或实例 异常的结构分类: 1、运行时异常(未检查异常) 2、编译异常(已检查异常)...当应用试图在要求使用对象的地方使用了null抛出该异常。...} catch (FileNotFoundException e) { e.printStackTrace(); System.err.println("不知道如何处理该异常或者根本不想处理...如果厌倦了不停的处理异常,重新抛出异常对来说可能是一个很好的解脱。原封不动的把这个异常抛给上一级,抛给调用这个方法的人,让他来费脑筋吧。

82160

C ++ 中不容忽视的 25 个 API 错误设计!

错误#1:不将你的API放在命名空间中 为什么这是一个错误? 因为知道使用哪个代码库,特别是对于外部API。...private: wrl::ComPtr _parent; wrl::ComPtr _child; } 有关与C ++头文件相关的其他问题,请参阅帖子“十大C ++头文件错误以及如何修复它们...结果,客户端有可能忘记正确的参数顺序并以错误的顺序传递它们。 如何解决这个问题? 这就是为什么除非你知道要支持隐式转换,否则应始终对任何单参数构造函数使用explicit关键字。...的好处是保持主要公共头文件不受实现细节的影响,同时将内部细节的必要暴露,隔离到明确指定为包含私有细节的单独头文件。 错误#10:当用例已知,不使用显式模板实例化 为什么这是一个错误?...我如何以及在何处使用此代码,这对产生了极大的影响。例如如果这是一个同步调用,我永远不会在像游戏场景渲染循环这样的时间关键代码路径中使用它。 如何解决这个问题?

1.5K20

[每日前端夜话0xBB]

当你启动 Node.js 服务器,如果数据库由于某些问题而没有运行,或服务器端口已经被占用时,如果没有日志,将永远不知道服务器失败的原因。...catch 部分中丢弃错误,请记录哪个操作失败并提及正在抛出错误。...DEBUG:此级别适用于开发人员,这类似于记录使用调试器或断点看到的信息,例如调用了哪个函数以及传递了哪些参数等。应该记录当前状态,这样在调试和查找确切问题时会很有用。...WARN:这些日志是警告并且不阻止应用程序继续运行,这些日志会在出现问题并使用变通方法发出警报。例如错误的用户输入、重试等。管理员将来应该修复这些警告。...当应用程序出现问题,日志就是救星。如果当前还没有很好的使用日志,请实施日志记录实践并将日志添加到代码审查核对表中。

48110

十五项指标衡量DevOps是否成功

DevOps在你的组织内部运行的如何?如果需要一些帮助来度量的运行情况,我们已经准备了一个用于跟踪的关键DevOps指标的列表,这些度量可以帮助了解的团队是如何随着时间的推移而运行的。...在团队内部明确DevOps的定义意义重大 DevOps这个词不同的人有不同的理解,有人说这是一种文化,业内的每个厂商都声称他们的工具帮助了DevOps,根据如何定义DevOps,其中的一些度量可能对的团队有重要的影响...缺陷逃逸率 知道在生产和QA中发现了多少软件缺陷?如果你想要快速地发布代码,需要有信心,可以在他们开始生产之前发现软件缺陷。...可用性 最不想要的就是应用程序被关闭,根据应用程序类型以及如何部署,可能会有一些停机时间作为计划维护的一部分,我建议跟踪这一点,以及所有计划外的停机。...平均检测时间(MTTD) 当问题发生,重要的是要快速地识别它们。最不希望的是出现重大的部分或广泛的系统中断,而不知道。拥有健壮的应用程序监控和良好的覆盖将有助于快速发现问题。

2.9K60

6 个 Linux 运维典型问题,大牛的分析解决思路在这里

从输出来看,根分区空间仍然没有释放,这是怎么回事 一般来说不会出现删除文件后空间不释放的情况,但是也存在例外,比如文件进程锁定,或者有进程一直在向这个文件写数据,要理解这个问题,就需要知道 linux...问题 5:"too many open files" 错误与解决方法 问题现象:这是一个基于 java 的 web 应用系统,在后台添加数据提示无法添加,于是登陆服务器查看 tomcat 日志,发现如下异常信息...了,这么大的值应该够用了,但是为什么提示这样的错误呢 解决思路,这个案例涉及 ulimit 命令的使用使用 ulimit ,有以下几种使用方法: 1、 在用户环境变量中加入 如果用户使用的是 bash...问题 6:Read-only file system 错误与解决方法 解析:出现这个问题的原因有很多种,可能是文件系统数据块出现不一致导致的,也可能是磁盘故障造成的,主流 ext3/ext4 文件系统都有很强的自我修复机制...,对于简单的错误,文件系统一般都可以自行修复,当遇到致命错误无法修复的时候,文件系统为了保证数据一致性和安全,会暂时屏蔽文件系统的写操作,讲文件系统 变为只读,今儿出现了上面的 “read-only file

1.2K20

程序员遇到 Bug 的 30 个反应,是哪一种?

因此,如何处理修复bug的过程也值得我们细细琢磨。 我想分享一些程序员修复他们的源代码所经历的想法。这是事情变得紧张所触发的轻松幽默。...当浏览示例代码,我试图指出我的逻辑是如何工作的。NOT运算符和比较标记的数量又是如此之多。我经常回过头去更新我自己的逻辑以便于更好地适合未来的做法。 8.我用30分钟写函数,花2小工作。...这难道不像我们自己的编程故事正兴致勃勃地在构建着什么,但是突然之间,函数输出了一个致命的错误。所以,现在你必须回过头去删除一些代码块,以找出错误发生的行号。...几 乎所有我使用的编程语言都需要结束符。虽然不是所有的语言都有,但在C/C ++中是很常见的。忘记添加结束符,不过是一个很显然的错误!但是解析器不知道这一点,它会抛出一个致命错误。...25.这个API怎么没有文档?! 在 使用带有坏文档的插件或框架,最令人沮丧的是,必须靠自己去深入钻研源代码。我喜欢开发人员花时间去专门设计可用文档页面的项目。

1.1K90

程序员遇到Bug的30个反应

因此,如何处理修复bug的过程也值得我们细细琢磨。 我想分享一些程序员修复他们的源代码所经历的想法。这是事情变得紧张所触发的轻松幽默。...当浏览示例代码,我试图指出我的逻辑是如何工作的。NOT运算符和比较标记的数量又是如此之多。我经常回过头去更新我自己的逻辑以便于更好地适合未来的做法。 8.“我用30分钟写函数,花2小工作。”...这难道不像我们自己的编程故事正兴致勃勃地在构建着什么,但是突然之间,函数输出了一个致命的错误。所以,现在你必须回过头去删除一些代码块,以找出错误发生的行号。...几乎所有我使用的编程语言都需要结束符。虽然不是所有的语言都有,但在C/C ++中是很常见的。忘记添加结束符,不过是一个很显然的错误!但是解析器不知道这一点,它会抛出一个致命错误。...“这个API怎么没有文档?!” 在使用带有坏文档的插件或框架,最令人沮丧的是,必须靠自己去深入钻研源代码。我喜欢开发人员花时间去专门设计可用文档页面的项目。

44930

DBA遇到问题的30 个反应,是哪一种?

因此,如何处理修复 bug 的过程也值得我们细细琢磨。 我想分享一些程序员修复他们的源代码所经历的想法。这是事情变得紧张所触发的轻松幽默。...“为什么这个脚本需要这么多库?” 尤其是一些比较大众化的语言,如 Java 和 Objective-C,库的数量可能变得异常凶猛。当构建一个需要大量基础的框架,所需的库的数量就变得显而易见得多。...“我用 30 分钟写函数,花 2 小时让工作。” 这难道不像我们自己的编程故事正兴致勃勃地在构建着什么,但是突然之间,函数输出了一个致命的错误。...几乎所有我使用的编程语言都需要结束符。虽然不是所有的语言都有,但在 C/C ++ 中是很常见的。忘记添加结束符,不过是一个很显然的错误!但是解析器不知道这一点,它会抛出一个致命错误。...“这个 API 怎么没有文档?!” 在使用带有坏文档的插件或框架,最令人沮丧的是,必须靠自己去深入钻研源代码。我喜欢开发人员花时间去专门设计可用文档页面的项目。

80120

挑战30天学完Python:Day15 错类类型

了解编程语言中不同类型的错误将帮助我们快速调试代码,也使我们更好地完成我们的工作。 接下来,让我们来看一些在Python中常见的错误类型。首先让我们打开Python交互式终端。还记得如何打开?...>>> 上述的代码就出现了一个语法使用错误,因为在Python3+的版本里print打印需要括号,也可以看到在最后给你出的对应的提示。现在让我们按照正确的语法修复。...现在,让我们通过声明并赋值来修复这个问题。 >>> age = 18 >>> print(age) 18 >>> 错误类型为 NameError 。我们通过定义变量名来解决错误。...因此出现了关键词使用错误。程序出错,我们就必须修复。...如此优秀。在通往伟大的路上已经走了一半的路程了。本次没有额外的作业,但如果上边的例子,并没有亲自尝试,那么请你把他们当作练习完成错误见证和debug修复它们。

18720

排查IOException Broken pipe 错误,偶遇国外小哥

跟踪了整个调用,发现业务处理是正常的,服务端也打印了响应需求返回的数据,但就是报了这个错误。还是怕这个异常对业务产生影响,于是检查了一下抛出这个异常产生的前后日志,发现只有一个接口会有这个问题。...出现这个异常的可能原因: 1、客户端请求服务器数据,服务器突然挂了; 2、Tomcat的connector在执行写操作的时候发生的,客户端读取超时关闭了连接,这时候服务器端再向客户端已经断开的连接写数据就发生了...既然是这样那我自己验证一把,看是不是这个问题,找出出现异常的调用入参,使用Postman模拟第三方调用,看一看会发现什么。...一开篇先介绍了他遇到了Broken Pipe 异常,给出异常出现的软件环境和版本,然后讲了Broken Pipe 是什么,这个异常是怎么发生的,这个异常是不是很严重,以及后面如何修复这个异常,总结以及参考文章...这是我的第一个博客,是的,它有点长,但我正在深入了解我如何实际处理这个问题并修复。请随时在评论部分提供反馈,并关注此空间,了解将来的更多开发博客。

2.8K21

Node.js 应用最佳实践:日志

当你启动 Node.js 服务器,如果数据库由于某些问题而没有运行,或服务器端口已经被占用时,如果没有日志,将永远不知道服务器失败的原因。...catch 部分中丢弃错误,请记录哪个操作失败并提及正在抛出错误。...DEBUG:此级别适用于开发人员,这类似于记录使用调试器或断点看到的信息,例如调用了哪个函数以及传递了哪些参数等。应该记录当前状态,这样在调试和查找确切问题时会很有用。...WARN:这些日志是警告并且不阻止应用程序继续运行,这些日志会在出现问题并使用变通方法发出警报。例如错误的用户输入、重试等。管理员将来应该修复这些警告。...当应用程序出现问题,日志就是救星。如果当前还没有很好的使用日志,请实施日志记录实践并将日志添加到代码审查核对表中。

1.2K20
领券