前端三面面经
完整信息
本篇目录
#秋招面试记录# 1.假设就是现在我现在有一个比较典型的这种真实任务的一些任务场景,比如说我是作为一个用户,我在你们平台,我想要生成一个推荐卡,或者推生成一个创意内容,对吧?那你能跟我大概介绍一下,就从用户在前端点击完,任务就是我们的消息发送之后,然后它一直到最终我们完成我的卡片或者说我的图片生成的这整个它的链路,你能大概跟我介绍一下吗?啊,以及我们在作为前端,在这个环节里面可能会有哪些组件?
2.那整个前端就是整个前端的架构,你感觉它会是什么样子的?
3.哦,那我理解就是作为一个我们这样的 agent 任务,它肯定是一个有状态的一个任务,对。然后它我理解它不是个简单的,就是用户请求完之后,它就是就是要么就是pending 要么就 running running 那我想问一下,就是这在整个任务的 pipeline 里面或者 workflow 里面,然后哪些状态是应该是前端去做的维护,然后哪一些状态应该是 bff 维护的,然后以及哪些状态应该是我们后端agent runtime 去做的?
4.假设就是就是现在你来到了元戎,然后现在假如我们现在团队有一个已经上线了的 Agent 的工作台,然后用户可以通过这个对话,然后让 agent 做一系列的东西,因为 agent 它可以套很多skill 对吧?然后它可以做数据分析,然后做内容生成,也可以做我们的一些研发的一些自身 loop 的一些执行。然后整个技术上整个平台,然后它技术上已经跑起来了,然后但是产品经理现在假设他给了你一个这样的一个很模糊的一个诉求,就是说现在用户感觉 agent 呢不太好用,然后希望你作为前端的 owner 去把整个体验和成功率提升起来。那这个事事情如果交给你的话,你会怎么去开始去做优化?
5.我们从前端为着手点,然后因为很多修改它不一定是单纯前端能够自己完成,对吧?你可能你前端会发起一些诉求,然后可能也许是后端去配合你去完成。对,然后无论怎么样,然后我更想去了解一下你会敢怎么去一步一步地去把它这个事情优化项给它做起来?
6.那假设我们现在就按按照你刚才说的,做了一系列的优化,然后优化上线了对吧?然后整体来说确实提升了不少,但是我们现在通过无论是埋点,然后怎么样的,发现了一些其他的一些问题,就比如说我们 agent 的它肯定会有些任务会执行失败嘛,对吧?然后执行失败之后,用户又重重复去提交同样的问题,然后提交了两到三次,然后肯定会浪费很多模型 token 那我想问一下,从前端的角度,你会怎么去分析这种用户的行为?
7.一个任务,就明明用户执行了一次 agent 的就是 task 对了,然后这个 task 已经失败了,然后但是用户又无脑的重复提交了同样的问题,然后得到了同样的结果,那你会怎么去看待这样的一个问题?他可能是前端什么原因导致的这出现这种问题?(OK,那我理解其实就是增强引导,然后让用户对整个错误的类型感知更清晰,对不)
8.我想问一下你在过去的工作中,就是这段这几段实习,或者说自身的一些学习过程中,有没有了解过一些类似于 aiui 的这种产品和设计理念?(就是我们传统,因为因为我不清楚你这个 agui 具体是什么。然后我们在传统过程中,我们做前端可能更多就是用户提诉求对吧?然后我们前端去给他开发这样的一个一个功能,然后但是 aiui 的话更多是用户提自然语言提诉求,然后 AI 根据他的需求,然后给他生成对应的卡片,或者说对应的前端的看板等等。)
9.那假设现在我们现在有一个这样的一个产品诉求,就是因为我我们做智驾嘛,然后会有很多数据以及和做数据分析相关的行为,以及数据可视化对吧?然后我们现在希望就是以前的话,我们 agent 呢,可能是返回的是文字嘛,然后现在我希望就是用户和agent 的去做对话,然后 agent 的去给我输出一个比较明确的一些图表啊、表格啊,或者说一些可交互的一些组件,然后并且用户修改以后还可以继续让 ai 去做重复的一些反复编辑。然后我想问一下,就是如果说这样做这样的一个功能的话,你会去怎么设计?
10.OK,那可以就是其实我理解就是我们定义一套 schema 然后前端根据 schema 做对应的渲染,对吧?它可以是 markdown 可以是我们的图片,也可以是我们的这种 echarts 的这种表格,然后也可以是交互式的组件。对,然后我我对。然后我想问一下,就是你如果说要基于 schema 的话,那你能再展开跟我介绍一下你你的对前端架构的这种 design 而不是说我们的业务里?
11.那如果说用户想要生成一些非内部定义的一些图表呢?
12.那这个时候只能提需需求,然后交给平台的研发,然后去做定制化开发,然后再去做适配吗?
13.那其实提到了标准化接口相当于是我们平台去做底层的基座,或者说原子能力,然后通过标准化的这样的一个接口,让用户能够拿到数据,然后自定义的做一些开发,是这意思吗?
14.那假设我现在想要实现一个这样的功能,就是我现在我我假设我现在的平台的名字叫做一个可视化平台,然后底层的数据就是它可能是录的我们车端的 bug 的数据,或者说我们的一些,然后很多各种各样的数据,然后我可以在假设我现在想要实现一个功能,就是用户他可以自己去封装,自己去写一个 html 和 js 然后能够在我们平台上直接注册一个看板,然后但是这个看板能够注册一个看板,然后它能够通过看板实现,就是用户任何的功能,然后但是它能够通过标准化的接口拿数据,那这样的话,你前端应该怎么去做这种通用的看板的能力呢?
15.那整体的数据的链路其实是通的,就相当于我们平台封装底座,然后通暴露通用的就是前端的接口能力,然后在你的 html 里面通过这个接口,然后去拿数据。那我怎么去让用户构建的这个 js 或者 html 遵守我们的规范呢?然后并且还有其实我们也提到了,我们不是所有的研发都不可能让我们所有的用户自己去写 html 和 js 嘛,对吧?那有没有比较快捷的办法能够让他通过自然语言去生成一个看板?
16.ok,了解。但是扣子不会有一些局限性嘛,因为扣子它。啊,ok,扣子哦,我不好意思理解稍微有点,对。ok,那是不是可以更简单一点,它能不能就是前端把你所有的通用接口把它转化成一个 skill 然后让用skill 加你的 Codex 或者说 Claude Code 啊,然后等等,然后去自直接生成一个经营的 html 啊,然后这样的话本地还能做调试啊,这样是不是会会更方便一点?
17.然后你们的算法的工程师,他就不能做前端,也做不了后端,对吧?因为他确实技术栈就在那边,有有一定的隔离。但是现在的话,你会发现很多好用的前端,就是对于业务来说好用的前端,可能很多都是业务自身做的,而不是你们平台方提供的,对吧?然后平,然后这样的话,你感觉在这个时代,我们前端工程师的工作目标,然后会发生哪些变化?或者说工作职责,你会感觉会有哪些变化?
18.那回到刚才说的问题上来说,就是你感觉后面的未来我们的整个平台,它的的前就是从前端层面来说,它平台应该它的边界应该发生哪些变化?就比如就我刚说的,我们好用的业务,他不会不一定会觉得你的前端好用,那你如果想让你的前端满足所有业务的需求的话,那肯定会做非常非常多的定制化的功能。那在这个时候,可能你因为我们所有的后端,你此时此刻你所有后端的开发,他肯定会提供对应的你平台的 cli 和 skill 对吧?那你的业务方拿到了你的 cli skill 的话,他就很容易去自定义,一些用户的,就是很业务的一些前端,对吧?那这个时候你就会发现你的前端就慢慢,你平台自身的前端就慢慢没人用了。那你感觉这这个情,这种情况下,我们作为一个平台的前端,我们应该要把哪些东西做好,然后哪些应该是我们着重要做的东西?
Coding:
现在有一个DAG 任务调度系统,dag的结构如下
type Node struct {
ID string
Duration int
}
type Edge struct {
From string
To string
}
实现:
func Analyze(nodes []Node, edges []Edge) (
hasCycle bool,
minDuration int,
criticalPath []string,
batches [][]string,
)
假设资源无限。
要求:
判断 DAG 是否有环;
无环时计算 Workflow 最短完成时间;
输出一条 Critical Path;
输出可以并行执行的拓扑批次。
本篇目录
当前问题0119
- 01
假设就是现在我现在有一个比较典型的这种真实任务的一些任务场景,比如说我是作为一个用户,我在你们平台,我想要生成一个推荐卡,或者推生成一个创意内容,对吧?那你能跟我大概介绍一下,就从用户在前端点击完,任务就是我们的消息发送之后,然后它一直到最终我们完成我的卡片或者说我的图片生成的这整个它的链路,你能大概跟我介绍一下吗?啊,以及我们在作为前端,在这个环节里面可能会有哪些组件?
- 02
那整个前端就是整个前端的架构,你感觉它会是什么样子的?
- 03
哦,那我理解就是作为一个我们这样的 agent 任务,它肯定是一个有状态的一个任务,对。然后它我理解它不是个简单的,就是用户请求完之后,它就是就是要么就是pending 要么就 running running 那我想问一下,就是这在整个任务的 pipeline 里面或者 workflow 里面,然后哪些状态是应该是前端去做的维护,然后哪一些状态应该是 bff 维护的,然后以及哪些状态应该是我们后端agent runtime 去做的?
- 04
假设就是就是现在你来到了元戎,然后现在假如我们现在团队有一个已经上线了的 Agent 的工作台,然后用户可以通过这个对话,然后让 agent 做一系列的东西,因为 agent 它可以套很多skill 对吧?然后它可以做数据分析,然后做内容生成,也可以做我们的一些研发的一些自身 loop 的一些执行。然后整个技术上整个平台,然后它技术上已经跑起来了,然后但是产品经理现在假设他给了你一个这样的一个很模糊的一个诉求,就是说现在用户感觉 agent 呢不太好用,然后希望你作为前端的 owner 去把整个体验和成功率提升起来。那这个事事情如果交给你的话,你会怎么去开始去做优化?
- 05
我们从前端为着手点,然后因为很多修改它不一定是单纯前端能够自己完成,对吧?你可能你前端会发起一些诉求,然后可能也许是后端去配合你去完成。对,然后无论怎么样,然后我更想去了解一下你会敢怎么去一步一步地去把它这个事情优化项给它做起来?
- 06
那假设我们现在就按按照你刚才说的,做了一系列的优化,然后优化上线了对吧?然后整体来说确实提升了不少,但是我们现在通过无论是埋点,然后怎么样的,发现了一些其他的一些问题,就比如说我们 agent 的它肯定会有些任务会执行失败嘛,对吧?然后执行失败之后,用户又重重复去提交同样的问题,然后提交了两到三次,然后肯定会浪费很多模型 token 那我想问一下,从前端的角度,你会怎么去分析这种用户的行为?
- 07
一个任务,就明明用户执行了一次 agent 的就是 task 对了,然后这个 task 已经失败了,然后但是用户又无脑的重复提交了同样的问题,然后得到了同样的结果,那你会怎么去看待这样的一个问题?他可能是前端什么原因导致的这出现这种问题?(OK,那我理解其实就是增强引导,然后让用户对整个错误的类型感知更清晰,对不)
- 08
我想问一下你在过去的工作中,就是这段这几段实习,或者说自身的一些学习过程中,有没有了解过一些类似于 aiui 的这种产品和设计理念?(就是我们传统,因为因为我不清楚你这个 agui 具体是什么。然后我们在传统过程中,我们做前端可能更多就是用户提诉求对吧?然后我们前端去给他开发这样的一个一个功能,然后但是 aiui 的话更多是用户提自然语言提诉求,然后 AI 根据他的需求,然后给他生成对应的卡片,或者说对应的前端的看板等等。)
- 09
那假设现在我们现在有一个这样的一个产品诉求,就是因为我我们做智驾嘛,然后会有很多数据以及和做数据分析相关的行为,以及数据可视化对吧?然后我们现在希望就是以前的话,我们 agent 呢,可能是返回的是文字嘛,然后现在我希望就是用户和agent 的去做对话,然后 agent 的去给我输出一个比较明确的一些图表啊、表格啊,或者说一些可交互的一些组件,然后并且用户修改以后还可以继续让 ai 去做重复的一些反复编辑。然后我想问一下,就是如果说这样做这样的一个功能的话,你会去怎么设计?
- 10
OK,那可以就是其实我理解就是我们定义一套 schema 然后前端根据 schema 做对应的渲染,对吧?它可以是 markdown 可以是我们的图片,也可以是我们的这种 echarts 的这种表格,然后也可以是交互式的组件。对,然后我我对。然后我想问一下,就是你如果说要基于 schema 的话,那你能再展开跟我介绍一下你你的对前端架构的这种 design 而不是说我们的业务里?
- 11
那如果说用户想要生成一些非内部定义的一些图表呢?
- 12
那这个时候只能提需需求,然后交给平台的研发,然后去做定制化开发,然后再去做适配吗?
- 13
那其实提到了标准化接口相当于是我们平台去做底层的基座,或者说原子能力,然后通过标准化的这样的一个接口,让用户能够拿到数据,然后自定义的做一些开发,是这意思吗?
- 14
那假设我现在想要实现一个这样的功能,就是我现在我我假设我现在的平台的名字叫做一个可视化平台,然后底层的数据就是它可能是录的我们车端的 bug 的数据,或者说我们的一些,然后很多各种各样的数据,然后我可以在假设我现在想要实现一个功能,就是用户他可以自己去封装,自己去写一个 html 和 js 然后能够在我们平台上直接注册一个看板,然后但是这个看板能够注册一个看板,然后它能够通过看板实现,就是用户任何的功能,然后但是它能够通过标准化的接口拿数据,那这样的话,你前端应该怎么去做这种通用的看板的能力呢?
- 15
那整体的数据的链路其实是通的,就相当于我们平台封装底座,然后通暴露通用的就是前端的接口能力,然后在你的 html 里面通过这个接口,然后去拿数据。那我怎么去让用户构建的这个 js 或者 html 遵守我们的规范呢?然后并且还有其实我们也提到了,我们不是所有的研发都不可能让我们所有的用户自己去写 html 和 js 嘛,对吧?那有没有比较快捷的办法能够让他通过自然语言去生成一个看板?
- 16
ok,了解。但是扣子不会有一些局限性嘛,因为扣子它。啊,ok,扣子哦,我不好意思理解稍微有点,对。ok,那是不是可以更简单一点,它能不能就是前端把你所有的通用接口把它转化成一个 skill 然后让用skill 加你的 Codex 或者说 Claude Code 啊,然后等等,然后去自直接生成一个经营的 html 啊,然后这样的话本地还能做调试啊,这样是不是会会更方便一点?
- 17
然后你们的算法的工程师,他就不能做前端,也做不了后端,对吧?因为他确实技术栈就在那边,有有一定的隔离。但是现在的话,你会发现很多好用的前端,就是对于业务来说好用的前端,可能很多都是业务自身做的,而不是你们平台方提供的,对吧?然后平,然后这样的话,你感觉在这个时代,我们前端工程师的工作目标,然后会发生哪些变化?或者说工作职责,你会感觉会有哪些变化?
- 18
那回到刚才说的问题上来说,就是你感觉后面的未来我们的整个平台,它的的前就是从前端层面来说,它平台应该它的边界应该发生哪些变化?就比如就我刚说的,我们好用的业务,他不会不一定会觉得你的前端好用,那你如果想让你的前端满足所有业务的需求的话,那肯定会做非常非常多的定制化的功能。那在这个时候,可能你因为我们所有的后端,你此时此刻你所有后端的开发,他肯定会提供对应的你平台的 cli 和 skill 对吧?那你的业务方拿到了你的 cli skill 的话,他就很容易去自定义,一些用户的,就是很业务的一些前端,对吧?那这个时候你就会发现你的前端就慢慢,你平台自身的前端就慢慢没人用了。那你感觉这这个情,这种情况下,我们作为一个平台的前端,我们应该要把哪些东西做好,然后哪些应该是我们着重要做的东西?
- 19
现在有一个DAG 任务调度系统,dag的结构如下 type Node struct { ID string Duration int } type Edge struct { From string To string } 实现: func Analyze(nodes []Node, edges []Edge) ( hasCycle bool, minDuration int, criticalPath []string, batches [][]string, ) 假设资源无限。 要求: 判断 DAG 是否有环; 无环时计算 Workflow 最短完成时间; 输出一条 Critical Path; 输出可以并行执行的拓扑批次。
