ifttt:优秀程序员必备知识:你听过IFTTT吗?

有过营销业务开发经验的程序员,一定遇到过类似这种需求:

“当用户关注了xx官方号后,我们就给他发张优惠券”

这种需求经过抽象,可以转化为一种范式:当满足某种条件时,就触发某种动作。这个范式就是我们今天要聊的IFTTT的基本理念。

01 什么是IFTTT?

IFTTT,是一个新生的网络服务平台,通过其他不同平台的条件来决定是否执行下一条命令。即对网络服务通过其他网络服务作出反应。IFTTT得名为其口号“if this then that”。

--维基百科

以上就是来自维基百科对于“IFTTT”的定义,IFTTT的念法类似英语单词“gift ”的“ift”,即不要发“g”的音。

简而言之,IFTTT就是基于条件触发的任务,即“若xx发生yy行为,就执行zz动作”。其中,每一个可以发生行为的场景叫做一个Channel,触发的条件叫Triggers,之后执行的任务叫Actions,这一整套流程就叫Recipes

IFTTT的基本理念是很简单的,但是它可以实现“由简单组成的复杂”,即由众多简单的IFTTT流程相互衔接,组成跨平台、跨设备的复杂流程。

02 常见应用

国外有一款就叫“IFTTT”的App,它就是我们上面所说的IFTTT的理念的应用。它对接了很多互联网产品(就是前面所说的Channel),比如Twitter、Facebook、Amazon Alexa等。可以实现诸如 “我在 Twitter 上为一张照片点赞后,就将这张照片自动存入我的 Dropbox(网盘服务)上” 这种跨App的任务。

另一款典型的IFTTT应用,就是iOS自带的“快捷指令”中的“自动化”。自动化是一种由事件激活的快捷指令,您可以使用“快捷指令” App 设置个人或家庭自动化,然后通过到达、离开、更改 iPhone 上的设置和一天中的某个时间等事件触发自动化快捷指令。

03 技术实现

回到我们文章开头的那个需求案例,这是互联网常见的营销功能。通过IFTTT的理念,我们可以将它转化为这种范式:

首先,我们按照IFTTT的规范对业务进行建模,分为Channel、Trigger和Action三层,整体构成一个Recipe:

  • Channel
    Channel层在营销业务中的作用是保存和管理用户行为数据,它定义了用户行为的元数据结构,包括行为类型、对象和时间等。Channel层是营销IFTTT的基石,Trigger和Action均是基于用户行为数据进一步抽象业务逻辑的。

  • Trigger
    Trigger层是业务上自定义的触发事件,与业务息息相关,可能是新增粉丝了、浏览过的商品降价了或者是参加的抽奖活动开奖了等。当Trigger触发后,IFTTT会根据Trigger类型和配置的行为类型调用Action层进行处理。

  • Action
    Action层是营销IFTTT的执行动作,可以是给用户发优惠券、Push信息、发权益或者其他定制逻辑。Action一般是标准化、可插拔的组件,业务上可以实现不同营销策略的组合或者通过A/B Test来测试营销策略的效果。

基于这个业务抽象,相应的营销业务的技术架构一般如下:

整体技术方案就是按照前面业务建模的结构图进行技术实现的选型和细化,补充依赖的技术组件。这样一来,我们就通过IFTTT标准化协议为这一类营销需求提供了通用的技术解决方案。

04 结语

正如Haskell 语言的设计者之一 Paul Hudak所说,抽象能力是编程中最重要的能力。

Abstraction, abstraction, abstraction are the three most important things in programming.

IFTTT就是一种最典型的抽象能力的体现,它将千万种看起来变化多端的流程需求转化为了一种由Channel、Trigger、Action三种元素组成的简单范式,极大地提升了研发效率。因此,当我们自嘲“搬砖”的时候,应该多思考如何改进技术实现方案,将体力劳动转化为脑力劳动,通过抽象将复杂的事情简单化。

欢迎关注我的公众号:

相关推荐

相关文章