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

你不就是加了 2 行代码,为什么要用 2 天?

花了几个小时才重现。有些开发者会立即回到报告问题的人那里,要求他提供更多的信息,然后再进行调查。试着提供的信息做尽可能多的事情。...(治本,不止治标) 如果一些代码抛出了错误,你可以直接 try...catch 语句把包起来,然后抑制错误。没有错误,就没有问题。对吧?抱歉,对来说,问题隐形不等于解决问题。...6、因为发现问题原因后,就开始寻找最简单的方法来解决问题,同时将带来副作用的风险降到最低。 不想要最快速的修复方法。想要一个未来不会造成混乱或其他问题的修复方法。...7、因为做了更彻底的测试,并验证解决所有受影响的不同代码路径的问题。 不想依靠别人来检验所做的是正确的。不希望在将来发现错误,不得不回到这段代码。场景切换既代价昂贵又令人沮丧。...希望尽可能避免专职的测试人员再次查看“相同的”更改。 不喜欢必须修复 bug。部分原因是 Bug 会人觉得是之前的失败造成的。另一个原因是更愿意去研究新的东西。

53320

Python带你薅羊毛:手把手教你揪出最优惠航班信息

如果你发现脚本开始一直碰到验证码,你可以试着手动提交验证,然后重启脚本,也可以等上几个小时再让爬虫访问这个网站,那时候验证码应该就消失。...下载完,往文件夹里一丢就完事。 请各位大佬读者注意,写这篇文章并不是为了展示什么新技术。没错,已经有更先进的方法来寻找更便宜的机票,然而我只希望的文章能给读者带来一些简单而实用的东西。...当你运行的时候,你将会看到一个空白的 Chrome 浏览器窗口出现,我们接下来就将爬虫在这个窗口里工作。 那么,先让我们在另外一个窗口中手动打开 kayak.com 检查一下吧。...也就是说,只要一刷新页面,你这段代码就没法正常工作了。 所以,的忠告是:花点时间认真了解网页结构特征,熟悉 XPath,肯定不亏。...目前我们已经载入了一个页面,构建了一个读取更多内容的函数,以及一个爬取并处理内容的函数。其实,大可以在这里就把文章结束掉,你还是可以这段代码来打开某个页面,并读取对应的内容。

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

成为好程序员必须避免的5个坏习惯

如果你仍然犯这些错误,可能你的程序依然正常运行,能够完成需要的任务,但是它会变得易出bug,充满低效率的代码,难于维护。并且,当你很长时间后再来看代码的时候,你会发现代码很难理解。...整段的拷贝代码并且就这么使用它而不去烦恼于理解每一行代码是很诱人的。 有时候你拷贝的代码可能太大以至于没有时间去完全理解。如果你拷贝任何代码都像这样,就会有你的程序变得脆弱易出bug等风险。...如果以后产生了bug,你会发现很难理解这些代码,因为你从来没有写过。甚至于你会发现很难去找出bug并且修复,特别是如果拷贝很多代码在程序的不同地方。 所以当拷贝代码的时候要小心,即使很少的代码。...确保你完全理解。如果你以前用过一段代码并且可以百分之百的保证它可以工作,那么它是安全可用的。但是如果不是的话,就要当心。...你的目标是保证你的应用完美工作,并且尽可能少花费一些资源去创造它们。 如果你这样做,你可以更少的时间去完成同样地工作。时间就是金钱,即使是你为你自己工作,你也应该试着在同样的时间赚更多的钱。

59750

良好的BUG报告可以为您节省宝贵的时间。

这个报告只告诉我们无法正常执行工作,但是并没有告诉我们任何其他详细的信息, 开发人员会打开程序的一部分代码检查,保证大部分都会正常的工作。所以,什么样的BUG报告才算是标准的呢?...这里有几个例子,认为是比较重要。 缺少细节 就想上面的例子当中,你很难去发现到底哪里出现错误,因为这份BUG报告没有提供任何细节。...(至少肯定会这么问你) 有人可能会尝试着寻找一切可能造成这个BUG报告的原因: 这个联系人不能被添加. 没人知道是不是哪里有错误消息, 或者根本没有执行....但是你需要提供一些信息, 否则其他技术售后无法重现BUG,无所修复这个BUG. 那么你现在会怎么做呢?想你应该会打开那个票务系统尝试在你的机器上操作,你猜怎么着?很可能这次不会出任何问题....几个星期前,在Twitter上看到一个话题是关于糟糕BUG报告的,但是具体是谁发起记不太清楚。 但是想分下分享里面的一句话,一直停留在脑海里的。

34430

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

试着重新安装应用程序,试着在有网络连接和没有网络连接的情况下启动,试着强制退出,经过30分钟的努力,放弃开始回复用户说没找到具体问题。...看一下这段代码,我们调用 SecItemCopyMatching 方法来加载我们的访问令牌,返回数据以及描述结果的 OSStatus 代码。...毕竟,我们已经很多年没有改变过这部分代码,而且它在iOS 12、13和14系统中一直运行良好,那么是什么原因呢?...知道在AppDelegate.application(_:didFinishLaunchingWithOptions:)之前,“受保护的数据” 是不可用的,但它仍然没有意义,因为为了重现这个问题,正在执行以下操作...仍然不知道这种预测是如何形成的,但我只想把归结为 "Siri智能",然后就到此为止

1.5K20

使用ChatGPT自动编写Python爬虫脚本

俗话说“百闻不如一见”,试着ChatGPTPython去写爬虫脚本,看到底行不行?...,但它也提到由于爬取的网站会随时变更,也就是HTML会变动,所以代码可能需要调整才能正常工作。...爬取京东某商品的评论 为了给ChatGPT增加难度,试着去爬取某电商网站的用户评论 提问: 请用python写代码爬取这个京东商品的所有用户评论 https://item.jd.com/13652780...于是又问: 还是空值 请帮我重新写代码爬取 ChatGPT: image.png 这次就牛掰重新用Selenium写了爬虫代码,并告诉爬取动态网页需要模拟浏览器行为,因此得用selenium...3.继续更多的测试 上面只是蜻蜓点水的玩玩,ChatGPT就已经吸引到我, 准备多花时间去测试ChatGPT应对各种爬虫的解决方案,以及它对bug的修复能力。

1.2K20

如何改善遗留的代码

幸运(不幸)的是已经遇到好几次这种情况和我的小伙伴发现将这坨热气腾腾的屎变成一个健康可维护的项目是一个有丰厚利润的业务。...一次只修改一处 不要陷入在提高代码或者平台可用性的同时添加新特性或者是修复 BUG 的陷阱。这会你头大,因为你现在必须在每一步操作想好要出什么样的结果,而且会你之前建立的一些测试失效。...如果旧代码很庞杂,那么现在正是模块化的时候,将大段代码分解成众多小的部分,不过不要改变量和数据结构的名字。...如果旧的构建工具已经不能用了,你将必须使用一些技巧(看下面),但至少当你开始做修改的时候,试着尽力保留已知的工作。那样随着代码库的提升你也对代码的作用更加理解。一个典型的代码提交应该最多两三行。...这就取决于你怎样看待。的确,在按照以上步骤优化代码时会有一些重复的工作步骤。但是确实有效,而这里介绍的任何一个步骤都是假设你对系统的了解比现实要多。

52470

【翻译】30多个短小而又专业的最佳安卓开发者建议

并没有什么捷径或者简单的方法来告诉你你成为一名成功的开发者。但是如果你愿意身心投入且付出努力的话,你肯定会得到应得的成功的。...如果你没有可以开源的项目,考虑浏览其它你所感兴趣的开源项目,并尝试修复一些 bug ,改进其文档注释或者写一些测试等。 即使是最小的贡献量,仍然对项目维护者保持项目的运作有所帮助。...小贴士:看看这些有用的谷歌蓝图能够你的安卓应用框架更加容易。 9. 学习安卓致简代码指南 你不能忽视这个。和那些写不出整洁代码的开发者合作会变得很难,至少需要符合安卓开发代码指南。...这根本不是什么高深的技术,而且也不会花费你超过几个小时的时间来学习大部分的 Java 和安卓代码指南基础。这不应该是一次性的学习,而应该是作为开发者的一种习惯上的改变。...那么在几个月后,你会发现你已经远远不是那个刚开始的自己。 26. 把所有浪费你时间的事情自动化 我们作为工程师,生来就喜欢偷懒,总是想着找到一种简便的方式来完成一份烦人的工作

63620

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

试着重新安装应用程序,试着在有网络连接和没有网络连接的情况下启动,试着强制退出,经过30分钟的努力,放弃开始回复用户说没找到具体问题。...看一下这段代码,我们调用 SecItemCopyMatching[2] 方法来加载我们的访问令牌,返回数据以及描述结果的 OSStatus 代码。...毕竟,我们已经很多年没有改变过这部分代码,而且它在iOS 12、13和14系统中一直运行良好,那么是什么原因呢?...知道在AppDelegate.application(_:didFinishLaunchingWithOptions:)之前,“受保护的数据” 是不可用的,但它仍然没有意义,因为为了重现这个问题,正在执行以下操作...仍然不知道这种预测是如何形成的,但我只想把归结为 "Siri智能",然后就到此为止

85310

《硝烟中的Scrum和XP》第4章 我们怎样制定sprint计划

现在节省下来一点时间,接下来的日子里你就要一直为付出代价。一旦我们放松要求,允许代码库中暗藏问题,后面就很难恢复质量了 碰到这种情况,就会试着把话题转回到范围上来。...假如sprint计划会议接近尾声,但仍然没有得出sprint目标或者sprint backlog,这时该怎么办?我们要打断么?还是再延长一个小时?或者到时间就结束会议,然后明天继续?...是按照已经得出的结论去执行,还是明早8点再开4小时的会?” 我会打断会议。是的,这个sprint大家不太好过。但我们应该看到的正面影响,整个团队都从中获益匪浅,下个sprint计划会议更有效率。...团队需要有个描述整体概况的文档,保证每个人对设计都有同样的理解 重构DAO层:为什么要完成?因为DAO层代码已经乱成一团。混乱带来了本可以避免的bug,每个人的时间都在被无谓地消耗。...例如”修复几个后台报表最严重的bug,序号是Jira-124、Jira-126……“ 修复bug当作sprint以外的工作,也就是说,团队会保持一个足够低的投入程度(例如50%),从而保证他们有时候来修复

51910

国外技术大牛通过12条测试你更好地编程

每个人都对最新的源代码进行检查,然后才继续工作。如果编译失败,你就修复,但每个人还能在预编译、没有中断版本的源代码 上继续工作。   ...但如果你在几个月前的代码里发现bug,你很可能把关于这段代码的大部分东西都忘了,要修复它就很难了。...如果你在已经售出的代码中发现bug,你会招致令人难以置信的代价修复。   这是要立刻修复bug的一个原因:因为这样花费更少的时间。这关系到写新代码之前而不是修复bug之前还要等多长时间。...但如果要你预测修复一个安装Explorer 5.5版本后代码不能工作的bug需要多长时间,你猜都猜不出来,因为根本不知道到底什么导致这个bug。...如果你的编译过程超过几秒钟,使用最新和性能最强的电脑会你节省点时间,当编译 器运行的时候,程序员会感到厌倦,这是他们会切换到阅读点别的书籍,这会吸引他们的注意力,失去好几个小时工作效率。

58080

怎样学习一门编程语言

漏洞可能会破坏程序,或者只是程序不能编译/运行。捕捉和修复这些错误在软件开发周期中这是一个主要的过程,所以要早早地习惯于这么做。 当你快要修改程序时,你可能会碰到它们不能运作的情况。...14、给所有代码添加注释 几乎所有编程语言都有一个允许你包含未被解释器或编译器处理的文本的“注释”功能。也就允许你可以留下短小但清晰的关于这段代码是用来做什么的人类语言的解释。...尽量每天都要花一些时间去敲代码,即便是在工作之后和晚餐之前的一小时。 17、给你的程序设定目标 通过设定能够实现但又有挑战性的目标,你将能够开始解决问题并拿解决方案。...24、永远不要停止编程 有一个流行的理论,成为一名专家至少需要10000小时的练习。虽然这个理论还处于辩论中,但它内含的原则永远是正确的:精通需要时间和奉献精神。...带上几个小的外包兼职去感受一番商业编程是如何运作的。通常境况下你可以外包兼职的工作来帮助你建立代码库,并且这将有益于新的作品。 30、开发你自己的免费程序或商业软件 你不必为一家工作来换取金钱。

1.4K90

GitHub Copilot:做出一个划时代的产品,只需要 6 个人

作者 | 核子可乐、褚杏娟 当前,Copilot 已经成为国内开发者常用的辅助工具。就像有的开发者评价称, “编码时,希望干扰最少。在这方面,Copilot 给我提供巨大的帮助。...之后团队开始给模型更多的尝试,试着慢慢摸索出解决思路。在其他独立测试中,Alex 他们还会编写测试函数,然后试着填充函数体。如果可以过关,就证明确实有效。...之后团队开始试着生成常用的 UI。“毕竟刚开始生成代码的通过率只有 10%,而 UI 设计其实是个比较开放的问题,也许能回避 AI 能力不行的事实。如果成功那就太棒。”...“虽然终极目标仍然是替代 Stack Overflow,但起步阶段完全想不出这一切要怎么实现,先在 VS 里实现点功能才是真的。” “作为我们的一小步,自动补全功能实现,而且有趣且有用。...在找到症结之后,团队成员们也就释然。而跟得州不远的用户们纷纷给出好评,比如有人会评论说,“不会编程,但出于工作需要,想了解怎么编写某个 100 行长的脚本。”

39430

更快学习 JS 的 6 个简单思维技巧

对于我个人而言,我会觉得懊恼,特别是在花费了时间去理解之后。就像一个孩子有一件新的玩具却不能玩一样。...当你学一些新的 JavaScript 的知识时,试着像对待一个新玩具、一辆新车、一双新鞋或者其它你有兴趣尝试的东西一样。像玩一样练习,而不是像工作一样练习。新技能做一些很棒的事情。...如果有人问我是否准备在 Facebook 上花费几个小时,我会说不,因为没有那些时间。然而,更愿意接受快速查看某件事情的想法,就是这样被吸引进去的。 好消息是你可以同样的心理优势去学习编程。...不要试图花几个小时去编程,因为你找不到这样的时间。告诉自己只写三分钟的代码,你就不会再为找时间而挣扎。 5. 思考地越慢,学地越快 这句话听上去有些违背常理,所以我会用一个故事来解释。...的朋友接着向我解释这段代码的作用。 又一次打断他,“你还是太急了。再试一次,但是这一次,需要你逐字逐句的跟我解释每行代码并且告诉代码的作用。”

839120

是如何每周坚持 5 天自学机器学习,并拿到offer的

在卧室里学习和工作 离开了 Apple,开启一个 Web 项目,但失败的心不在这上面。 想学机器学习,兴奋。本来打算把这一切都学好的。不需要制定所有的规则,机器会为学习。...与其花几个星期的时间询问你是否应该学习 python 或者 r,不如先上 Coursera 或者 edX 课程,从数学或者代码开始,花一周的时间制定一个粗略的计划,然后按照计划进行。...你可以有一台笔记本电脑,为连上互联网,拥有最好的书,但仍然没有动力去学习。 为什么? 因为你的环境不合适。 你的房间里满是干扰。 你试着和朋友一起学习,但他们没有你那么专注。...啊啊啊,以前遇到过这个循环,知道但它仍然存在。 那堆书在盯着看,Problem 13。设置一个计时器,25 分钟,知道可能解决不了这个问题,但我可以坐 25 分钟,然后再试试。...关键是,要使正常工作,你需要同时满足这两者。 如果你已经设置好了系统,你可以做四个 25 分钟的集中工作,然后去散步,小睡一会儿,坐下来想想你学到了什么。

87221

程序员们必须在工作中不断的学习成长

你也可以同样的方法来获得成功和成就。当某件事进展顺利时,不要想,“那当然很好,因为很了不起。”相反地,“在那个项目上使用了一个有效的策略!”应该经常这么做。...如果你说,“也许根本不适合这份工作,”把当作一面红旗。相反,问问你从失败的尝试中学到了什么,或者你可以什么策略来代替。这听起来很俗气,但确实有效。...因此,同情世界上存在最后期限的现实。但是,如果有一个bug要修复必须修复,并且抱怨bug的存在不会帮助我更快地修复认为即使是在一个截止日期迫近的世界里,你仍然可以运用这种态度。...像你们很多人一样,和一些伟大的工程师一起工作。有时候,我会试着修复一个棘手的bug,并且不能,然后其中一个就能马上修复。在这些情况下,试着对他们如何做到这一点非常自律。...因为学习一个东西最怕三天打渔,如果能够持续地学习一个东西,可以把学习地很好。这时候,就得结合自身的情况,选择一段最佳的 学习时间,在这段学习时间里可以不被打扰,保持高度专注。

35850

如何有效报告 bug

如果你比较不走运的话,他们可能会坐下来几个小时,拿出一整套开发工具,好好的研究这个问题。但是最重要的是在程序出错的时候程序员就在电脑旁。...数字来代表错误信息是因为计算机很难用语言来描述发生的问题,这种方式告诉你错误的所在是最好的办法。 在这种情况下,程序员能够高效地完成排错工作。...也看过很多很差的 bug 报告出自程序员之手,有些甚至出自很优秀的程序员。 曾经跟另一个程序员一起工作,他一直在找代码中的 bug,经常找到一些他自己解决不了的 bug,然后帮忙解决。...意味着他已经完成了一半的工作量,并且我们可以一起完成另一半的工作,这是非常有效率并且是有用的。 但是很多时候,他的观点都是错的。...举个例子,“ 开启 FooApp,弹出了一个警告窗口,试着关闭,然后他就崩溃 ”。用户究竟试着关闭什么,这并不清楚。他们是试着关闭警告窗口,还是整个 FooApp?

45320

新程序员七宗罪

他们试图尽可能快地信息填满自己的脑袋,而不是真正深入到特定的主题;他们倾向于一次注册多个在线课程,从不同的网站下载几个备忘单,阅读许多作者的文章,但没有一个结构化的计划。...3.没有在代码上写注释 尽管这听起来很明显,而且是一个无关紧要的任务,但它代表一种很好的策略,可以跟踪每一行或每一块代码执行的操作,以便返回到暂停的项目。...然而,由于多种原因(经济约束、信息缺失、优先级的改变),所有的项目都很容易暂停,这将迫使程序员切换到不同的任务,而先前的任务保持不变。一个中断的项目需要的时间越长,就越不容易记住的位置和缺失的点。...当你在开发一个程序或新代码时,试着分成几个阶段,并在进入下一个阶段之前征求反馈。在每个阶段结束后得到反馈,这将你知道你是否正确,或者是否需要根据客户的要求进行更改。...这并不意味着你在实际工作中不会用到它们,但它你感觉更舒服,更安全,更少依赖它们。 6.

33710

背负着整个现代网络,却因“缺钱”放弃开源,core-js 负责人痛诉:“免费开源软件的根基已经崩塌了”

起初,Pushkarev 每天都要花几个小时来维护 core-js 和相关项目(主要是 Babel 和 compat-table),工作规模又在不断扩大,同时因为没有名气而找不到其他人一起维护,很显然,...而且他的维护工作进行得相当积极:“维护 core-js 期间,几乎成了所有现代和未来 JS 标准库功能的首个实现者,几乎所有功能中都有的反馈和相应修复。...当他开始全职维护 core-js 时,他每月大约 2,500 美元的收入,而现在已经下降到每月 400 美元左右。 这有多种原因。...某某才干了一年开发,技术根本就不行,但挣的已经是你的好几倍。” “有人称为杀人犯,希望和我所有的亲人都死光。这不算什么,因为每个月都会收到几条这样的信息。...“回到俄罗斯是因为在那里可以相对较少的钱过上体面的生活,并专注于 FOSS 而不是赚钱,”他写道。“现在不能离开俄罗斯,因为事故发生后有数万美元的未决诉讼,在还清之前不能离开这个国家。”

32920

​伪装的敏捷,好累

不记得了的话,来告诉你:“我们正在探索开发软件更好的方式……”就此打住,注意到了吗,说的是“开发软件”,并没有说到“倾斜你的组织”、“偿还转型债务”、“这种命令和控制废话切断”、“专注于结果并且在发现领域的工作...与流行的看法相反,下面的照片实际上并非来自 Snowbird 签署的宣言,我们是不是可以终于停止伪装的敏捷呢? [图片] 宣言有的目标,但它不会你直接到达你要去的地方,所以我们需要学习。...忽视这份工作的创造性将会导致大量浪费:没人的功能和无法带来结果的代码。...因为真正的价值是由研发工作中创造的选择来决定的,而这些选择则是由日常工作的持续学习和探索产生的。你能选择的东西越多则工作弹性越大,相应就会有更多种方法来创造价值。这个项目到底是想达到什么目标?...给予研发团队以下自主性,他们敢于去探索达成目标的最佳途径。 [图片] 最后总结一下,虽然吐槽这么多,是否就意味着敏捷已经开始没落呢?

52030
领券