Web前端需要熟悉大学里[高大上]计算专业课吗?
程序员文章站
2022-03-29 17:05:52
...
作者:Slbom Wong
首先,关于“前端”的理解,有两种方式:
- 狭义地讲:切页面就是了(通常专指网页)。
- 广义地讲:是全平台上交互逻辑和表现与后台数据逻辑之间的技术中间层。
如果你的目标只是切页面、切更多的页面,你可以找知乎上某当老师掏钱拜师,想必你也不会来这里问。
稍微举点例子:
- 比如想要做数据可视化的页面,如果你不会数据结构,怕是连D3.js的API都用不好。
- 比如想要做消息通知,就要处理长连接,就需要知道TCP里长连接或者WebSocket是怎么回事。
- 比如想要做在线聊天的前端(或者是这种模型下的消息转发),为了承载大并发,极有可能会自行定制HTTP Header,这个跟上面一样,是属于计算机网络的知识。
- 反正我是在前端处理过最小子串的算法,网页游戏里实现A*算法也是很常见的,这是算法吧。
- 简单的AJAX、复杂的交互效果,很大程度上依赖“异步”,这个是操作系统里面的概念。
- 还有JavaScript这个东西,我想说的不是ES6,而是ES背后的程序设计语言这个领域。尽管写前端的完全不需要成为PL专家,但从这个角度看,学习一下程序设计语言、编译原理和函数式编程完全不过分;更何况有时候还需要生成并处理JSON-Format AST呢。
- 还有更多的复杂的前端应用,比如FM电台、音乐播放器、Terminal、富文本编辑器等等,以及一些前端开发框架,你猜这些都用到了哪些“高大上的专业课”?
然而仅仅是切图及常规的开发,也需要懂:
- 浏览器内核
- HTML、CSS的规范标准
- HTTP协议
- JavaScript语言
只是切个图,想要切好也不是那么容易的事情。
综上,Web前端的综合实力是非常硬的,绝不是花拳绣腿;而这种硬实力的背后就是那些“基础课”。
作者:beOzPf
虽然很多大佬都说不需要。因为他们当你是工厂流水线的工人了。工人的确是不需要知道机器怎么造的。听话就行。
但是我这里的答案是很重要。
1.没有操作系统知识,js内存泄漏怎么解决你都不知道。当然大部分应用级项目都没有达到要解决内存问题的地步。
2.没有算法数据结构,老是拿个递归来来做事,知道chrome的栈深只有1w多层而已吗?稍微处理点数据量大的都要后台来搞或者直接爆栈了。用动态规划或者广搜就没事了,当然用红黑或者b数处理也行。或许很多人都不知道vue2是有内存泄漏的问题的,但是大部分应用都没有到那种程度……所以知道为什么大型前端产品例如vscode都不用框架了吧……因为框架都不适合做大型应用的,性能不行。遇上3d模型,不用算法,呵呵,玩泥巴去吧。
4. 不懂设计模式,尤神写的vue框架用了啥模式都不知道,更别提模仿了。坦白说了,就是注定层次都不一样。你甘心?
3. 前端在云计算中做什么角色?不了解一下https、负载均衡、服务化、数据一致性。打定主意做一辈子切图仔么?不会吧?!
如果你只是想做作应用级项目的前端,你就当我说错了吧。
但是如果你想做平台级或者大型产品级的前端,我劝你还是好好掌握计算机的基础吧。
如果你是想做架构级或者3D视觉相关的,最好是钻研计算机和数学相关的原理,这个你用起来就知道了。