如何在 4 天时间内开发一款薅羊毛神器,并完成交付?

by June 2022-05-07

天气升温,购物欲回暖,花式促销活动催热消费市场,又是一波剁手的节奏!此时清空满满的购物车,成了“剁手党”们最快乐的事。

但最近几年大家纷纷表示,满怀期待的各类促销活动,却总是被商家购物优惠“算法”搞得头疼不已,优惠从一开始单纯的打折,演变成如今各式各样的花式套路和文字游戏:付定金、跨店满减、商品券、购物券、红包、小赠品……一套动作下来再对各商家进行比价。对于“打工人”来说付出大量的时间和精力研究优惠券,简直就是一场拼智力、拼时间、拼精力的智力游戏。 

吐槽的可不止我们“打工人”,其实商家也有自己的烦恼,比如经常要琢磨“我的优惠劵折扣力度这么大,怎么没人来买呢?怎么用优惠券吸引更多的用户来我的小店?又应该如何将优惠券推送给需要的人呢? 

对此,不少准备在促销活动中薅羊毛的小伙伴,只能自己翻阅各种优惠网站,或者加入各种福利社群,结果更焦虑了……商家此时其实迫切需要一款能够采集用户偏好的工具,根据用户喜好个性化推送,实现千人千面,最好再有自主训练模型功能的加持,让工具越用越好用! 

哪里有痛点哪里就有解决方案,想要满足这样的需求即需要首先将市面上的海量优惠信息归总;其次,选取合适的优惠信息,推送给合适的目标用户;最后将用户消费优惠信息,提供给行为数据,并反馈给推荐算法。

这样看似繁琐复杂的过程,是怎样被开发出来,又是如何在4天时间内完成交付的呢?带着这样的疑问和好奇,我们一起来看看这位数据工程师是如何完成的吧!首先他通过数据采集/导入,数据清洗,数据分析、标签,数据结果入库,数据服务,页面交互,再通过用户反馈的数据迭代模型,进行数据分析并打上标签即可,如此一套动作齐活!

架构图

操作步骤


最终,用户只需要在页面中点击自己喜欢的商品,并进入相应品类的商场,简单几步,后台数据就会推荐给您最具性价比的商品,体验效果如图。

图片

体验一下薅羊毛的快乐吧!(建议PC端浏览)https://2fc9d4e8-dbc7-5e60-b6d3-df4b1bcf18ee-0.online.linktimecloud.com/#/mall

那么,这样一款实用工具其架构及原理又是如何的? 

首先,我们来看看产品功能。通过读取Hive中的商品原始数据表,对数据进行清洗,去掉不合规范的数据,去掉重复商品的数据。并增加商品UUID列,增加商品所属店铺列。 

商品标签计算原理,即商品性别标签。女性的判断方法是类目为女性的商品,再判断商品名称里面不包含‘男’关键字或者包含’男女’关键字;男性的判断方法是类目为男性的商品或者商品名称里面包含’男女’关键字。 

商品消费层级标签,主要公式为判断商品价格在当前三级类目中 (最大价格-最低价格)/ 4 的四个区间中的哪一个,根据所属的不同区间进行相应标签处理。 

商品折扣等级标签,主要公式为判断商品折扣在当前三级类目中 (最小折扣-最大折扣)/ 4 的四个区间中的哪一个,根据所属的不同区间进行相应标签处理。 

综上来看,4天完成这样一个看似并不简单的大数据项目,并不是做梦。 

为什么会开发这样一款产品呢?那当然是需求之多,亟需快速解决。帮助商家和消费者的同时,也顺便彰显一下作为数据工程师的价值所在嘛。 

这样一款实用且能够快速落地的端到端智能商品推荐系统,在智领云Web前端开发经理Justin的带领下仅用4天5人就开发出了,而且是在无需加班的情况下轻松搞定,想一想都觉得不可思议吧?要知道4天时间勉强开发出一款小程序尚且困难,完成如此复杂的大数据项目在Justin眼里却并非难事。 

而这样的低成本投入,对于小团队乃至个人都是十分友好的。作为低预算团队,自建集群或购买服务器来搭建这样的服务显然是不明智的。那么如果做到4天5人即可轻松开发出这款商品推荐系统【薅羊毛神器】,这就多亏了智领云自主研发的一款云原生DataOps大数据平台产品–BDOS Online,其B/S 架构、SaaS 模式,内建大数据流水线所必需的工具库,即可轻松创建一款轻量级的 DataOps Pipeline 。 

智能商品推荐系统【薅羊毛神器】连接了人、商品、场景,在合适的场景将合适的商品推荐给精准的人群,更连接虚拟与现实,将现实生活中的人、商品、场景与数字世界做映射。更多创意场景与项目等你来体验。 

说到底,越来越多的开发人员想要在短时间内快速开发出实用且能够落地的项目,为企业作出贡献并提升自己的价值。但是,无奈很多开发者徒有想法,却没有工具、平台与时间。

现在机会来了!在BDOS Online中所有的创意项目都将被快速实现,限时28天免费试用,扫描下方二维码快来尝试一下吧!

留言

评论

${{item['author_name']}} 回复 ${{idToContentMap[item.parent] !== undefined ? idToContentMap[item.parent]['author_name'] : ''}} · ${{item.date.slice(0, 10)}} 回复

暂时还没有一条评论.