请教一下,前端真的会有算法诉求吗?

2022-08-05 11:18:57 +08:00
 jeodeng

就比较好奇,大家公司里前端真的有算法诉求吗?还是说算法更多是考核思维? 如果是做基建、设计框架(如 vue\react )我还能理解, 70%的前端应该是写交互、渲染\优化、样式\兼容这几点吧?

...想问问大家长长见识

7391 次点击
所在节点    程序员
80 条回复
stkstkss
2022-08-05 12:48:25 +08:00
留名
oatw
2022-08-05 13:15:30 +08:00
做项目需要比较少,写框架或者类库会用到的。
redford42
2022-08-05 13:17:36 +08:00
我唯一能想到选人组件优化?
chaoxu
2022-08-05 13:21:40 +08:00
@redford42 细说一下 想了解了解
blackywkl
2022-08-05 13:48:58 +08:00
之前涉及到数量大的时候会涉及,数据量都上万,需要查找某些特定的数据,不能直接 for 循环遍历的
vaporSpace
2022-08-05 13:52:59 +08:00
就一个组织架构选择器,就可能需要用到前 /后序树遍历,深 /广度优先遍历,简单的算法还是挺常用的吧。普通前端业务来说,我的经验是 B 端业务更有可能用得上算法。这玩意就是不用也行,但会用就多一种解法。
dcsuibian
2022-08-05 13:58:06 +08:00
算法不单是时间复杂度的问题,结果是否正确也是很重要的一部分。
darkengine
2022-08-05 14:00:54 +08:00
大部分是工程性的活儿,极少需要自己实现算法。
imn1
2022-08-05 14:04:24 +08:00
多咯,地图相关、动态界面(例如证券)……

要看怎么定义“前端”,只要是数据相向互动(对话)的,基本上都需要的
简单理解就是数据在前后端都会变化的,互相发送的,两端都需要“计算”

一直只做单向数据展示的,才觉得不需要算法
darkengine
2022-08-05 14:05:35 +08:00
@yousabuk 好奇问下,“真实 PLC 的地址偏移,又牵扯到是个通用的 PLC 前端程序”,这些业务逻辑是不是可以放在后端做,相当于后端在前端页面和 modbus 从机的寄存器状态,命令下发做个翻译的工作。

万一以后需要做个 app 端,app 开发人员也不需要再写一遍这套逻辑了。
wu67
2022-08-05 14:09:55 +08:00
偶尔吧. 接触过的有这么几种:
1 是在上家的时候, 写 h5 小游戏, 乱序算法.
2 是在上家和目前这家, 都遇到了, sku 规格选择. 可达路径计算.
3 是写自己的小项目, 统计游戏装备属性进行分类归属.

严格来说不是要多复杂才能叫算法, 一个极端的例子, 穷举, 也是算法的一种, 相信大家都会.
个人认为, 前端考算法不是说你得要多牛多厉害, 而是考思路, 证明你看待问题有自己的思路、对资源分配有一定的判断.
fffang
2022-08-05 14:16:26 +08:00
一般业务没有,特定业务会有。

另外文字渲染,图像渲染里都有算法,内存布局里也是各种算法,这种算不算前端?也算的吧。
FakerLeung
2022-08-05 14:27:38 +08:00
极少,如果像我这种写页面,但是使用起来爆卡的,基本都是因为代码写得太烂了。

比如,我这有个更新缓存的代码(待更新的 cacheList 和本地的 caches ),因为要先找出来,再做修改,然后替换。
结果开发人员直接遍历 cacheList ,然后逐个根据 id 在 caches 中通过 array.indexOf 找出下标,然后修改。
爆卡的原因是 caches 有 8k 个对象,cacheList 也有 5k 个,结果直接循环了 8k*5k 次。。。能不卡吗?
修改方法甚至用不上算法,直接先把 caches 遍历一遍,生成一个 Map ,每次从 Map 根据 id 获取出来,就变成只循环 8k+5k 次了,效率直接从 4s 提升到了 80ms 。
tanelmer
2022-08-05 14:33:35 +08:00
算法能力可以不用,但不能没有~
sy20030260
2022-08-05 14:43:30 +08:00
大多数面试官问算法主要还是为了考察编码习惯和代码风格,要么就是候选者是应届生没啥项目经验,只能多考考算法
kop1989smurf
2022-08-05 14:50:10 +08:00
前端有算法需求么?
有。但不多。

做前端有学算法的必要么?
有必要,但性价比(优先级)低。
相较而言,了解并熟知算法概念(时间、空间复杂度等)比算法本身更重要。

做前端必须会算法么?
算法是做前端的非充分,非必要条件。

btw:需要算法的多数情况可以通过既有的工具库、成熟解决方案来抄作业。
比如数据的横纵转换、高性能的排序、浮点数的运算等等。
mumuy
2022-08-05 14:52:22 +08:00
用得上啊,我无意间写的寻址算法,后来才发现就是广度搜索,然后我把它应用到了游戏里面: https://passer-by.com/pacman/
AyaseEri
2022-08-05 15:05:14 +08:00
比较多的场景就是数组根据 parentId 转化成一棵树。
比较少一部分人会需要用到求两条直线是否相交、获取贝塞尔曲线路径点之类的算法。
bobo2
2022-08-05 15:12:34 +08:00
有,不到三年经验的我都深有感悟
7gugu
2022-08-05 15:13:46 +08:00
需要,特别是做小游戏之类的会用到一些

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/870826

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX