大家好,我是陶朱公Boy,一个认真生活,总想超越自己的程序员。 前言 知乎上有一个提问:Bug是如何产生的? ↓↓↓ 今天,我们就这个话题,一起来做个讨论。...我的回答 早些时候,我写过一篇文章:趣图|为什么祖传代码被称为“屎山”? 那篇文章我的观点认为,那种一个类成百上千行代码堆在一起,经过一个又一个接盘侠维护后的“屎山代码”,是很容易产生bug的。...那产生bug具体涉及到哪些场景呢?在这里,我深度总结了以下10种场景,与你分享: 编程错误: 最常见的Bug产生原因之一是编程错误。本质原因还是程序员代码写的不规范或有漏洞,导致逻辑错误和数据错误。...知友答复 回答一 回答二 回答三 客户是这样描述需求的 项目经理是这样理解的 设计出来是这样的 开发出来的是这样的 测试的时候是这样的 顾问是这样形容的...实施是这样的 顾客得到的是这个样子的 顾客真正想要的是这个样子的 写到最后 感谢您一路陪伴着我,探索编程的奇妙世界。
程序员:好的,马上开始打地基! 领导:你看那隔壁那木房子就没有打地基,不要在小事上浪费时间,一个月水平面上面什么都看不到,你kpi不要了? 这是敏捷开发。 一层房子修好。...领导:我觉得两层楼的视野好,再加一层。 程序员:可是我们没有地基,重新打地基要时间…… 领导:你一楼都修好了,照着再修个一模一样二楼很难?还要很多时间? 这叫高速版本迭代。 二楼修好。...程序员:这个结构行业翘楚的房子也不支持呀! 领导:那不正显得我们牛逼么?修快点,夏天要来了。 这叫快速功能追加。 游泳池修好,看着摇摇欲坠的房子,程序员跑路了,领导找来新人继续。...领导:我觉得游泳池水不够满,你加点的,一楼光线不好你在墙上打个窗户。 新人:好的,没问题领导,马上加一桶水,马上砸墙。 这叫打补丁。...新人:我真的就加了桶水,我怎么知道为什么。 这叫软件莫名崩溃。 转载:https://www.zhihu.com/answer/967299388
不同制造工艺的零件,产生偏差的原因有所不同,以机加工为例,误差产生的主要原因如下: 01 机床的制造精度 机床的制造误差主要包括主轴回转误差、导轨误差和传动链误差。...主轴回转误差是指主轴各瞬间的实际回转轴线相对其平均回转轴线的变动量,它将直接影响被加工工件的精度。主轴回转误差产生的主要原因有主轴的同轴度误差、轴承本身的误差、轴承之间的同轴度误差、主轴绕度等。...导轨是机床上确定各机床部件相对位置关系的基准,也是机床运动的基准。导轨本身的制造误差、导轨的不均匀磨损和安装质量是造成导轨误差的重要因素。 传动链误差是指传动链始末两端传动元件间相对运动的误差。...定位副制造不准确误差只有在采用调整法加工时才会产生,在试切法加工中不会产生。...在工艺系统中,工件、刀具在机床上的互相位置精度,是通过调整机床、刀具、夹具或工件等来保证的。
当我们给出前N个词汇的时候,如果一个模型能够告诉我们第“N+1”个词汇大概率会是什么,我们就认为模型掌握了语言的基本规律。 为什么光凭“续写”就可以产生智能?...以下是摘自知乎的一段回答: “为什么这么一个简单的接话茬能力让ChatGPT看起来能够解决各种各样的任务呢?因为我们人类大部分的任务都是以语言为载体的。...但是我们还是无法回答为什么这样的模型能够产生智能,以及现在还出现了一个新的问题,为什么参数量非得这么大?...到这一步,逐渐意识到,是压缩产生了智能。 Jack Ray, OpenAI大语言模型团队的核心成员,在视频讲座中提到,压缩一直是我们的目标。...但是,通过压缩产生的智慧和人的心智真的是同一种东西吗?
时代的变迁,消费者口味变化是库存产生的时代原因 在八九十年代,物质短缺的年代,不存在库存积压问题,因为大家都没有什么好衣服,一个好款式出来以后,大家都去爆买,所以那个年代是做服装生意的黄金年代。...库存产生的原因就是信息不对称,没有实现连通 库存产生的原因就是企业在运作过程中的信息不对称,也就是企业的管理能力没有跟上,导致消费需求和生产活动是相互脱节,下面从几个方面进行解读。 1....所以,在多款少量时代,信息化系统和信息化应用水平,决定了企业的库存管理能力,也决定了是否会产生库存。前面讲到的库存比例分析也是非常重要的,库存结构要合理,才能最大可能的避免库存产生。...,快速的供应链反应,为前端销售争取了最大的时间端,避免一上市就过季的尴尬局面产生。...真正解决库存的方式是去减少库存的发生,而不是去低价消化这些库存。 总之,好的软件系统是避免库存产生的利器,当然也需要企业自身的运用能力。
今天这篇漫画的灵感来源于知乎的万赞回答,也有一部分原因是因为最近工作状态的真实写照吧, 它讲述的是程序员工作中的bug是如何产生的,以及作为一名优秀的程序员,如何把握好你跑路的时间呢?...而bug的产生,大多源于遇上不懂技术的领导或老板,到处跟业务部门、客户等吹牛逼,保证项目开发能有多快、多好、多稳,但当真正需求出来后,经过开发人员评估,时间远远超出他吹牛皮的范围,然后就开启了压迫模式,...到最后程序员无法忍受,只好跳槽跑路,新来的接盘侠对项目完全不了解,在迷宫一样的系统里垂死挣扎,改好一个bug引发了另外100个问题,如此反复循环……,而老板/领导完全自我良好,认识不到自己的问题… 程序员真的是太难了...… 参考资料 # Bug是如何产生的 https://www.zhihu.com/question/365343579/answer/967299388 文中部分素材来源网络,如有侵权,请联系删除...本文已获授权改编自知乎 “哒柏” 的回答《Bug是如何产生的?》
Service中是如何产生ANR的? Service中是如何产生ANR的? Service启动流程 遗留问题: Service中是如何产生ANR的?...在Service中涉及的两对Binder是什么?是怎么完成通信的? app进程通知AMS所处的systemserver进程通信是通过AMP(客户端)和AMS(服务端)这对Binder完成的。...2.为什么ATP是在AMN中创建的? 这种方式在api26之后被弃用。 android api 26 ActivityManagerNative类被弃用。...,api25和api26的本质是一样的。...而api26使用的是app.thread也就是ApplicationThread,该类是ActivityThread的内部类。
Service中是如何产生ANR的?...在Service中涉及的两对Binder是什么?是怎么完成通信的? app进程通知AMS所处的systemserver进程通信是通过AMP(客户端)和AMS(服务端)这对Binder完成的。...2.为什么ATP是在AMN中创建的? 这种方式在api26之后被弃用。 android api 26 ActivityManagerNative类被弃用。...,api25和api26的本质是一样的。...而api26使用的是app.thread也就是ApplicationThread,该类是ActivityThread的内部类。
R的历史 R语言是统计领域广泛使用的诞生于1980年左右的[S语言]的一个分支。可以认为R是S语言的一种实现。而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的[解释型语言]。...所以,两者在程序语法上可以说是几乎一样的,可能只是在函数方面有细微差别,程序十分容易地就能移植到一程序中,而很多一的程序只要稍加修改也能运用于R。 R的特点 1.R是自由开源软件。...标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。 2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂, 很容易学会和掌握语言的语法。...而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。 3.R具有很强的互动性。...R语言是新手入门编程的最好选择。
而这部分 Evicted 状态的 Pod 在底层关联的容器其实已经被销毁了,对用户的服务也不会产生什么影响,也就是说只有一个 Pod 空壳在 k8s 中保存着,但需要人为手动清理。...本文会分析为什么为产生 Evicted 实例、为什么 Evicted 实例没有被自动清理以及如何进行自动清理。...7748f8fd8-mzd8x 0/1 Evicted 0 81d cloud-1237162-276467-199844-2-deploy-7bdc7c98b6-26r2r...stats 数据一部分是通过 cAdvisor 接口获取到的,一部分是通过 CRI runtimes 的接口获取到的。...(default 12500) 该参数配置的是保留的异常实例数,默认值为 12500,但 podgc controller 回收 pod 时使用强杀模式不支持实例的优雅退出,因此暂不考虑使用。
R中的一切皆对象,R表达式也是R对象。这意味着我们可以从语法上解析R表达式,或者部分地执行R表达式,来观察R是如何解释它们的。这对于了解R的工作机制或者调试R代码十分有用。...R解释器在执行语句时要经过几个步骤。第一步是从语法上解析语句,将其转化为合适的函数形式。我们可以查看R解释器是如何执行一个给定的表达式的。...通过观察列表形式展示的语言对象,我们就可以看出来R是如何执行一个表达式的了。 下面是这个表达式的语法树(parse tree)。...要注意,列表中的第一个项目是一个符号。在本例中,该符号指向的是if函数。因此,虽然if-then语句的语法与函数命令不同,但R语句分析器会将表达式翻译为函数命令,再执行表达式。...函数名是第一个项目,剩下的项目是函数的参数。
目前,许多网站的会员登录时都要求输入验证码,尽管验证码的形式五花八门,但是所使用的原理基本是一样的,都是生成随机字符串,然后描绘成图片的形式输出。...验证码的生产主要分两部分:1是随机字符串的生成;2是生产验证码图片 1....随机字符串的生成: 随机字符串生成有很多方法,这里介绍一种利用字符数组生产随机串的方法 代码如图1所示,自定义自己的随机字符数组,然后使用随机函数随机抽取4个字符组成一个随机字符串...'f' }; int number; char code; string checkCode = string.Empty; //使用随机函数,产生一个随机数...{ g.Dispose(); image.Dispose(); } } 然后调用此函数即可,原理比较简单,只不过是c
然而这世界上有的是著名的开源项目,也有像 Github、Instagram 这样流量巨大的知名网站是基于动态语言开发的,经过了这么多年重构,也未听说哪个作者进了火葬场的,不明白这些人是真的不知道还是装作看不见呢...上表已经按代码行数排了序。有意思的一点是, 代码规模最大的前4名中除了 CPython 之外其他三个全部是运维性质的项目,本来我猜测代码应该比较多的项目比如 Odoo 排名反而很靠后。...我对运维项目了解有限,不太清楚为什么这些项目的代码规模会名列前茅,或许是因为要支持的内容比较多而杂? ?...同学们一定发现了,我在列表中除了代码行相关的指标之外还增加了几个其他内容,这也是我个人比较感兴趣的方面。 ? 第一个指标是每个文件的平均代码行数。...前面提到的 Sentry 毫无争议的因为注释太少排到了最后,这未必说明这个项目很差,但至少是一个信号,说明该项目在维护方面可能是存在问题的。
那个时候精气神是不一样 讨价还价也有余地 哪里都会有坑和不如意 跳槽并不能一劳永逸,也许能解决上家公司的问题,但不能解决所有职场问题 重点是你当时选择这个岗位所看重的东西 能否cover住新岗位的不如意...不要频繁跳槽 一般收到简历,履历中有几次低于1年的工作经验的,我都会PASS 没有定性是一方面 最重要的是显得没脑子 善始善终 人是活在圈子里的 越到后期你会越发现,所在行业的圈子是这么小 离职时,多多少少员工心理都觉着自己受了委屈...别想着要离职了,就开启撕逼大戏,这会被认为情绪不稳,职场不成熟 或者想着“人之将死其言也善” 被问到离职的原因时,噼里啪啦一通公司的弊病弊端,直指直属上级的不是 即使诚恳,但你仍然是带着情绪的 而对方也是带着情绪的...他们会成为你在职场上的关键背书和人脉 等冷静下来 如果你仍觉得原团队确实存在一些弊病 那么选择一个和缓的时机,委婉提出 对方也可以给予你最中肯的一些建议 工作5年后,如果没有人拉着你说 诶我这有个坑你要不要来...,团队内有个不错的XX岗位我推荐你 或者最次,背调的时候找到能为你做职业背书的人 那么这样的职业生涯是堪忧
我们是完全按照这个来做的五年计划! 作为一名管理者和数据科学团队的一员,这对我来说是一个警钟。 ---- 委派是一个有趣的命题。作为一名主管,我常常担心自己是否在事无巨细地管理员工。 为什么?...很明显,我对短期数据分析需求产生了盲点,这种需求往往超过了领导对我们新产品的长期计划。 当你在一个反应型组织中,你需要为这个任务投入资源。...此外,我相信他们的专业知识(正确),但当他们拒绝请求(错误)时,我没有花时间和他们探讨“为什么”。 作为一个领导者,仅仅建立正确的团队是不够的。你还必须形成正确的团队态度和文化。...五个为什么 - 我最喜欢的一个工具已经成为“五个为什么”。...---- 在不以数据科学为基础的公司中,那些从事数据工作的人需要特别小心地理解我们的工作是如何对整个公司的使命做出贡献的。 我们必须记住,我们是一个支持角色,而不是核心职能。
我给你的建议就是:先学习R语言 专注于一种语言 在说明为什么你应该学习R语言之前,我想强调的是,在开始学习数据科学时,你应该学习一种语言。 有些人问我是否应该学习在学R语言的同时学习Python。...事实证明,R语言是最佳的选择。 学习R语言 我建议你将R语言作为你的第一个“数据科学编程语言”。虽然也有例外,比如特定的项目需要。...当学者、博士和研究人员离开学术界从事商业活动时,他们又将产生对R语言人才的需求。 此外,随着数据科学的成熟,商业届的数据科学家将需要与学术届的科学家进行更多的沟通。我们需要借鉴技术和交流观点。...以下是在学习R语言之后,你可以考虑学习的语言: Python Python是一种值得考虑的多用途编程语言。在O'Reilly最近的调查中,Python是数据科学家中第二受欢迎的编程语言。...总结:学习R语言,并集中精力 如果你是初学者,R语言是很好的选择。同时需要专注于学习数据科学的技能。 在学习过程中,你可能会看到很多新技术和新工具,或者一些令人眼花缭乱的数据可视化。
R作为可视化的大势,自然也可以画出这些图,有一篇就通过ggplot2包进行了部分总结,甚是有趣,小编复刻学习了一番,现对代码做简单注释,以作分享。...函数进行数据样式转换,%>%是dplyr包的传递函数 print(df1) ggplot画图 ggplot2是图层式绘图,一层层添加修改,图层需要指定数据集,数据集中的内容(ase数据),geom_图形...a的数据有盘高盘低,条形图是关于对象b的图,成交量 # facet_grid(item~....,边框为红色,形状为2指代的三角形,大小为5,参数coef指定了“须”的长度的极限值,默认值是1.5,表示两条须的极限不会超过盒型各端加1.5倍四分位距的范围,如果被置为0,条须的延长极限就会在数据集中元素的极限位置...cum的上一个值,开始值是0.
题目 题解 只要通过遍历获得最大和第二大的数即可。
领取专属 10元无门槛券
手把手带您无忧上云