工作中遇到解决不了的需求应该怎么办呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
snimstice
V2EX    职场话题

工作中遇到解决不了的需求应该怎么办呢?

  •  
  •   snimstice 2024-07-17 09:57:55 +08:00 5246 次点击
    这是一个创建于 501 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚入职新公司不久,最近公司作为乙方接了个项目,需求是甲方产品经理出的
    有一个需求是把大小不等的卡片(卡片的尺寸是/[123]*[123]/(这个是正则))拖拽放入一个 33 宫格的页面中,比如拖拽的卡片尺寸可能是:13,21....等等等等。如果拖拽的不是 11 的卡片,则需要在 3*3 的宫格中找到可以放置卡片的相邻宫格,并把这些相邻宫格合并起来然后放置卡片。
    弄了两天,尝试了 react-grid-layout 、react-dnd ,好像都没有现成的方案,而且现在也没有思路去解决
    项目的交付时间在 7.31 日,时间非常紧,正常开发也需要周末也加班才能完成
    要继续尝试解决还是找到 leader 说明问题,或者跟甲方产品经理沟通换种交互方式?
    请问这种情况应该怎么办呢? 或者有大佬做过类似需求可以给我点思路吗?

    37 条回复    2024-07-17 18:40:03 +08:00
    SwordSong
        1
    SwordSong  
       2024-07-17 09:59:49 +08:00   6
    摇人啊。当然是先找老大了,老大不就是这个时候用的
    tooyoungtoo
        2
    tooyoungtoo  
       2024-07-17 09:59:57 +08:00
    解决不了早点和 leader 反馈
    ZxxWww
        3
    ZxxWww  
       2024-07-17 10:02:05 +08:00
    先和 leader 讨论,根据 leader 意见再决定是否做下去或者和甲方沟通。这种事情千万不能拖,因为你 DDL 特别紧,如果你到 DDL 前几天才和 leader 或者甲方说做不了,那只能是开发背锅
    asLw0P981N0M0TCC
        4
    asLw0P981N0M0TCC  
       2024-07-17 10:02:47 +08:00
    如果确实有意思 确实这个需求很不错 那我觉得牺牲点自己平常的时间研究下学习下 挺得劲的 要是很垃圾的需求 可以有更好的实现方式就商量用别的方式吧
    kxg3030
        5
    kxg3030  
       2024-07-17 10:04:48 +08:00
    先问 gpt ,如果它也不会就砍需求,需求砍不了就准备砍人
    ajan
        6
    ajan  
       2024-07-17 10:07:33 +08:00
    早点和 leader 反馈
    sagaxu
        7
    sagaxu  
       2024-07-17 10:10:38 +08:00   1
    你是 CTO 吗?解决不了尽早向上求助。
    MoYi123
        8
    MoYi123  
       2024-07-17 10:16:05 +08:00
    1. 向上报告
    2. 怎么解决这个问题: 是不是和生化危机 4 的背包整理差不多的问题? 用扫描线 DP 就行.
    luckyrayyy
        9
    luckyrayyy  
       2024-07-17 10:18:31 +08:00
    把问题抛出去之后,首要责任人就不是你了,天大的问题有领导顶着
    estk
        10
    estk  
       2024-07-17 10:22:06 +08:00 via iPhone
    需求描述得清楚的话,gpt 应该可以生成 react 代码
    coderluan
        11
    coderluan  
       2024-07-17 10:32:36 +08:00   1
    需要解决不了的需求肯定应该上报 leader ,问题是你不确定这个需求是解决不了的,只看描述的话,这个算法并不是很难吧,而且最重要的,你这就 9 个格子,枚举都枚举的完吧。
    LavaC
        12
    LavaC  
       2024-07-17 10:35:44 +08:00
    总共 3x3 ,这简单啊。先写一个函数判断从[x,y]位置能不能放下[w,h]的物体,确定拖拽目标点,从目标点开始判断是否能放下卡片,不符合就递归执行 dfs(x+1,y),dfs(x-1,y),dfs(x,y+1)....,直到得到最早能放下的坐标或不能放下的信号。
    印象里 leetcode 有很多解法相似的图论问题,不懂可以去看几眼。
    littiefish
        13
    littiefish  
       2024-07-17 10:39:50 +08:00 via iPhone
    搞不定就找你上司,是最优解
    BeforeTooLate
        14
    BeforeTooLate  
       2024-07-17 10:41:24 +08:00
    >3*3 的宫格中找到可以放置卡片的相邻宫格,并把这些相邻宫格合并起来然后放置卡片
    这条是啥意思,一下子没明白。相邻的宫格合并起来?方便的话 OP 把整个需求再整理一份完整的发出来么,想学习学习。

    ps.工作中遇到需求自己认真思考过还是做不出来可以找更高层级的技术请教,先完成项目,后面再总结即可。
    tool2dx
        15
    tool2dx  
       2024-07-17 10:41:44 +08:00
    客户 20%的困难需求,最后占用了开发 80%的时间。

    不行就摇人,看描述也不是完全不能解决的问题,就是费工时。
    snarkprayer
        16
    snarkprayer  
       2024-07-17 10:59:48 +08:00
    我也没太看明白,是类似于生化危机背包那样的操作么
    supuwoerc
        17
    supuwoerc  
       2024-07-17 11:02:32 +08:00
    yellowsky
        18
    yellowsky  
       2024-07-17 11:06:40 +08:00
    如果还在试用期,那自己可以先找自己认识的厉害的朋友或前同事帮忙,请对方吃饭。如果已过试用,那果断把问题抛出来,让上面帮忙解决。
    corcre
        19
    corcre  
       2024-07-17 11:08:17 +08:00
    解决不了先摇人, 早摇人早解决, 解决不了的可以跟客户沟通改方案, 别拖到 deadline, 对大家都没好处
    linshuizhaoying
        20
    linshuizhaoying  
       2024-07-17 11:09:47 +08:00
    你只是的大头兵 肯定摇人啊 不好实现的就改需求
    CloudMx
        21
    CloudMx  
       2024-07-17 11:10:33 +08:00
    向上反馈.
    feiyan35488
        22
    feiyan35488  
       2024-07-17 11:32:16 +08:00
    @CloudMx 要学会向上管理
    piecezzz
        23
    piecezzz  
       2024-07-17 11:52:42 +08:00
    最忌讳的是自己死抗,你解决不了的问题要摇人一起看看。并不是抛出去,你还是得主导这个问题,让同事给建议和指导。
    MRG0
        24
    MRG0  
       2024-07-17 11:54:01 +08:00
    我现在做的就是类似的需求,vue-grid-layout 搞了好久。实在不行就修他源码
    shawnsh
        25
    shawnsh  
       2024-07-17 13:30:03 +08:00 via Android
    产品真正的意图你理解了吗?产品抄的哪家的功能?具体难点是啥?能否让产品换个容易点的方案
    Sawyerhou
        26
    Sawyerhou  
       2024-07-17 14:05:05 +08:00
    需求没完全看懂,不能确定理解的对不对,
    建议 op 以后发帖稍微排版一下。

    可以试试穷举法,一共就 9 宫格,可能性非常有限,全部列出来不难。

    所有卡片总面积超过 9 一定放不下。

    面积为 2x2=4 ,2x3=6 ,3x3=9 的大尺寸卡片,
    超过 1 个肯定放不下。

    面积为 1x3=3 ,1x2=2 ,1x1=1 的小尺寸卡片,
    一定能放下。

    先判断能否放进去,
    如果能再判断是否有大尺寸卡片,
    如果有先把大尺寸卡片放入,
    然后放小尺寸卡片。
    murmur
        27
    murmur  
       2024-07-17 14:07:14 +08:00
    这需求我们几年前就做完了,只不过我们做的不是最优解,我们的卡片也只有 1x1 1x2 2x1 三种尺寸,而且 1x1 占 80%以上
    Steven9906
        28
    Steven9906  
       2024-07-17 14:07:14 +08:00
    就是像一个背包整理功能吗?
    Sawyerhou
        29
    Sawyerhou  
       2024-07-17 14:23:38 +08:00
    @Sawyerhou 突然反应过来,你是不是想让大家推荐合适的 QT 和 UI 包?
    iOCZS
        30
    iOCZS  
       2024-07-17 14:53:47 +08:00
    这种不得用绝对布局么?
    meeop
        31
    meeop  
       2024-07-17 15:21:27 +08:00
    一共就 9 个格子,用 js 遍历一遍计算放置位置
    布局的话,网格布局应该可行,比如 2*2 的卡片就要把放置位置的格子连起来,网格布局支持的,不行就暴力一点用绝对布局,一共也就 9 个格子需要设置位置呀
    dongzhuo777
        32
    dongzhuo777  
       2024-07-17 15:38:59 +08:00
    看起来好像游戏里面的背包整理。就是有空格的自动合并然后能塞满。。好像很多游戏里面的都有这个功能。
    这种肯定有成熟的算法,问 gpt 吧。
    showonder
        33
    showonder  
       2024-07-17 16:22:51 +08:00
    这个设计不算不合理,只是你没做过,不知道怎么做需要更长时间
    一和上级沟通技术方案和项目时间
    二和甲方沟通需求难度和对项目的负面影响,并提供相似的备选方案
    yongp
        34
    yongp  
       2024-07-17 16:47:42 +08:00
    解决不了问题,就把提出问题的人解决掉
    19cm
        35
    19cm  
       2024-07-17 17:26:46 +08:00
    可以自己用类原生操作 dom 手写,不过费时间
    seeu2ex
        36
    seeu2ex  
       2024-07-17 18:32:06 +08:00 via iPhone
    @tool2dx 最怕的就是这种,最后搞得天天加班
    otakustay
        37
    otakustay  
       2024-07-17 18:40:03 +08:00
    本质上这是个纯数据结构问题,不要考虑界面怎么做,先用二维数组之类的结构,把算法实现了。我个人是觉得做做这种东西挺好的,锻炼自己的逻辑能力,也不是什么高深的玩意
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2611 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:01 PVG 23:01 LAX 07:01 JFK 10:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86