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

10+年程序员总结的20+条经验教训

10.解决故障报告 每个开发人员都应该花时间去处理来自客户的故障报告,修复bug。这能让你更好地理解客户的意图,明白如何使用系统,知道排除故障的难易程度,了解系统的设计情况。...这样一个简单的规则可以确保你不会误将非问题当作是问题,确保解决方案真的能够奏效。 12.修复已知错误,然后再看看有没有遗漏的地方 有时候,可能同时存在着几个不同的问题。...很多时候,当你在叙述时,即使你的同事一言不发,你可能也突然灵光乍现找到问题的关键。 17.问问题 阅读和运行代码往往非常有助于指出代码的目的和它的工作原理。...其他 19.尝试 如果你不知道某种编程语言功能的工作原理,那么不妨写一个小程序来理解它是如何工作的。这同样适用于测试你正在开发的系统。如果将参数设置为-1,会发生什么?...你可以尝试不同的编程语言和工具,阅读软件开发的书籍,接受MOOC课程。相信我,量变才能达到质的飞跃,这些小小的学习积累,终有一天大大地提高你的知识和能力。 希望这些经验能对大家有用。

81770

10多年程序员总结的20多条经验教训

10.解决故障报告 每个开发人员都应该花时间去处理来自客户的故障报告,修复bug。这能让你更好地理解客户的意图,明白如何使用系统,知道排除故障的难易程度,了解系统的设计情况。...这样一个简单的规则可以确保你不会误将非问题当作是问题,确保解决方案真的能够奏效。  12.修复已知错误,然后再看看有没有遗漏的地方 有时候,可能同时存在着几个不同的问题。...它们之间的互相作用,可能让你毫无头绪,束手无策。不要纠结于搞清楚发生了什么,先去解决所有已知的问题,然后再看看还有什么不对的地方。 13.没有巧合 在测试和故障排除时,不要相信会出现什么巧合。...很多时候,当你在叙述时,即使你的同事一言不发,你可能也突然灵光乍现找到问题的关键。 17.问问题 阅读和运行代码往往非常有助于指出代码的目的和它的工作原理。...你可以尝试不同的编程语言和工具,阅读软件开发的书籍,接受MOOC课程。相信我,量变才能达到质的飞跃,这些小小的学习积累,终有一天大大地提高你的知识和能力。

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

10+年程序员总结的20+条经验教训学习

10.解决故障报告 每个开发人员都应该花时间去处理来自客户的故障报告,修复bug。这能让你更好地理解客户的意图,明白如何使用系统,知道排除故障的难易程度,了解系统的设计情况。...这样一个简单的规则可以确保你不会误将非问题当作是问题,确保解决方案真的能够奏效。 12.修复已知错误,然后再看看有没有遗漏的地方 有时候,可能同时存在着几个不同的问题。...它们之间的互相作用,可能让你毫无头绪,束手无策。不要纠结于搞清楚发生了什么,先去解决所有已知的问题,然后再看看还有什么不对的地方。 13.没有巧合 在测试和故障排除时,不要相信会出现什么巧合。...很多时候,当你在叙述时,即使你的同事一言不发,你可能也突然灵光乍现找到问题的关键。 17.问问题 阅读和运行代码往往非常有助于指出代码的目的和它的工作原理。...其他 19.尝试 如果你不知道某种编程语言功能的工作原理,那么不妨写一个小程序来理解它是如何工作的。这同样适用于测试你正在开发的系统。如果将参数设置为-1,会发生什么?

63170

软考 系统架构设计师 高分通过的经验和心得

自从考试成绩公布以来,一直想分享一下备考的经验和心得。然而,的拖延症让总是耽搁着没有写下来。...在第一轮中,我们回答那些已经掌握的问题,尝试排除一些错误选项,但对于那些答案不确定的问题,我们应该暂时搁置。在第二轮中,我们可以更仔细地辨别那些模棱两可的答案。...最后,考试结束后,我们应该避免与其他同学讨论答案,以免个别错误影响我们的心态。相反,我们应该维持冷静和自信,相信自己的答案,耐心等待结果的公布。...毕竟,它也有着自己的“套路”。一般来说,可以将它分为项目背景介绍、过渡内容、主体内容、以及论文结论等几个环节,每个环节都有着特定的写作技巧和套路。...同时,要控制好时间的节奏,以确保在时间紧张的情况下完成整篇论文的写作,保证其完整性。即使时间再紧张,也不能因此牺牲论文的质量和收尾。 最后,要特别注意一定要“圈题”。

42720

聊聊微服务环境中的可观察性和弹性

然后,尝试缩小范围,谈谈所说的变更指的是什么,以及在当今的现代化环境中哪些变更具有极大风险。稍后,将讨论为什么我们很难找出系统中发生了什么变化。我们将讨论变更跟踪的未来。...所有事件中有 85%可以追溯到某项系统变更,这意味着组织中某个地方有某人变更了某些内容,于是现在你的应用程序出现了问题。 要说的是,大多数故障排除时间都在关注这个领域,就是找出根本原因。...就像我说的那样,这些症状可能是完全停机或你的 UI 中出现的某个错误。 中标题变更到底是什么? 一直在谈变更这个词,但当我提到这个词时真正的意思是什么?...希望你理解了的意思,也许你已经知道这种变更都是很重要的。当你尝试解决一个问题时,你的角色就是侦探,并且基本上,你尝试找出哪些变更可以解释,试着解释清楚你面对的问题。 为什么很难找到变更?...尝试过,试着仔细研究故障排除面临的三大障碍之类的东西。一切事物都是互相连接的,而 Epsagon 这样的公司在分布式跟踪方面做了很出色的成果来应对这一局面。

37020

Bash: Command Not Found命令未找到

这里给你一些提示和指示,这应该可以帮助你排除故障。 在本教程中我们将探讨bash: command not found命令未找到的原因以及解决方法。我们将以ipconfig命令为例说明错误的原因。...但有时,你遇到终端打印command not found未找到命令的错误。...你必须自己尝试解决这些错误。根据错误的提示分析原因。有时候错误提示也直接说明它原因。比如这个bash: command not found命令未找到,错误已经给出了提示。...检查可执行脚本路径是否正确 这是Linux新手在运行shell脚本时常犯的错误即使你在同一目录中尝试仅按其名称运行可执行脚本,它也显示错误。.../sample hello world 如果你在其他目录中尝试执行shell脚本而不提供文件的正确路径,shell提示command not found命令未找到。

5.5K10

wordpress提示Updating failed. The response is not a valid JSON response如何解决

随ytkah一起来看看 1.禁用块编辑器切换回经典编辑器 错误“更新失败。错误消息:响应不是有效的 JSON 响应。” 绝大多数出现在名为 Gutenberg 的新 Block 编辑器中。...使用 SSL 证书可能导致某些内容在 HTTP 协议上不安全地交付,即使其余内容通过 HTTPS 协议以安全方式交付。...在运行大量插件的网站上目睹了这个问题,比如超过 40 个。但重要的不仅仅是插件的数量。相反,某些插件文件可能导致您网站上的 JSON 错误。...如果在激活特定插件时再次出现错误,则表明该插件是罪魁祸首。 4. 响应不是有效的JSON响应错误的替代解决方案 停用您网站上的所有插件正常编辑内容。...随后,尝试保存文档。如果您能够在不出现任何错误的情况下保存它,请一一重新激活插件以检查导致错误的插件。

4.6K30

独家 | Pinterest如何仅用6名工程师搞定1100万用户

它易于维护,故障排除简单,并能够雇佣到熟悉这项技术的工程师。最重要的是,它是最喜欢的f词:免费。 Memcache:一个简单、高性能的系统,用于在内存中缓存频繁访问的数据。...此外,团队“尝试了Elasticsearch,但它在规模上受限,在处理大量小文档和大量查询时会遇到麻烦。”...为什么Pinterest选择了分片 Pinterest选择分片而没有选择集群,因为分片相对简单,从在“做实验阶段”采用集群的负面经验来看,集群管理面临以下问题: 集群管理问题:集群管理算法中的错误导致多次中断...数据重新平衡问题:自动重新平衡导致性能瓶颈和数据一致性问题。 数据所有权混淆:出现了次要节点错误地承担主要角色的情况,导致数据丢失。“在一个案例中,引入一个新的次要节点。...作者简介: 本文由Devansh撰写,内容包括AI、数学、技术行业以及任何其他引起兴趣的东西。加入的论坛,获取内心的平静,支持对巧克力奶的喜爱。

2110

女程序员必备要素

如果在你添加新功能之前需要先重构代码,那么先提交重构,然后再添加新的功能 尽早地添加日志记录和错误处理 在开发新系统时,做的第一件事就是添加日志和错误处理,因为这两者从一开始就非常有用。...最好能够做成可以快速故障排除、修复bug和部署修复的系统 解决故障报告 每个开发人员都应该花时间去处理来自客户的故障报告,修复bug。...这样一个简单的规则可以确保你不会误将非问题当作是问题,确保解决方案真的能够奏效 修复已知错误,然后再看看有没有遗漏的地方 有时候,可能同时存在着几个不同的问题。...它们之间的互相作用,可能让你毫无头绪,束手无策。不要纠结于搞清楚发生了什么,先去解决所有已知的问题,然后再看看还有什么不对的地方 没有巧合 在测试和故障排除时,不要相信会出现什么巧合。...很多时候,当你在叙述时,即使你的同事一言不发,你可能也突然灵光乍现找到问题的关键 问问题 阅读和运行代码往往非常有助于指出代码的目的和它的工作原理。

46210

云战场如何“迫使”IBM以340亿美元收购Red Hat

Red Hat是IBM迄今最大的一笔收购交易,原因是:赌注太高了,IBM已经被亚马逊网络服务、谷歌云平台和微软Azure排除在了大型云对话之外。...如果不能成为大型公共云提供商,为什么不简单地管理它们呢? Red Hat的吸引力就在于此。当然,开源人士担心IBM的收购,但是Big Blue一直是开源的好管家。...IBM表示将通过现金、信贷和过渡性贷款的方式进行收购,但它也提出,它将遵守纪律,以保持其信用评级。IBM将停止回购自己的股票。 这些起作用吗?怀疑论者比比皆是。...华尔街人士可能担心即使有了Red Hat,IBM的溢价和增长能力也会受到影响。 毕竟,IBM的业务 - 包括认知和云业务 - 在第三季度陷入了困境。...IBM收购Red Hat是一种尝试云跳跃的方式,超越现在由AWS,微软和谷歌组成的公共云战场。

31030

解决 iOS 15 上 APP 莫名其妙地退出登录 解决 iOS 15 上 APP 莫名其妙地退出登录

缩小问题范围 担心从 Xcode 重新安装应用程序可能影响问题的复现,所以在这样做之前,是时候查看代码试图缩小问题的范围。根据我们的实现,想出了三个潜在的原因。...2、一个意外的API调用返回HTTP 401触发退出登录。 3、Keychain 抛出了一个错误能够排除前两个潜在的原因,这要归功于我在自己重现该问题后观察到的一些微妙行为。...主用户界面没有显示,即使是短暂的也没有——这表明没有尝试进行网络请求,所以 API 是问题原因可能还为时过早。 这就把Keychain留给了我们,指引进入下一个问题。...即使能够重现这个问题,也100%确定的手机在点击应用图标的时候是解锁的,所以我不明白为什么出现这个Keychain错误。...这就是为什么读取失败,以及最终为什么一些用户会发现自己被登出了。

1.5K20

面向初学者的Jenkins多分支管道教程

具体来说,在本节中,将介绍什么是多分支管道,以及为什么对所有Jenkins CI / CD管道使用它必不可少。还将向您展示多分支管道如何与详细的工作流图一起工作。...如果不希望所选分支出现在带有Java正则表达式的自动管道中,则可以选择排除。多分支管道支持基于PR的分支发现。这意味着,如果有人从分支提出PR(拉动请求),则会在管道中自动发现分支。...它具有一个检出阶段和其他阶段,它们回显消息。 另外,您可以克隆使用具有此Jenkinsfile的Github存储库 注意:将代理标签“ master”替换为您的Jenkins代理名称。...对多分支管道进行故障排除 将讨论在多分支管道中可能遇到的一些错误,以及如何解决这些错误。 分支发现问题 有时,即使在SCM中创建了新分支之后,它也可能不会反映在Jenkins管道中。...您可以尝试运行“立即扫描存储库”选项以再次扫描存储库。另外,检查管道中的存储库扫描配置。

9.5K10

一种系统性能定位的简单策略

如果我们猜得没错的话,虽然这可能会有‍结果 ,但它也可能耗费大量时间或者具有破坏性,并可能最终忽视某些问题。 关于系统性能的那些问题 典型系统中组件的数量庞大,系统的性能分析是复杂的。...用户通过选择熟悉的、在互联网上发现的或随机发现的可观测性工具来分析性能,然后看看是否有任何明显的迹象出现。这种随机应变的方法可能忽略许多类型的问题。...虽然向下钻取分析常常能够确定问题的根本原因,但是这样做可能耗费时间,而且当向错误的方向钻取时,可能浪费大量的时间。 有没有更高效的方法么?...尝试迭代系统资源,而不是从工具开始,创建一个要问的问题完整列表,只搜索用于回答这些问题的工具。即使找不到回答这些问题的工具,也是极其有用的,它们现在变成“已知的未知”。...错误报告中的错误数量(例如,最后50次网络交互的冲突)。 表示测量的时间间隔也很重要。虽然看起来有些违反直觉,即使在较长的时间间隔内总利用率很低,但短时间的高利用率导致性能问题。

50520

解决 iOS 15 上 APP 莫名其妙地退出登录

2、一个意外的API调用返回HTTP 401触发退出登录。 3、Keychain 抛出了一个错误能够排除前两个潜在的原因,这要归功于我在自己重现该问题后观察到的一些微妙行为。...主用户界面没有显示,即使是短暂的也没有——这表明没有尝试进行网络请求,所以 API 是问题原因可能还为时过早。 这就把Keychain留给了我们,指引进入下一个问题。...即使能够重现这个问题,也100%确定的手机在点击应用图标的时候是解锁的,所以我不明白为什么出现这个Keychain错误。...决心找到原因,用一个调试工具替换了我们的应用程序的实现,该工具将尝试记录其生命周期中不同节点的Keychain读取。...这就是为什么读取失败,以及最终为什么一些用户会发现自己被登出了。

85310

应对自动化测试9大挑战

解决挑战的尝试通常涉及招更多人活着将上线时间推迟,通常来说几乎不可能有立竿见影的解决方案。 低代码工具可以通过最小化复杂性和消除特定技能的门槛来帮助加速测试。...故障排除 当测试失败发生时,需要快速诊断它们,排除故障。这些工具应该使团队中的任何人都可以轻松确定测试失败的原因。团队还需要工具来帮助确定工作的优先级指出可能影响多个测试的重复错误。...高级工具不仅告诉您它在哪里坏了——它们还会告诉你它为什么坏了。智能工具还可以通过汇总常见错误显示测试的最近结果历史记录来帮助对工作进行分类。...为什么? 其中一个重要大原因是:构建跨浏览器兼容测试框架和系统成本很高。...即使它是一个低代码测试平台,它也应该启用某种形式的测试重构来清理重复项并用可重用的组件替换它们。 测试报告 通过/失败报告并不能让所有人都理解测试的结果。

59120

Python 进阶指南(编程轻松进阶):一、处理错误和寻求帮助

但是,想告诉你的是:即使是科班出身的的软件开发人员在编程时遇到到问题,也要搜索互联网或查阅文档。...在网上搜索已经问过你这个问题的人阅读他们的回答快得多。在线文档和搜索引擎的出现是为了减轻原本必须由人类完成的问答工作。...解释您希望代码做什么 问题“为什么的程序不工作?”忽略了你希望你的程序做什么的关键细节。这对你的助手来说并不总是显而易见的,因为他们不知道你的意图是什么。即使你的问题只是“为什么我会遇到这个错误?”...包括完整的错误消息 确保复制粘贴整个错误信息,包括回溯。仅仅描述你的错误,比如“得到了一个超出范围的错误”,并不能为你的助手提供足够的细节来找出问题所在。...这包括提出一个明确的问题,提供完整的源代码和错误信息细节,解释您已经尝试过的内容,告诉您的助手您正在使用哪个操作系统和 Python 版本。

92830

谷歌数据科学团队负责人:处理极大复杂数据的三类实际建议

从您的数据中将他们排除,或把它们放在一起形成一个“异常”类别,这样做可以,但您应该确保您知道为什么一些数据最后被放在这一类。...如果你收集了全新的数据,尝试学习新的东西,你不会知道你是否回答正确。当你收集一种新型数据时,您应该首先将此数据应用到已知的特征或数据。...为了确保这是一个正确的故事,你需要告诉自己这个故事,还预测了什么你应该在数据中能看到的,如果假设是真的,然后寻找证据表明它是错误的。这样做就是问自己,“什么实验讲的故事变得有效/无效吗?...“即使你不做这些实验,它也许可能会给你如何验证你已有的数据的想法。 好消息是,这些假设和可能的实验可能引导超越试图了解任何特定的特征或数据的新查询线。...在当时会感觉很糟糕,但最终你赢得你有数据头脑的同事和领导人的尊重。当你犯了一个错误很晚发现(或太晚了!)感觉更糟糕,但积极地承认你的错误将转化为信誉。信誉是任何数据科学家的关键社会价值。

31920

JavaScript 编程精解 中文第三版 八、Bug 和错误

即使这样,它也允许你做一些不会报错的无意义的事情,比如计算true *'monkey'。 JavaScript 有一些报错的事情。 编写不符合语言语法的程序即使计算机报错。...程序认为其执行的代码毫无问题顺利运行下去,要等到随后的运行过程中才会出现问题,而此时已经有许多函数使用了这个无意义的值。程序执行中也可能不会遇到任何错误,只会产生错误的程序输出。...但这样的问题往往以更微妙的方式出现即使是那些看起来不像是抛出异常的函数,在特殊情况下,或者当他们包含程序员的错误时,也可能这样。 解决这个问题的一个方法是使用更少的副作用。...请注意,即使finally代码在异常退出try块时运行,它也不会影响异常。finally块运行后,堆栈继续展开。 即使异常出现在意外的地方,编写可靠运行的程序也非常困难。...这使得这种错误不太可能被忽视,并且当它们发生时更容易找到它们的原因。 不建议尝试为每种可能的不良输入编写断言。 这将是很多工作,并会产生非常杂乱的代码。

1.2K100

Python DeBug的7个步骤【Programming】

知道,这是完全不现实的情况,对吧? 不幸的是,日志或日志消息似乎经常在错误的时间出现。...好的,那么你找到了日志或者尝试响应,确实,客户发现了一个 bug。 也许你甚至认为你知道漏洞在哪里。 你立即打开你认为可能是问题的文件,开始四处查看。 1....写一个失败的测试 现在已经有了一个失败测试,或者可能是一个带有错误的测试,是时候进行故障排除了。但是在这样做之前,让我们先回顾一下堆栈,因为这使故障排除更加容易。...推荐pylint或者flake8。通常情况下,它指向了一直忽略的错误。 如果这个错误看起来晦涩难懂,你的下一步可能就是谷歌一下。如果不包含仅与代码相关的信息,比如变量名、文件名等,那么运气更好。...是的,已经在的代码库中查找了一个函数调用的位置,但是这可能变得很乏味,并且对于一个流行的函数来说并不能缩小范围。Pdb非常有用。 您按照的建议,插入pdb断点运行测试。

1.2K00

蓝屏stop 0x000000c4_stop蓝屏0x0000005c

但是即使是盗版系统,也很少出现类似的现象了。不幸的是让碰到了,为了避免重装系统,决定置此蓝屏于死地!就这样一场久违的蓝屏之战开始了!...于是排除了内存损坏的原因,猜测是不是硬盘的原因,发现硬盘灯一直闪的,于是排除了硬盘的原因,这样以较高的概率排除是硬件的问题(当然当时还未考虑网卡的问题)。...于是尝试的启用特殊池,启用特殊池的作用是将问题显现,因为像0x000000c5类的问题发生可能是内存池中内存页内部问题,也即是说即使内存池损坏也是小于页的空间,这样是无法检查出的,启用内存池的作用是让它连接在两个内存页之间...错误分析:有问题的内存(包括屋里内存、二级缓存、显存)、不兼容的软件(主要是远程控制和杀毒软件)、损坏的NTFS卷以及有问题的硬件(比如:PCI插卡本身已损坏)等都会引发这个错误....结果重启后连上网,刚想打开程序,结果还是蓝屏,无语了,晚上让朋友帮我,我们一块查看日志文件,从网上找错误的原因,结果各种尝试都未果。

1K30
领券