富途牛牛api_k牛刮毛是改善API的好方法

富途牛牛api

k牛刮胡(不可数)

  1. (惯用的)任何显然无用的活动,通过允许您克服中间的困难,可以解决更大的问题。
  2. (惯用的)为使有意识或无意识地拖延更大但更有用的任务而进行的有用程度较低的活动。

WiktionaryYak Shaving术语的两种解释都是对大多数重构工作的绝对准确描述。 此gif可以描述重构时的Ya牛刮毛,它显示了您想更换灯泡时发生的情况:

灯泡

但是,在开发API时,执行实际的Yak Shaving(当然,只有第一种解释)并不是一个坏主意。 让我们看一个示例,为什么从日常维护jOOQ开始

任务

对于jOOQ 3.6,我想实现一个非常简单的功能。 功能#2639:将存储过程OUT值添加到DEBUG日志输出中 。 这根本不是一个重要的功能,但是对于许多jOOQ用户而言无疑是非常有用的。 这个想法是,每次在激活DEBUG日志的情况下运行存储过程时,都会获得OUT参数和过程调用一起记录的信息。 这是一个可视化效果:

调试日志

现在,实际的实现将非常容易。 现有LoggerListener中只有大约10行代码已经负责记录所有其他内容。 但是有一些警告,让我想起了上面的灯泡更改gif:

显然无用的活动

  1. 无法访问jOOQ 例程的RETURN_VALUE元信息
  2. 没有简单的方法可以通用地访问例程IN和OUT值
  3. 生命周期事件模拟了在jOOQ中提取OUT参数的时刻
  4. 没有办法很好地格式化Routine OUT参数

这感觉很熟悉吗? 需要重构!

@lukaseder有人发送给我解释它。 pic.twitter.com/ZBr06UlAir

— Jason Herr(@herr_jason) 2015年3月2日

现在,整个实现隐藏在jOOQ的内部。 如果用户以一种或另一种方式被黑了,那对用户来说并不重要。 例如,显然RETURN_VALUE元信息可以通过内部重构访问,IN和OUT值也是如此。 还有其他生命周期事件也可能起作用,并且格式化很容易重新实现。

但这是一个流行的API,许多用户可能会使用更干净的解决方案而受益。 因此,为什么我们不简单地重构和实现:

  1. 添加一个公共Routine.getReturnParameter()方法
  2. 添加公共Routine.getValue()和setValue()方法
  3. 添加ExecuteListener.outStart(ExecuteContext)和outEnd(ExecuteContext)以捕获对常规OUT参数的获取
  4. 添加Routine.outRecord()和Routine.inRecord()以将例程作为记录查看”

事情是:

API实现者是第一个API使用者

很难预见API用户的真正需求。 但是,如果您正在实现API(或仅仅是功能),并且发现缺少的东西,请务必考虑将缺少的东西添加到公共API中。 如果它在内部对您自己有用,那么对其他许多人可能更有用。 这样,您便可以将一个不错的功能变成5,从而扩大了用户的喜爱程度。

不要误会我的意思。 这并不意味着每一个小功能都需要公开公开,相反。 但是,某些事情在阻止您-维护人员无法编写干净的代码,这可能表明其他人与您实施了相同的变通办法。 而且他们不会明确要求您!

不相信吗? 这是对用户反馈的完全主观的分析:

  • 0.2%–嘿,这是一个很酷的产品,我想帮助所有者改善它,我将提供一个描述性强,建设性的功能要求,并在接下来的5周内参与以实施该功能。
  • 0.8%–任何花花公子。 使这项工作。 请。
  • 1.3%–任何花花公子。 使这项工作。 尽快!
  • 4.0%– WTF你们错了吗? 你至少没有想过一次吗?
  • 4.7%–好的,我现在要写下有关该产品的完全不知情的rant语,我非常讨厌。 这使我的生活完全悲惨
  • 9.0%–哦,这行不通。 回家吧反正是17:00
  • 80.0%–哦,好的,昨天还行不通。 我们回家吧。 反正是星期五16:00

现在,这个列表中的大多数并不是完全认真的,但是您明白了。 可能有0.2%的用户/客户爱您并积极与您互动。 其他人可能仍然爱你或至少喜欢你,但他们不会参与。 您必须猜测他们的需求。

所以。 底线:

如果您需要它,他们可能会需要它。 开始Ya牛剃须!

翻译自: https://www.javacodegeeks.com/2015/03/yak-shaving-is-a-good-way-to-improve-an-api.html

富途牛牛api

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值