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

昂贵的质量——为什么bug总在发生?

前者并非我们的一厢情愿,在互联网产品的高性价比和快速迭代的商业逻辑下,用户对产品质量的预期已经被规训到一个非常「理想」的状态。 而后者更为关键:我们应该如何最大化利用有限的资源去提升质量?...但假定此刻我们必须指定一人将他五花大绑起来祭天,为的是有人需要为上一个让人焦头烂额的bug 负责,程序员绝对是不二之选。 但程序员死也不会瞑目的。...工程实践天然具有一种反商业活动的特性,它很难被量化、难以一针见效。没有人敢拍着胸脯说在xx 天之内或者当测试覆盖率至少达到 xx 水平之后, bug 数量会降至 xx。我们都不否认它会变得更好。...于是现状变成了一方面可见的迭代速度变慢,另一方面成本的付出看不到收益,质量就自然值得被牺牲。 在提升质量的过程中,我们解决的不是个体问题而是工业问题。...细想这是很难的:一个团队中成员的能力不同背景不同,但我们却要设法让它们的产出质量处于某个水平之上。

12610

一个文件的开源项目,开启你的开源之旅

有没有人和我一样,有过上面的经历或者正处于这种状态。我当时就在想有没有那种,比书上的实例代码长一些,有些实际用途的开源项目。即: 一个文件、运行简单、一看就懂,有趣的开源项目!...代码中再多来点注释,相对于干巴巴的教程文章,我更喜欢代码中的注释,简洁直给解惑效果更佳。 功夫不负有心人,终于让我找到它们了: OneFile 汇集了仅一个文件,好玩的开源项目。...下面让我们一起来把玩下吧! 1、点击停球 消磨时间的小游戏,只需将球停在有颜色的区域即可得分。所有代码就只有一个 HTML 文件,玩累了还可以右键“显示网页源代码”,研究下源码如何作弊。...这个项目虽然核心文件只有一个,但运行稍微复杂,不怕我们有配套讲解文章。...如果你发现某个痛点或者灵光乍现,仅需创建一个文件把它记录下来,然后不断更新迭代并开源出来。最终,它可以帮助到更多人,未来的某一天会惊艳到包括你在内的所有人!

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

    免费给 Spring Boot 加个证书

    在本文中,我们将学习如何执行以下操作: 免费生成有效证书 用它配置一个 Spring Boot 应用程序 到期时续订 在我之前的博客文章中,我们熟悉了带有自签名证书的 Spring Boot 应用程序的配置...在本节中,由于我们的目标是 Spring Boot 应用程序(带有嵌入式 Jetty/Tomcat),我们只生成证书,然后与我们的应用程序集成。...如果您访问 https://seeld.eu:8443,您可以看到 HTTPS 已成功配置并且最重要的是可以正常工作。为了我们的项目,我们做了一些额外的步骤来让 HTTPS 使用端口 80。...所以让我们开始吧! 打开您的 Let's Encrypt 客户端目录,我的意思是 certbot。 备注:在证书和密钥所在的同一台机器上。...可能还有其他方法可以在不重新启动的情况下对其进行更新,但这不在本文的讨论范围内。

    1.5K20

    【Rust 日报】2021-11-11 保持冷静,学习Rust,我们很快就会在Linux中更多的看到这种语言

    顺便贴上这个万恶的表情包: Github: https://github.com/conradludgate/generic-str Redox OS(以及类似的项目)计划如何处理缺乏动态链接支持的问题...TL;DR: 这让我想到:Redox OS或类似的项目(比如今天早些时候u/dptzippy发布的项目)打算如何解决这个问题?...这涉及到对cargo的hack式滥用,我没必要推荐其他用例 -- 在我们有限的事例下,它是有效的,因为我们可以控制一切的编译 -- 但相当难以处理。它很可能无法扩展到支持闭源应用程序或库的分发。...这是一种很重要的东西,但推理起来却很麻烦。我想我可以通过写一篇关于这个主题的深度研究来改变这种状况。 在这篇文章中,我们将看一下Async Rust的异步原语,并介绍今天这些原语的取消是如何进行的。...我们很快就会在Linux中更多的看到这种语言。 要成为一名Linux开发者,你曾经需要C语言作为你的护照。现在Rust也可以让你成为一个操作系统程序员。 有这样一个笑话。"

    60510

    现代初创公司的架构

    这需要一些故事切片的实践,并且似乎通过将票据移动到“done”的能力,显示了一种可见的快速行动的感觉。这对团队来说是一个很好的激励因素,可以让他们接受这一想法。...当我们为本地部署做好一切准备时——移动工程师可以运行 docker-compose 命令,并做好一切准备(经过几次痛苦的尝试,发现了文档中的缺陷,但这些练习的真正价值在于对每一个“卧槽”做出反应并改进它...你和你的团队不可能什么都知道(有时你认为你知道的事情可以让你感到充实,但那是另一回事了)。尽管如此,它仍然需要评估和调查没有人接触过的东西。 支付、电子邮件、聊天、短信、通知、分析等。...如果是自托管的 Runner,也就是说,当你打开一个 PR 时,分配了一个 Pod 来运行 CI 检查的不是 GitHub VM,而是你自己的 Kubernetes?...如果我们再加上构建应用程序所需的时间以及将调试构建复制到提供商的时间,就会成为快速行动的一个真正瓶颈。 到目前为止,我们已经试验过在一天内运行两次,但让我们看看情况如何。 下一步是什么?

    1.7K20

    如何用 Python 脚本批量下载 Google 图像?

    (由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。) 问题 《如何用Python和深度神经网络识别图像?》...一文中,我给你展示了如何用深度学习,教电脑区分机器人瓦力和哆啦a梦。 很快就有用户在后台留言,问: 老师,我想自己训练一个图片分类器,到哪里去批量下载带标注的训练图像呢?...这个大众痛点,真的没有人尝试解决吗? 今天,一个偶然的机会,我发现了一个特别棒的 Github 项目,叫做 google-images-download。 Github repo 链接在这里。...可以看到,下载过程中,发生了一个错误。 但程序依然锲而不舍,帮我们把下载流程运行完毕。 我们看看结果。...我们在 Finder 里打开看看: 看了半天,有的照片,还是跟郝蕾分不大清楚。 为了彻底分清两位女演员,我们再下载 200 张郝蕾的照片吧。

    1.9K20

    怎么写一个超棒的README文档

    这是一个好主意,因为它使README更易于浏览。 第一个问题应该是如何安装(如何使用项目或如何在机器中启动编辑)。 这里应该给用户详尽的想法,并说明他们如何使用项目repo的所有步骤。...如果需要添加更复杂的说明,请使用Wiki: https://github.com/navendu-pottekkat/nsfw-filter/wiki 贡献 在这里,你可以让人们知道他们如何为你的项目做出贡献...这可能是因为你没有从项目中获得任何收入,你需要钱来维持项目生存。 你可以在此部分中添加人们如何赞助你的项目。在此处添加你的patreon或GitHub赞助商链接,以方便访问。...就个人和标准而言,你应该使用一个问题模板和拉取请求模板,以便用户打开新问题时可以按照项目指南轻松地格式化它: https://github.com/navendu-pottekkat/nsfw-filter...快捷方式:在GitHub中单击repo根目录下的添加新文件-->将文件名设置为LICENSE -->GitHub显示许可证模板--->选择最适合项目的模板!

    1.7K30

    关于“Python”的核心知识点整理大全65

    如果没有人使用你部署的项目,就尽管 去练习部署过程好了,在Heroku删除项目再重新部署完全合情合理。...你学习了如何使用jumbotron来突出主页中的消息,还学习了如何给网站的所有网页设置一致的 样式。 在本章的最后一部分,你学习了如何将项目部署到Heroku的服务器,让任何人都能够访问它。...我们使用一个名为deadsnakes的包,它让安装多个Python版本变得很容易: $ sudo add-apt-repository ppa:fkrull/deadsnakes $ sudo apt-get...为此,按住Shift键并右 击桌面,再选择“在此处打开命令窗口”来打开一个终端窗口。你也可以在开始菜单中执行命令 command。...编程中面临的一个挑战是给变量指定合适的名称,变量名可以是任何东西,只要它长短合适并描 述了变量的作用。

    12110

    用深度学习硬件的闲置时间,来挖比特币

    但当你没有优化任何东西时,如何让所有的teraflops都被充分利用? 最近比特币价格一路飙升,您可以考虑利用这些闲置的资源来获取利润。...这并不难,你需要做的就是设置一个钱包,选择要挖掘的东西,建立一个矿工软件并运行它。在谷歌上搜索“如何开始在GPU上挖矿”,有很多详细说明如何挖矿的文章。 ? 如何使挖矿更便捷?...一、必要条件 我的项目叫gpu_mon,源代码可以在这里找到:https://github.com/Shmuma/gpu_mon。...整体逻辑与上面描述的完全一样:gpu_mon定期检查GPU,如果没有人使用它,它将运行您在config文件中指定的程序。如果某个进程打开GPU设备,运行中的挖矿将中断以释放资源。...二、配置 整个项目被配置在一个单独的配置文件中,该配置文件具有ini-file格式,并且预计将位于〜/ .config / gpu_mon.conf文件的主目录中。

    1.3K60

    带你深入了解NPM——NPM初学者指南

    另外在介绍的基础上,我们还会适当的深入介绍下,如何在npm上发布第一个属于自己的包。那么,让我们马上开始吧!...得益于Node.js的模块化生态系统,我们基本上可以把NPM认为是任何Node项目的基础组成的一部分。但实际上,我们甚至可以说NPM是Node.js开发人员在开发者社区中最重要的工具之一。...因此,我将尝试介绍该工具的基础知识,让您更深入地了解并使用它,而不是仅仅了解npm install而已。 包管理 我们都知道你可以使用NPM安装软件包,但究竟是什么意思呢?...包基本上是包含您需要的代码的文件夹,您可以在本地或全局安装它。 本地安装 本地安装意味着您实际上将文件下载到项目的文件夹中。在其中,您将找到一个您未创建的目录,称为“node_modules”。...请注意它的唯一性。 Description:描述你的包,以便其他人可以快速了解他们在安装时会得到什么。并确保在描述中添加尽可能多的重要关键字,以便搜索引擎知道如何快速找到您。

    1.8K20

    TODO指南:关闭开源项目

    这可能使您很难确切知道您有多少用户,但当项目按照其计划完成生命周期发展时,您可以进行准确追踪。 为什么在您尚未开始一个开源项目时,就要为其结束做好计划?...在没有将您的打算告知用户就结束一个项目并卸除其代码的行为,是不负责任的行为。 维护贵公司的声誉 您想要做的事并不是让其他用户陷入困境。在开源世界中,对这个问题不能掉以轻心。...如果您决定退出一个项目,您可能更愿意把它转交给那些在意这个项目并愿意延续它的人,而不是直接宣告项目结束。...转交如何是有用的 通过将项目转交给其他希望继续维护它的组织,您可以直接协助项目数据和其他资源的转交。这种方法将有助于减少现有社区及其用户的担忧和风险。...虽然之前这一测试基础架构已用于某个项目中,但您可能希望在转移代码之前将这一基础架构解离出来,以便您可以将此工具用在之后其他代码的测试中。

    78500

    为什么我们需要在Scrum中进行产品演示?

    在Scrum中,我们努力在每次sprint结束时交付工作产品 (Working Prodcut)。但如果没有人知道这件事又有什么意义呢?Scrum对此的回答是演示 (Demo)。...在瀑布中,一旦项目完成,我们就会了解涉众的反馈,但是在敏捷中,在每次冲刺结束时,需要演示来从涉众那里获得反馈。...演示程序是PO和团队如何确保涉众 (stakeholders) 对我们交付的内容感到满意。这个演示对于Scrum团队来说是一个强大的仪式 (Ceremony) 。演示在团队和涉众之间建立信任。...有时候,利益相关者会看到演示过的东西,并决定他们根本不想要它。那完全没关系。 该演示的另一个优点是让涉众知道谁在处理他们的项目。...这是一个在团队和涉众之间建立关系的机会。这种可见性为涉众提供了更广泛、更平衡的视角 (perspective),以了解如何创建他们的产品。 此外,涉众将看到团队接受反馈并适应他们变化的需求的意愿。

    92780

    【Android】Fragment懒加载和ViewPager的坑

    ViewPager + Fragment 的坑 ViewPager为了让滑动的时候可以有很好的用户的体验,也就是防止出现卡顿现象,因此它有一个缓存机制。...本来Fragment的 onResume()表示的是当前Fragment处于可见且可交互状态,但由于ViewPager的缓存机制,它已经失去了意义,也就是说我们只是打开了“福利”这个Fragment,但其实...Fragment和离开的那个Fragment才会触发回调函数,这样就可以支持我们在可见状态变化时进行一些操作,因为不会有多余的false触发。...的懒加载(只加载一次哦) ---- 最后附上代码,另外注意一下,题主是从项目里抽出代码,进行一些修改,让它尽量可以直接复制粘贴使用,但并没有进行过测试,所以如果不行的话可以留言,题主会查看。...Github 地址 ---- PS 以上就是这次的内容了,最近题主想利用 Gank公开的api,做一个类似于Meizi的应用出来,虽然这个App已经有无数人都做过了,但确实是一个很值得学习的项目,题主仍然是小白一个

    2K20

    开源需要维护者,但是他们如何获得报酬?

    代码库中的代码有 76% 是开源的。 91% 的代码库包含在过去两年内没有开发者活动的开源软件 —— 报告暗示,这可能表明一个开源项目完全没有人维护。...在 Tidelift 的调查中,36% 的维护者说他们考虑过放弃自己的项目;22% 说他们已经这样做了。 这让人想起可怕的“巴士因素” —— 如果项目的唯一维护者被巴士撞倒,项目会发生什么?...“OSPO 可以帮助软件开发者、采购人员和法律团队了解如何选择开源许可证,或者非技术人员如何吸引当地社区参与工具的设计和开发,”Peters 在通过电子邮件回答 The New Stack 问题时写道。...Carter 在电子邮件中写道:“Alpha-Omega 创建了一个途径,让关键的开源项目获得财务支持,并改善软件供应链的安全性。”...例如,开源预算可以用于 GitHub 赞助等。Karpov 说,作为赞助一个开源维护者的回报,也许“你可以直接与他们沟通,像‘嘿,你能回答这个问题吗?’这可以让这些大公司的开发者更有生产力。”

    26910

    为什么要创建以开发人员为中心的 Kubernetes 平台,以及如何创建

    让我们看看为什么创建一个有意义的,然后探索构建它所需的组件。 在不断增长的云原生开发领域中,Kubernetes 已经成为组织的事实标准。...考虑到这一点,让我们看看为什么创建一个以开发人员为中心的 Kubernetes 平台是有意义的,然后探索构建它需要哪些组件。...让它变得简单。是的,开发人员需要了解 Kubernetes,但前提是这种理解有助于交付软件和更快地获得关键反馈。...创建一个面向开发者自助服务平台可以使他们专注于战略项目并支持持续改进。 集中关键数据。团队需要实时数据来收集洞察力,以了解哪些有效,哪些无效。...自然而然地,这很复杂,因此可见性可以消除障碍。同时,该平台还应提供易于测试新版本的方法,使用金丝雀发布等工具进行测试,在确保安全释放服务到最终用户时逐步释放服务,但如果出现问题,则可以快速回滚。

    10010

    【推荐】在R中无缝集成Github云端代码托管

    在 Visual Studio中建立Github项目 在VS中使用Github可以说是一件轻松加愉快的事情,几乎不需要任何多余的设置。...在这里我们新建一个项目,名称就叫“Damao”。 ? 在Damao这个项目中,大猫新建了两个脚本和dt、dt2两个数据集,并且用内置的浏览器同时打开这两个数据集。如下: ?...在“change”列表中,我们可以看到我们新建了一个叫做01-test.R的脚本和一个叫做02-empirical.R的脚本,并且删除了一个叫做Script.R的脚本。...在 其他机器上同步Github项目 在另外一台机器上同步我们的Github项目同样非常简单。打开VS后我们在欢迎页可以看到“Open”标签,其中就有从Github的选项,点击。 ?...有时我们需要比较两个版本的代码,例如本地版本与云端版本,使用VS的compare功能可以自动高亮出所有修改,让所有变动一目了然。下图就是一个大猫实际编程中遇到的例子。

    2.1K40

    我太难了!Reddit网友吐槽:从PyTorch转投TensorFlow后,没人搭理我的问题

    可见,PyTorch 正在快速增长,尤其在学术圈中地位飙升,大有取代 “老大哥” TensorFlow,成为机器学习框架 No. 1 的势头。 ?...另一方面,Pytorch有一个论坛,在那里你可以经常得到Pytorch开发团队的回答。 我听过很多关于Tensorflow的抱怨,但我个人并不认为它的结构本身很差。...idea;在训练过程中逐渐改变一个损失函数的“形状” 2、我用Google搜索“tensorflow 训练中改变损失函数” 3、最顶部的结果是一篇medium文章,我点开了它 4、这篇medium文章介绍了...Reddit网友netw0rkf10w也深有体会,不过TF团队的快速反馈让他感到安慰: 在过去的两个月里,我一直在用TF 2.0做一个项目,遇到了很多挫折,主要是由于bug、文档不清晰和缺少功能。...也许商业模式是让一切都通过GCP(谷歌云平台)运行,用一个简单的链式应用方法来做事情。这至少是我在参加GCP开发者大会时得到的印象。

    1K10

    99%的人都不知道的秘密:世上竟有如此酷炫的钓鱼系统!

    一次成功的钓鱼往往可以打开一个天衣无缝目标的突破口,从而深入地进行进一步渗透,以期达到持久化埋下伏笔…… 在APT的世界中,0day攻击似乎号称核武器,但熟练的施行者往往知道0day的力量并不是那么无坚不摧...,也需要层层的信息刺探才能在关键环境让一个漏洞利用发挥它应有的攻击效果,而在这当中,针对人的攻击往往无往而不利,最高超的攻击人员往往在永恒的漏洞上面攻击实践会比其它花费更多的时间。...,他或许谨慎的会在虚拟机、沙箱、还原系统打开,但是如果我在这个伪造程序中构造的更复杂一些,让他花费十分钟看我的说明,再花费十分钟做实验,最后当他发现实验失败以后我也已经把我的工作做完了。...尤甚几年前我的一个idea,没有人会在意jar、py的威胁,我经常把shellcode捆绑到一些原装应用上,对方老是无往不利的帮我打开他们…… 举个简单的例子,如果我号称发布最新的破解版burp(其实只是在...我随便构造一个: OK,如果你觉得它太粗糙,那我们可以在sites包里面修改源代码,非常的简单,有些些php和html基础就OK(实在不会内置的绝对够用)。

    37640

    我们如何转型微服务?

    不过, 如果您向任何团队中的任何人询问我们的开发过程是如何工作的, 他们会描述如下的场景: 1、有人关于一个功能有些想法, 写一些描述,画一些原型。然后我们作为一个团队讨论它。 2、设计师形成UX。...时间的降低是非常显著的, 我们决定在其他团队和过程中推广这个尝试。我们让设计师、产品经理和前端开发人员在一个功能上彼此紧密地工作, 时间周期也减少了很多: ? 图上可以看出,时间非常显著的降低。...它的大部分听起来和我在ThoughtWorks的项目很类似, 但有一个方面对我是全新的:强制性代码审查。...如果我们没有一个小时的通知, 没有人会死, 但是回放模块中的五分钟停机时间已经足以让我们的指标难以实现。...我们仍然让一个单独的团队负责这些对象, 现在我们的架是更加稳定, 减少了救火所需的时间。这使得我们可以让这些人从旧巨石架构中提取模块作为它里面的一个项目。

    89680

    在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈

    一开始走上开源这条路,正如上面说的有了 GitHub 之后就想让贡献墙好看点,所有有什么稀奇古怪好玩的东西都会往 GitHub 上面放。但后来为什么越来越喜欢做开源呢?...搜遍全网,Day.js 在开源之后,iamkun 你并没有大张旗鼓,花很多精力在推广上面,但三年之后它成长为了一个 30k+ star,1.3k+ commit 的项目,当中是有什么黑魔法吗?...:无论是 Day.js 还是 Element UI 都可以说是一个前端明星项目,且用户体量不小,在维护大型的开源项目上你有什么经验可以分享吗?...这样子的话,接受社区的意见可以让你的项目在社区走得更远,而不是成为你自己一个人的玩具。...在 GitHub 上造轮子分享自己的作品,坚持不断地迭代维护。然后通过开源社区的力量让它越来越好,同时你也会越来越强而且不单单是技术上的成长!

    62720
    领券