接口你准备好了么?

相信大家都听说过这个只有程序员才能听懂的笑话。一个女程序员说,下周就是我男朋友的生日了,他要来我这,他也是程序员,大家说我送给他什么礼物最好。网友的评论是:告诉他,接口已经准备好。

上面这个笑话却是听起来听funny的。这让我联想到,我们在实际的项目中,应该什么时候提供接口?

说道这里大家会想到的是什么?当然是代码抽象三元则了:DRY、YAGNI、Rule Of Three。简单的介绍下这三个。DRY, Don‘t Repeat Yourself,是面向对象设计原则中经常被用到的原则之一,他的意思很简明,不要重复自己,意指在开发过程将通用的功能提出来作为接口供别人调用,避免代码重复。这个听起来很有道理,想一下,一旦我更改了需求,有时候我仅需要更改底层的接口就好了。

YAGNI,You Aren't Gonna Need It,是敏捷开发中提倡的,叫做你不会需要他了,意指你自以为有用的功能,实际上都是用不到的。用于敏捷开发过程中,快速的完成功能。这里听起来他和DRY是一个死对头,一个提倡对象的抽象话,找到通用的接口,另外一个则倡导不要把精力放在抽象化上面,你只要完成你自己的就可以了。但是反观这两种理论都有自己的道理,于是出现了另外一个角色:Rule Of Three。

Rule Of Three,我称它为第三次原则,意指当这个功能第三次被用到的时候,你将有必要把他做成一个接口。理由是如果一个功能或者函数被用到了两次,那么没有必要花时间去抽象它,但是当这个接口第三次被调用的时候,你将考录该把这个接口抽象化了。

上面说了很对是否应该抽象话的问题,相信大家已经有些了解了。下面我说下我个人的意见。

做Code Review的时候,经常会听到这样的声音,我这样子(可能增加了复杂性)做是考虑到以后有人会用,所以提供了一个比较通用的接口。我们先分析一下这样的情景,以后会用到是什么时候?我清楚的记得,我为了通用性,曾把一个布尔类型硬是存成了字符串类型,可是结果是到现在也没有出现当时我考虑到的别人会用的情况。其次,一个功能可以有不止一个的解决方法,我们又如何确保我们提供的接口在被人用的时候,他会觉得用的很舒服。

说了这些,好像都是在只刮风不下雨,那我们到底该什么时候提供接口呢?我的回答是,最近一、两个迭代会用到的时候。比如我们在做一个前台的排序,用户可以改变某一类型的几个子模块的显示顺序。而这个功能在这次迭代中有用到,且不止一次,但是在不同的卡上。那我就完全有必要把它抽象程一个接口,方便调用。可以看到这个迭代中我们会用到它不止一次,那我完全有理由去做。而且更让人惊呆的是,我们的下一个迭代竟然又有两三个地方用到了排序,而且大家用这个接口很容易的实现了功能,毕竟我向大家提到过这个接口的使用,可以看出我抽象话它是正确的。

总之来说,抽象不抽象是看到底有没有具体的需求,一味的空想给人以空穴来风的感觉。到底有没有用谁也不知道,只是觉得可能有用。所以当你男朋友生日快到来的时候再准备接口吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值