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

YAGNI - 敏捷的做法一定不能命名?

YAGNI 是一个敏捷开发原则,代表着“You Aren't Gonna Need It”,意思是在开发过程中,不要过早地为未来可能的需求做准备。这个原则强调,应该只开发当前需要的功能,而不是预先为可能的需求做准备。

这个原则的优势在于,它可以减少开发过程中的不必要的工作,提高开发效率和代码质量。遵循 YAGNI 原则可以避免开发人员为了满足可能的需求而编写不必要的代码,从而减少开发成本和时间。

YAGNI 原则并不是说不要考虑未来的需求,而是应该在需要的时候再去做准备。在实际开发过程中,开发人员应该根据当前的需求来编写代码,而不是预先为未来可能的需求做准备。当未来的需求出现时,开发人员可以再根据实际情况来做相应的调整和优化。

总之,YAGNI 原则是一个非常重要的敏捷开发原则,可以帮助开发人员减少不必要的工作,提高开发效率和代码质量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

这套颜值超高UI 框架一定不能错过!!!

大家好,我是前端实验室小师妹!...pc端和移动端UI组件库有非常多,但是小程序适合uniapp比较好用UI组件库就没那么多了,大家常用也就vant了,而今天小师妹就给大家介绍一个基于 uni-app 开发、免费可商用微信小程序...UI框架 图鸟 UI 图鸟 UI 是一款基于 uni-app 进行开发 UI 框架,内含常用表单组件、信息展示组件等,并提供丰富酷炫页面模板。...作者是一位优秀 UI 设计师 / 自由开发者。目前图鸟 UI 以 uni-app 插件方式提供,已经支持发布到 H5 / App 和微信小程序。...特点 包含基础常用布局元素,flex、grid、浮动 完整一体配色体系,包含4种色深模式,同时包含4套渐变配色 300+风格统一图标icon,后续可继续增加 30+精选组件,让开发者可以快速进行开发

58210

神兵利器推荐——你一定不能错过chrome插件

话不多说,下面一个一个推荐,并且附上效果截图。(注意,一定要看完,图中隐藏着很多人梦寐以求大杀器!!!)...前端开发助手:FeHelper 前端开发中使用到各种工具大合集,非常实用。比如常见json美化,编解码,时间相关等等。大部分后端也是用的上。 ?...chrome插件分享利器:Get CRX chrome插件商店里面安装插件是很难找到存放位置。比如上面安装这些,在页面上没有保存为crx文件按钮。...多引擎以图搜图神器:NooBox(二箱) 以图搜图功能能做什么就不多说了,从快播远古时代生存到这个年代老司机,肯定都是懂。...记住几个常用,效率就会极大提升。 不过,可惜是,元旦我成都之旅,大概率要凉凉了。 ? 最后 还有一些也不错,但是因为我使用频率并没有那么高,所以没有在上面的列表中列举出来。

1.5K20

参与国际化项目一定要遵循java命名规范

我经过仔细研究,发现他们都有一个共同点,就是命名规范不太严谨。我对这些在应聘远程项目第一关就被筛选掉了程序员做了一个问卷调查:你都知道哪些java命名规范?...笔者总结了一下java开发中最常用一些命名规范,如果有不足之处,还请各位朋友不吝赐教!如果您觉得本文对您有帮助,期待您能帮忙关注、转发!...一、package命名规范 软件项目的包名称应该是由您公司域名倒序,再加上您项目的名称,均使用小写字母,不能包含其他符号。...与类命名规范一样,使用驼峰命名,首字母应大写。...形容词“会跑”可以是一个接口名称,实现类可以是人、狗、猫。 而使用名词需要具有一定概括性,“爪子”比“猫爪”更像是一个接口名字。

29220

Docker 制作容器镜像时候, 一定不能 All in One 吗?

Docker 制作容器镜像时候, 一定不能 All in One 吗? 本地内容略有争议, 请自行参考。 应用服务业务,怎么选择看自己。 建议点击 查看原文 查看最新内容。...可以这么理解 容器重启相当于机器重启 , 也就是 容器内服务全部重启。因此做镜像时候应该尽量保证服务功能 单一性 和 简单。...但是并不是 绝对。一些时候也可以根据实际情况做一些调整。 如上图, 是一个 nginx 代理 php 服务。...这种情况下, nginx 在配置代理 fastcgi 时, 配置文件中需要提供项目文件(php文件)路径。 而且 nginx 和 php-fpm 所使用项目文件 必须是一致。...在发布时候, 需要将 nginx 和 php-fpm 镜像版本对应起来。个人觉得, 这种情况在管理上代价还是挺高。 另外 nginx 在镜像中承担任务 单一, 仅为代理。

18840

14个提高代码质量好问题

解决一个问题,打开电脑就手撕代码,最终结果往往是各种代码问题,经过一系列迭代后,代码积重难返,最终结果就是推到重来,前期付出都白费,最典型就是现在所谓敏捷,听起来高大上,实际落地其实就是加班,...看到这里,我想你也一定会认为:除了编程,沟通也是一门艺术。...是否遵循经典设计原则和设计思想(SOLID、DRY、KISS、YAGNI、LOD 等)? 设计模式是否应用得当?是否有过度设计? 代码是否容易扩展?如果要添加新功能,是否容易实现?...单元测试是否全面覆盖了各种正常和异常情况? 代码是否易读?是否符合编码规范(比如命名和注释是否恰当、代码风格是否一致等)? 以上是一些通用关注点,可以作为常规检查项,套用在任何代码重构上。...以上共 14 个方面值得打印出来贴在桌子上,作为我们日常写代码一个提示,解决这些问题过程虽然耗时,假以时日,我们一定可以写出非常优秀代码,成为优秀工程师。

38020

这款高颜值、兼容多平台开源项目一定不能错过!!

折线图:通过连续线段来表示数据变化趋势,适用于展示随时间变化数据。 饼图:以圆形扇形形式展示部分与整体比例关系。...散点图:用坐标轴上点来表示两个变量之间关系,有助于观察数据分布模式和相关性。 条形图:类似于柱状图,但是以水平条形来表示数据量或比较不同类别之间数据大小。...面积图:用线条下方填充区域表示数据或占比变化,适用于展示不同类别之间总量和比较。 散点矩阵图:多个散点图组合,用于展示多个变量之间关系和相关性。...热力图:基于颜色密度来表示数据分布和值大小,适用于表达数据密度和热点分布。 雷达图:将不同变量值在同一张图上用多边形辐射状线条表示,用于比较多个变量相对大小。...树状图:用层级结构树形方式展示数据组织关系和部分与整体之间层次结构。

12410

神兵利器推荐——你一定不能错过mac alfred工作流

上一篇介绍了我日常高频使用chrome插件,那就顺便介绍一下mac上最最最能提升效率Alfred工作流吧。...以下是我常用 Alfred workflow 列表:(几乎每天都会用到) 不同插件,可能有不同作者开发版本,下面会给出我一直在用版本,但是你完全可以去选择更适合自己版本。...比如像有道翻译,可以找到很多版本,选择自己喜欢即可。 下面按照顺序一款一款介绍下。...经常使用终端开发者需要快速打开当前路径所在finder目录 下载地址:https://github.com/LeEnno/alfred-terminalfinder Wechat Plugin...mac版本微信客户端插件,支持多种配色方案。

1.5K20

一定不能错过pandas 1.0.0四大新特性

简介 毫无疑问pandas已经成为基于Python数据分析领域最重要包,而就在最近,pandas终于迎来了1.0.0版本,对于pandas来说这是一次更新是里程碑式,删除了很多旧版本中臃肿功能,...新增了一些崭新特性,更加专注于高效实用数据分析,本文就将针对pandas 1.0.0在笔者眼中比较重要特性进行介绍,对于想要完整彻底了解新版本特性朋友可以直接去看官方文档。...2.1 新增StringDtype数据类型 一直以来,pandas中字符串类型都是用object来存储,这次更新带来更有针对性StringDtye主要是为了解决如下问题: object类型对于字符串与非字符串混合数据无差别的统一存储为一个类型...,而现在StringDtype则只允许存储字符串对象 我们通过下面的例子更好理解这个新特性,首先我们在excel中创建如下表格(图2),其包含两列V1和V2,且V1中元素并不是纯粹字符串,混杂了数字...') 图5 则正常完成了数据类型转换,而pandas中丰富字符串方法对新string同样适用,譬如英文字母大写化: StringDtype_test['V2'].astype('string'

61320

系统架构11条原则

基本原则 原则一:价值为王 解析: 价值为王另一种说法叫做YAGNIYAGNI 是 You aren’t gonna need it 缩写。该原则基本含义就是,不应该开发任何当前不使用功能。...先让程序完成最基本功能上线,根据反馈调整和决定下一步迭代。 迭代着去做事情,敏捷开发思路。对于每个功能点,创建里程碑,然后去迭代。...如果不能降低人力成本,反而需要更多的人,那么这个架构设计一定是失败。 稳定性原则 原则八:依赖最简 解释: 依赖原则是去除依赖、弱化依赖、控制依赖。多一个依赖多一分风险。...实在不能弱依赖,比如必须要调用加密存储来获取数据库密码,不然无法连接数据库,可以控制获取密码在服务启动时进行,如果获取不到则服务启动失败,因为现在都是集群部署,一台无法启动不影响整体提供服务。...如果一件事情有可能发生则在生产环境中一定会发生,架构中要做好容错设计。 原则十一:用成熟技术 解析: 不要给别人技术当小白鼠,不要因技术本身问题影响系统稳定。

46920

工作后, 你一定不能错过技术之JDK1.8新特性

在现在企业级开发中, 随着新技术迭代, 越来越多公司开始使用Java8新特性去简化开发, 因此Java8非常值得我们学习....在学习Java8时候, 我们需要了解一下Java8都有哪些主要新特性 函数式接口 Lambda表达式 Stream集合流式编程 新时间日期API等 而在企业开发中, 主要用到便是Lambda..., 因此使用集合流式编程进行简化处理前提是熟练使用lambda表达式 数据源获取 数据源就是数据来源, 从数据源中读取到流中 需要注意是对流中数据操作(删除, 映射, 过滤…)是不会影响数据源数据...* 1.stream获取数据源是串行 * 2.parallelStream获取数据源是并行, 且该方法封装了多线程对数据操作, 效率更高...* map: 对流中数据进行映射,用新数据替换旧数据 * flatMap: 也是元素映射,不过是扁平化映射, 将容器中所有元素取出放到集合中 */

55710

玩这么久 Python ,这些好玩又实用一定不能错过!

,从1开始 [ { 'id': 公交车id, 'lat': 公交车位置, 'lon': 公交车位置, 'next_station_name': 下一站名字, 'next_station_num':...下一站序号, 'next_station_distance': 离下一站距离, 'next_station_arriving_time': 预计到达下一站时间, 'station_distance...': 离本站距离, 'station_arriving_time': 预计到达本站时间, }, ... ] 文章提取器 git clone https://github.com/grangier...梁振英在星期二(12月10日)答问大会开始之际在其演说中道歉,但强调他在违章建筑问题上没有隐瞒意图和动机。...--in-proxy 可选参数,待验证 proxies 列表文件 --out-proxy 可选参数,输出已验证 proxies 列表文件,如果为空,则直接输出到终端 --in-proxy 文件格式和

89600

玩这么久 Python ,这些好玩又实用一定不能错过!

,从1开始 [ { 'id': 公交车id, 'lat': 公交车位置, 'lon': 公交车位置, 'next_station_name': 下一站名字, 'next_station_num...': 下一站序号, 'next_station_distance': 离下一站距离, 'next_station_arriving_time': 预计到达下一站时间, 'station_distance...': 离本站距离, 'station_arriving_time': 预计到达本站时间, }, ... ] 文章提取器 git clone https://github.com...梁振英在星期二(12月10日)答问大会开始之际在其演说中道歉,但强调他在违章建筑问题上没有隐瞒意图和动机。...--in-proxy 可选参数,待验证 proxies 列表文件 --out-proxy 可选参数,输出已验证 proxies 列表文件,如果为空,则直接输出到终端 --in-proxy 文件格式和

1.2K90

优秀程序员 18 大法则

避免创建YAGNI(You aren’t going to need it)原则 只有当你需要时候才去添加额外功能,不需要就不要画蛇添足。...如果阅读人需要大量思考才能理解代码,那么或许这代码还需要被简化。 开/闭原则 软件实体(类,模块,函数等)在扩展时应该开放,在修改时应该关闭。换句话说,你写类大家可以扩展,但不能修改。...为维护者写代码 值得写代码要保证将来一定值得维护。未来你由于经历代码太多,也许再回过头来看这些代码时候,也和其他人一样,已经成为了一个完全陌生人。...遵守标准约定,注释说什么代码就做什么,命名是什么意思代码就是什么意思,尽可能地避免惊讶导致潜在负面影响。 单一职责原则 代码(如类或函数)组成部分执行应该是一个单一明确任务。...拥抱变化原则 这是Kent Beck写一本书副标题,也被认为是极端编程和通用敏捷方法原则。许多其他原则都基于这个理念:你应该期待和欢迎变化。

60550

工作六年后,我对软件开发认知转变

站会(敏捷开发中站立会议)对于跟进团队中新手进度来说,非常有用。 敏捷开发中迭代复盘会,是有其意义,前提是为了纠正过往迭代失误(比如发现一些“这样做真蠢!”...故事),而不是在一些‘敏捷大师’教条下,浪费大家时间。 软件架构比任何东西都要重要。一个好抽象,就算是实现比较拉胯,对于代码来说伤害非常小。...以下是我这一路以来了解到并认可观点: 第一,YAGNI(非必要时不加入新代码), 其次, SOLID(面向对象设计), 第三, DRY(不要重复造轮子),按照这个优先级去写代码。...在大多数情况下,大应用(Monoliths)效果是很好,并不一定要细分成非常复杂微服务。 无脑信奉TDD(测试驱动开发)的人是最糟糕,他们脆弱小脑袋无法处理不同工作流程存在。...Opinions I've picked up along the way YAGNI, SOLID, DRY. In that order.

51320

volatile不能保证程序执行原子性以及只能一定程度上保证有序性

多线程并发编程如何正确执行程序: - 原子性:执行过程要么成功要么失败,比如经典银行转账问题。...- 可见性:多线程并发时,一个线程修改了工作内存中值(主存中值),会立刻改变主存相应地址值,其它线程工作内存值无效,重新获取主存值。...- 有序性:程序执行顺序,单个线程中没有依赖代码,cpu会进行指令重排,使代码执行顺序调换,但是不影响最终执行结果(单线程没有任何问题,多线程就会出现问题) 总结:解决多线程并发问题,需要程序满足上面三个条件才能正确执行...volatile能禁止指令重排序(所以volatile能在一定程度上保证有序性),但是这里只能保证volatile所修饰变量之前程序不会在该变量之后执行,该变量之后代码不会在变量之前执行。...* * 注意: * 1. volatile 不具备“互斥性” * 2. volatile 不能保证变量“原子性” */ public class TestVolatile {

19210

工作六年后,我对软件开发认知转变

站会(敏捷开发中站立会议)对于跟进团队中新手进度来说,非常有用。 敏捷开发中迭代复盘会,是有其意义,前提是为了纠正过往迭代失误(比如发现一些“这样做真蠢!”...故事),而不是在一些‘敏捷大师’教条下,浪费大家时间。 软件架构比任何东西都要重要。一个好抽象,就算是实现比较拉胯,对于代码来说伤害非常小。...以下是我这一路以来了解到并认可观点: 第一,YAGNI(非必要时不加入新代码), 其次, SOLID(面向对象设计), 第三, DRY(不要重复造轮子),按照这个优先级去写代码。...在大多数情况下,大应用(Monoliths)效果是很好,并不一定要细分成非常复杂微服务。 无脑信奉TDD(测试驱动开发)的人是最糟糕,他们脆弱小脑袋无法处理不同工作流程存在。...Opinions I've picked up along the way YAGNI, SOLID, DRY. In that order.

52300

翻译连载 |《你不知道JS》姊妹篇 |《JavaScript 轻量级函数式编程》- 第 1 章:为什么使用函数式编程?

函数式编程人员: 没有任何一个函数式编程者会把变量命名为 x,函数命名为 f,模块代码命名为“zygohistomorphic prepromorphism”。...此外,对你不信任或不明白代码,你将不能确定这些代码是否符合你业务场景。代码运行时也只能祈求好运。 信任是什么意思?...你不需要它 如果你规划一个项目花了很长时间,那么别人一定会告诉你“YAGNI” —— “你不需要它”。这个原则主要来自极限编程,强调构建特性高风险和成本,这个风险和成本源自于项目本身是否需要。...我与很多函数式编程开发人员不同之处在于:你掌握了函数式编程并不意味着你一定得用它。...如果代码写太过复杂,那么无论谁来维护都会对你炫技式故作聪明做法倍感压力。 最好代码是可读性高代码,因为它在正确(理想主义)和必然(正确)之间寻求到了恰到好处平衡。

90650

关于敏捷开发26个心得

我收集各式各样至理名言。最近我一直在研究敏捷软件开发;有收获吗?下面就是能够指导敏捷软件开发团队26条核心原则。 用例一完全能够运行后再开发用例二。...敏捷开发可以帮助我们应对需求在将来不确定,但过去事情也存在不确定性。 测试工作永远不能停下来。 程序每次运行表现都要被评审和记录。 软件设计要以人为本,而不是系统。...也就是我们所说YAGNI – You Aren’t Going to Need It” 。 程序员在编写一个类时喜欢料想:这个类可能在其它地方其它类中会有其它用途用....一个数据成员以前是整数型,但现在有个用例需要它是浮点型,不要害怕去改变它,只要你按步骤:测试,写文档,布署。 删除死代码。 当发现有一大段不能理解代码时我们习惯做法是“让死狗躺在哪”。...更糟糕错误做法是把这些代码注释掉,留下一堆注释码。 注释掉代码一旦发现就该被删掉,不能留到测试时还有、甚至提交到代码库。 添加代码总是容易,删除代码总是困难

71960

地平线张永谦:AI芯片公司一定要搭建自己生态,不能孤军奋战

这暴露出AI企业与客户之间仍然存在着一定隔阂,还未能够深入到行业、理解客户痛点。...一定要搭建自己生态,不能孤军奋战 众所周知,传统芯片企业强大之处在于,其搭建起了强大、无可比拟生态,因此AI芯片企业究竟是否需要向其学习建立自己生态成为了热议话题。...在张永谦看来,答案是肯定:“一定要搭建自己生态,不能孤军奋战。” 他表示,生态简单来说就是企业与合作伙伴通过协作服务下游方。...而由于每个产业分工不同,企业在每个行业都需要有针对性,结合自身能力、优势、人员基因等去搭建适合自己生态。在这一层面,没有捷径、也没有万能钥匙。 从地平线动作来看,其也正在搭建自己生态。...未来他们将沿着这两条路线去持续演进,继续提高芯片处理能力、算法模型兼容性以及各种主流场景处理效果等,会用更先进工艺降低产品功耗、提升性价比。

34630

设计模式之其他原则

如何理解 YAGNI 原则 YAGNI 跟 KISS 说是一回事吗?YAGNI 原则英文全称是:You Ain’t Gonna Need It。直译就是:你不会需要它。这条原则也算是万金油了。...当用在软件开发中时候,它意思是:不要去设计当前用不到功能;不要去编写当前用不到代码。实际上,这条原则核心思想就是:不要做过度设计。...比如,我们系统暂时只用 Redis 存储配置信息,以后可能会用到 ZooKeeper。根据 YAGNI 原则,在未用到 ZooKeeper 之前,我们没必要提前编写这部分代码。...实际上,这样做法也是违背 YAGNI 原则。 从刚刚分析我们可以看出,YAGNI 原则跟 KISS 原则并非一回事儿。...KISS 原则讲的是“如何做”问题(尽量保持简单),而 YAGNI 原则说是“要不要做”问题(当前不需要就不要做)。

26120
领券