刚入职新公司不久,最近公司作为乙方接了个项目,需求是甲方产品经理出的
有一个需求是把大小不等的卡片(卡片的尺寸是/[123]*[123]/
(这个是正则))拖拽放入一个 33 宫格的页面中,比如拖拽的卡片尺寸可能是:13,21....等等等等。如果拖拽的不是 11 的卡片,则需要在 3*3 的宫格中找到可以放置卡片的相邻宫格,并把这些相邻宫格合并起来然后放置卡片。
弄了两天,尝试了 react-grid-layout 、react-dnd ,好像都没有现成的方案,而且现在也没有思路去解决
项目的交付时间在 7.31 日,时间非常紧,正常开发也需要周末也加班才能完成
要继续尝试解决还是找到 leader 说明问题,或者跟甲方产品经理沟通换种交互方式?
请问这种情况应该怎么办呢?
或者有大佬做过类似需求可以给我点思路吗?
![]() |
1
SwordSong 52 天前 ![]() 摇人啊。当然是先找老大了,老大不就是这个时候用的
|
![]() |
2
tooyoungtoo 52 天前
解决不了早点和 leader 反馈
|
3
ZxxWww 52 天前
先和 leader 讨论,根据 leader 意见再决定是否做下去或者和甲方沟通。这种事情千万不能拖,因为你 DDL 特别紧,如果你到 DDL 前几天才和 leader 或者甲方说做不了,那只能是开发背锅
|
![]() |
4
qwertyzzz 52 天前
如果确实有意思 确实这个需求很不错 那我觉得牺牲点自己平常的时间研究下学习下 挺得劲的 要是很垃圾的需求 可以有更好的实现方式就商量用别的方式吧
|
![]() |
5
raviscioniemeche 52 天前
先问 gpt ,如果它也不会就砍需求,需求砍不了就准备砍人
|
![]() |
6
ajan 52 天前
早点和 leader 反馈
|
![]() |
7
sagaxu 52 天前 ![]() 你是 CTO 吗?解决不了尽早向上求助。
|
![]() |
8
MoYi123 52 天前
1. 向上报告
2. 怎么解决这个问题: 是不是和生化危机 4 的背包整理差不多的问题? 用扫描线 DP 就行. |
![]() |
9
luckyrayyy 52 天前
把问题抛出去之后,首要责任人就不是你了,天大的问题有领导顶着
|
![]() |
10
estk 52 天前 via iPhone
需求描述得清楚的话,gpt 应该可以生成 react 代码
|
![]() |
11
coderluan 52 天前 ![]() 需要解决不了的需求肯定应该上报 leader ,问题是你不确定这个需求是解决不了的,只看描述的话,这个算法并不是很难吧,而且最重要的,你这就 9 个格子,枚举都枚举的完吧。
|
![]() |
12
LavaC 52 天前
总共 3x3 ,这简单啊。先写一个函数判断从[x,y]位置能不能放下[w,h]的物体,确定拖拽目标点,从目标点开始判断是否能放下卡片,不符合就递归执行 dfs(x+1,y),dfs(x-1,y),dfs(x,y+1)....,直到得到最早能放下的坐标或不能放下的信号。
印象里 leetcode 有很多解法相似的图论问题,不懂可以去看几眼。 |
![]() |
13
littiefish 52 天前 via iPhone
搞不定就找你上司,是最优解
|
![]() |
14
BeforeTooLate 52 天前
>3*3 的宫格中找到可以放置卡片的相邻宫格,并把这些相邻宫格合并起来然后放置卡片
这条是啥意思,一下子没明白。相邻的宫格合并起来?方便的话 OP 把整个需求再整理一份完整的发出来么,想学习学习。 ps.工作中遇到需求自己认真思考过还是做不出来可以找更高层级的技术请教,先完成项目,后面再总结即可。 |
![]() |
15
tool2dx 52 天前
客户 20%的困难需求,最后占用了开发 80%的时间。
不行就摇人,看描述也不是完全不能解决的问题,就是费工时。 |
![]() |
16
snarkprayer 52 天前
我也没太看明白,是类似于生化危机背包那样的操作么
|
![]() |
17
supuwoerc 52 天前
|
![]() |
18
yellowsky 52 天前
如果还在试用期,那自己可以先找自己认识的厉害的朋友或前同事帮忙,请对方吃饭。如果已过试用,那果断把问题抛出来,让上面帮忙解决。
|
![]() |
19
corcre 52 天前
解决不了先摇人, 早摇人早解决, 解决不了的可以跟客户沟通改方案, 别拖到 deadline, 对大家都没好处
|
20
linshuizhaoying 52 天前
你只是的大头兵 肯定摇人啊 不好实现的就改需求
|
21
CloudMx 52 天前
向上反馈.
|
22
feiyan35488 52 天前
@CloudMx 要学会向上管理
|
23
piecezzz 52 天前
最忌讳的是自己死抗,你解决不了的问题要摇人一起看看。并不是抛出去,你还是得主导这个问题,让同事给建议和指导。
|
![]() |
24
MRG0 52 天前
我现在做的就是类似的需求,vue-grid-layout 搞了好久。实在不行就修他源码
|
![]() |
25
shawnsh 52 天前 via Android
产品真正的意图你理解了吗?产品抄的哪家的功能?具体难点是啥?能否让产品换个容易点的方案
|
![]() |
26
Sawyerhou 52 天前
需求没完全看懂,不能确定理解的对不对,
建议 op 以后发帖稍微排版一下。 可以试试穷举法,一共就 9 宫格,可能性非常有限,全部列出来不难。 所有卡片总面积超过 9 一定放不下。 面积为 2x2=4 ,2x3=6 ,3x3=9 的大尺寸卡片, 超过 1 个肯定放不下。 面积为 1x3=3 ,1x2=2 ,1x1=1 的小尺寸卡片, 一定能放下。 先判断能否放进去, 如果能再判断是否有大尺寸卡片, 如果有先把大尺寸卡片放入, 然后放小尺寸卡片。 |
![]() |
27
murmur 52 天前
这需求我们几年前就做完了,只不过我们做的不是最优解,我们的卡片也只有 1x1 1x2 2x1 三种尺寸,而且 1x1 占 80%以上
|
![]() |
28
Steven9906 52 天前
就是像一个背包整理功能吗?
|
30
iOCZS 52 天前
这种不得用绝对布局么?
|
![]() |
31
meeop 52 天前
一共就 9 个格子,用 js 遍历一遍计算放置位置
布局的话,网格布局应该可行,比如 2*2 的卡片就要把放置位置的格子连起来,网格布局支持的,不行就暴力一点用绝对布局,一共也就 9 个格子需要设置位置呀 |
32
dongzhuo777 52 天前
看起来好像游戏里面的背包整理。就是有空格的自动合并然后能塞满。。好像很多游戏里面的都有这个功能。
这种肯定有成熟的算法,问 gpt 吧。 |
![]() |
33
showonder 52 天前
这个设计不算不合理,只是你没做过,不知道怎么做需要更长时间
一和上级沟通技术方案和项目时间 二和甲方沟通需求难度和对项目的负面影响,并提供相似的备选方案 |
34
yongp 52 天前
解决不了问题,就把提出问题的人解决掉
|
![]() |
35
tianzi123 52 天前
可以自己用类原生操作 dom 手写,不过费时间
|
![]() |
37
otakustay 52 天前
本质上这是个纯数据结构问题,不要考虑界面怎么做,先用二维数组之类的结构,把算法实现了。我个人是觉得做做这种东西挺好的,锻炼自己的逻辑能力,也不是什么高深的玩意
|