热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

scout安装_始终让代码比您发现的要好BoyScoutEngineering101

scout安装大多数工程师都听说过“童子军规则”:“总是让代码比您发现的要好。”人们通常把它称为解决技术债务的灵丹妙药。如果只有所有软件工程师都表现得很好࿰

scout 安装

大多数工程师都听说过“童子军规则”:“总是让代码比您发现的要好。” 人们通常把它称为解决技术债务的灵丹妙药。 如果只有所有软件工程师都表现得很好,那么我们的软件就不会因此而持续恶化。

但是,如果这么简单,为什么不是每个人都这样做,一劳永逸地遏制科技债务呢?

您猜对了,这不是那么简单。 因此,让我们找出原因,以及我们可以采取的措施。

童子军的规则-它到底是哪里来的?

1941年,侦察员罗伯特·斯蒂芬森·史密斯·巴登·鲍威尔(Robert Stephenson Smyth Baden-Powell)的创始人说:“尝试离开这个世界,要比发现的世界好一点。” 随着时间的流逝,这可能会演变成“总是离开营地,比您发现的要干净”,但这种情绪或多或少都是一样的。

关键是为了保持营地清洁而进行的少量但持续的努力可以避免大规模的清理作业。

罗伯特·C·马丁(鲍勃叔叔)将这一规则应用于软件工程:“总是让代码比您发现的要好。” 换句话说,工程师应该不断清理少量的技术债务,这样他们就在过于接近技术破产的情况下就不必进行庞大的重构项目。 很简单。

那么,为什么在实践中它永远不会像这样工作?

什么阻碍了童军规则

业务压力通常迫使工程师将新代码附加到现有代码上,而可用的时间有限,以确保结果合理且可维护。

对短期结果的关注会造成未来的生产力瓶颈或技术债务: 昨天编写的代码使您今天放慢了脚步 。

恶性循环出现:

  • 我们希望快速发货,因此我们附加了一些新代码。
  • 这使将来的工作更加困难,但是我们仍然希望尽快交付,因此我们没有花时间清理代码,而是花更多的时间编写新的代码。
  • 对代码库的那部分进行有贡献的贡献变得更加困难,但是清理工作现在太大了,因此我们不去理会它,而是继续做出更多的短期贡献。
  • 直到我们别无选择,只能进行大量清理工作才能继续发货之前,该代码的运行状况一直在恶化。

所有这些都是由于错误的假设,即投资软件质量不值得付出代价,并且会减慢我们的投放速度。 但是, 正如Martin Fowler解释的那样 ,这种假设是有缺陷的,因为干净的代码实际上使我们可以更快地交付。

如果您应用boyscout规则并让营地清洁得比您发现的要干净,则可以中断循环。 但是在实践中应用它并不容易。

为了更清楚地了解问题,让我们暂时穿上男孩/女童子军工程师的鞋子。

童子军工程师的困境

我被分配了票。 我必须在特定的时间范围内发货,因为我已承诺在计划期间进行估算。 我想实现目标并准时交付业务价值,但我也想让营地清洁得比我发现的要干净得多,这将使我和我的同事日后更轻松地处理代码,业务将受益,因为我们能够更快地交付将来的工作并且质量更高。

但是我怎么知道我有多少清洁能力? 如何确定最值得清洁的物品? 我无法清理公司的整个代码库。

这些是很难回答的问题。 我的清洁能力会根据我完成新工作的速度而有所不同,如果有很多选择,那么很难确定最值得我清洁的几件事。

鉴于以上情况,我应该采取什么行动?

  • 我可能会过度清洁并最终延迟发货。
  • 我可能会整理一些东西,但不是最重要的。

这是我的困境。

童子军工程师的发布

为了准时交货并在最重要的事情上花费我的清理能力,我需要:

  • 注意我可以清理的所有东西。
  • 找出最值得我注意的那些东西。
  • 根据我的能力,跟踪该列表并关注最重要的项目。

实际上,每当打开代码编辑器时,男童子军工程师都需要清楚地定义他们的营地。 他们需要调查景观中可能要清理的事物,按重要性顺序对其进行排序,并在努力争取运输时间时跟踪其清理进度。 我们构建了一个免费的VSCode扩展,可以为您完成这一工作!

这就是为什么做男孩/女孩侦探会很困难的原因,以及您可以做些什么。

成长Swift的软件公司的侦察员工程师很难做到。 该业务的增长和发展是如此之快,以至于感觉就像一夜之间积累的技术债务一样。 好吧,那是因为确实如此。

使用正确的工具和方法 ,关心代码质量的工程师可以识别值得清理的技术债务-这是清理后的技术债务,将使您真正掌握业务指标,例如错误数量,回归,运输节奏,用户参与度等等。

要成为一名有效的男孩/女童子军工程师,您还需要了解技术债务的法律,可以采取的形式以及如何与之抗衡。 我们在关于技术债务定律的两部分系列中以及对不同类型的技术债务进行分类的文章中 ,对这些问题进行了广泛的调查。 认识你的敌人。

有什么好处?

支持童军规则的人,例如罗伯特·C·马丁(Robert C. Martin,鲍勃叔叔) ,是正确的-如果始终如一地遵循并正确应用,它将成为管理技术债务的最有效工具。 我们称其为持续技术债务管理 。

但是,此规则不仅仅满足您的要求,而且强项显然是一致性 。 童子军工程师需要了解使他们难以发挥作用的法律和激励措施,但他们还需要掌握正确的工具和技能,以真正对他们的代码库的健康产生持久的影响。

代码质量将加快整个工程团队的速度,从而加快整个公司的速度。请参阅我们的文章, 了解技术债务如何影响公司中的每个人 。

代码质量值得付出代价 。

用罗伯特·马丁(Robert C. Martin)的话说,正如凯夫林·汉尼(Kevlin Henney)的书中所述,“ 每个程序员都应该知道的97件事”

我认为,如果我们都遵循这个简单的规则,我们将看到我们软件系统不断恶化的终结。 取而代之的是,我们的系统将随着它们的发展逐渐变得越来越好。 我们还将看到团队关心整个系统,而不仅仅是个人关心自己的一小部分。

成为童子军可能比您想像的要难,但是您可以做到,它实际上可以节省您的时间-因此 ,不要失望并做好准备!

翻译自: https://hackernoon.com/how-to-be-an-effective-boygirl-scout-engineer-q7r3z9e

scout 安装



推荐阅读
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • HTML基础入门指南
    本文将深入浅出地介绍HTML的基础知识,包括其定义、开发工具、制定机构、特性、基本标签及更多实用内容。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 本文介绍如何在 Visual Studio Code 中使用 Jupyter Notebook 插件,包括创建、编辑和运行笔记本的基本操作。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • TechStride 网站
    TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ... [详细]
  • 本文将带您了解Cocos家族的不同版本和分支,特别是Cocos Creator的发展历程及其核心特性,帮助初学者快速入门。 ... [详细]
  • 如何从python读取sql[mysql基础教程]
    从python读取sql的方法:1、利用python内置的open函数读入sql文件;2、利用第三方库pymysql中的connect函数连接mysql服务器;3、利用第三方库pa ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
author-avatar
雲悳蕲黇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有