• 分享我的一道电商需求分析的面试题!


    前言

           做电商项目有5、6年了,从小的到大的,从复杂的到简单的,基本都涉及过。作为技术开发人员,在做电商项目总会遇到一些实际的问题,多数技术人员都会把项目可能遇到的问题往完美考虑和设计,也因为这样,多数的技术人员经常会因为一个并不是很重要的问题花了很多时间。最终导致项目进度拖慢了。

           面对有点经验的应聘者,我都会提出这道题,虽然不算难题,但是对于一些面试者来说,在需求分析方面还大都不能很透彻分析清楚.而对我就平常喜欢拿一些开发中的一些实际遇到的小技术点来考应聘者;

    面试问题:客户下单,怎样给每个订单生成不重复的随机6位纯数字券号+随机4位纯数字密码?

    这个问题问得并不完善,还有很多不确定因素,这个问题有几个目的:

    1.面对不确定的需求时,应聘者是否会主动反问,把不确定的问题搞清楚,还是已开始埋头思考分析;

    2.是否能把这个需求真正了解清楚透彻;

    3.不管能不能给出一个完美的方案,但是否有一个比较清析分析的思路;

            言归正传,下面要介绍的是我在开发团购项目中遇到的这个技术问题,与大家探讨分享,希望有高人可以提供更完美的解决方案。

     需求描述:

    顾客购买团购成功后,团购网会自动发送一个短消息给顾客,短消息的内容里有一个券号(6位数字)和一个密码(4位数字),通常是这样的。当然也有例外。顾客凭此券号和密码便可到商家消费。

    1.团购网有N多商家的团购

    2.每天有N多会员下单购买团购

    3.一个团购可能会在网上卖几个月甚至更久

    3.会员购买团购后可能会过一两个月甚至更长时间才去消费

    技术问题:

    怎样生成6位数字的券号和4位数字密码?

    按以上的需求描述我们不难发现,里面的隐性需求是:

    1.当前券号和密码必须是唯一的;

      (1)至少在一个商家的未消费券号里是唯一的;

      (2)或至少在目前所有未消费的券号里是唯一的;

    2.券号和密码必须是随机无规律的;

    解决方案:

    1.生成所有6位数的券号库,每取一个即登记使用一个,密码随机生成4位,当券号被登记为消费时即在券号库中恢复其状态为未使用;

    2.随机生成6位数的券号和密码,然后在使用过的券号和密码中判断是否存在,如果存在则重新生成,直到不存在为止;

    3.在数据库设计时,把券号和密码字段做联合唯一约束.插入如果出错时,则再重新生成券号和密码;

    以上解决方案都有优缺点,请大家拍砖....如果是你,你会怎样分析,有什么更好的解决方案呢?

  • 相关阅读:
    如何正确设置数据库连接池的大小
    spring生命周期
    Spring高级进阶:BeanFactoryPostProcessor
    Spring Bean的生命周期(非常详细)
    表达式求值相关算法
    golang 命令行参数解析 hflag
    golang 标准命令行解析库 flag
    docker consul 环境搭建
    docker etcd 环境搭建
    mysql 事务
  • 原文地址:https://www.cnblogs.com/Sofeng/p/dianshang.html
Copyright © 2020-2023  润新知