《大前端工程化的实践与思考》之 QA · 语雀

1,664 阅读8分钟
原文链接: www.yuque.com

nodejs如何学习

Q:自己有js基础,那么我应该以做项目为驱动来学习node的各种知识点,还是先看一本学习各种知识点的书,然后有一定认识后,就开始做项目?

A:

1 先挑一本nodejs的书进行系统的学习,比如《深入浅出nodejs》;

2 仔细分析学习一些主流的npm包的源码 ;

3 学习一些开源框架的使用,比如express\egg,其他的不是很成熟,不建议;

4 进行一些项目实践,并不断的总结经验


前端现在有哪些细分领域

Q:如题

A:分为纯前端还是大前端,如果是大前端包括但不局限于以下的领域

1纯前端的开发

2 数据可视化,包括可视化图标、图形

3 serverless

4 nodejs负责的web应用

5 nodejs负责的工具类

6 webide

7 人工智能

8 重客户端输出的工具产品


nodejs适合什么场景,与java的区别

Q:nodejs适合做什么,一般会做什么,与java的区别是什么,应该掌握哪些技术?

A:nodjs可以做web应用,apiproxy,数据库,运维,工具等,但一般不会这么做,因为这些都有专门的职能比如后端去负责,有各自的利益,所以实际中更多的是用来给大前端补位,当然具体公司不同,nodejs发挥的也不同,看前端在公司的位置。

与java的区别,之前的区别是nodejs支持异步,性能非常好;但现在的话,java也引入了nodejs的特性,并且与之前相比,java的框架也变得轻量级,和nodejs的特性靠拢。总结的话,就是没有大的区别。如果想使用nodejs,最好使用express,egg,推荐使用ts。


如何从小工程做起,学习现代的前端工程化实践

Q:如题

A:以开源为中心,学习工程化的一些技术点、核心思想。然后不断的在实际项目中去实践,不断的反哺自己的知识体系。


微前端

Q:前景如何,涉及到哪些知识,目前处于什么阶段?

A:目前还主要处于概念期,比较依赖于serverless的发展程度,目前大部分公司的实践还不是特别完善,有兴趣的可以关注乾坤这个项目,是umi研发团队在设计的微前端解决方案,链接


ts是否会是未来的主流么?可否跳过js学习ts

Q:如题,另外可以跳过js学ts么?

A:谷歌研发团队从flow转型到ts,并且各个前端框架也在支持ts,另一方面,随着前端工作范围的延伸,类型检查变得更加有必要,所以ts已经是主流;对于是否可以跳过js学ts,本身问题不大,因为ts是js的超集,就和说能否跳过js学习框架一样,但js是基础,当时间允许的时候,js的基础还是要补充的。


nodejs安全性如何

Q:与java相比安全性如何?

A:这个安全性如何?主要看部署环境,其部署环境和java的部署环境一样,如果服务器都被破解了,那么任何语言都是一样的。所以这点上不用过于担心。



大前端的方向如何?

Q:是大客户端还是其他方向?

A:从现在的趋势分析,从15年开始各种客户端的开发就不再趋势以及需求序列了,目前的客户端只需要少量精专的人。而大前端最终的方向都是web,学会js可以各终端都会写,包括现在flutter等技术都是围绕这个方向。


进阿里的必要条件,怎么学习

Q:中高级前端如何提升自己才能进阿里?

A:必要条件是基础特别高,在某方面有比较深的认识,比如框架的理解或者某种最佳实践。而日常的中小公司的技术需求和实践肯定达不到阿里的技术要求,所以作为技术一定要深度的去学习开源,研究开源,从开源中学习技术思想,实践,从而提升自己的技术水平。


nodejs中间层在企业中适合什么场景

Q:什么情况下适合引入中间层,主要解决的是什么问题?

A:主要原因是因为不同端对数据的要求不同,而后端开发不愿意写这种仅仅是针对端写不同的接口,那么前端来做类似的事情是最合适的。除了这点,前端还可以根据应用的展现和交互特点,准备良好的数据结构和类型,并且为白屏准备更好的打底数据,另外一个方面,我们也可以利用缓存,提升应用的体验。


没有丰富的项目经验或者没有某些技术背景如何做

Q:如题?

A:首先大部分程序员的项目经验或者技术经验可能都不是从项目中得来的,如果你在面试中发现面试官的某些问题是自己回答不上来的,可以就技术问题进行反问,然后针对技术官的答案进行各种查阅,补充,直到自己完全理解、熟悉这个问题。而对于技术经验,一定是要自己建立自己的知识系统,不断的去完善各个分支的理论和实践心得,这些都是书本上没有的。不得不提的一点是,借助开源库学习代码,是程序员可能唯一的途径。

备注:那些培训课或者公开课一般分享的都是水,或者方法论,并不能让你就某个点有实际的收获。


架构师主要是考虑那些?

Q:如题?

A:主要考虑的内容和业务开发是非常不同的,比如架构需要考虑技术或者项目的稳定性、可维护、可拓展,数据如何处理,复杂的业务逻辑如何用设计模式解决,项目架构的研发效率,新技术的调研以及落地

前端架构的推荐书籍

Q:如题?

A:前端方面的架构书籍非常少,尤其特别好的,但如果一定要看,可以看下黄峰达新出的《前端架构:从入门到微前端》。


node版本管理

Q:如题?

A:mac用nvm,windows用nvs


pwa应用前景如何

Q:相比小程序等体验,pwa前景如何?

A:pwa主要是用来解决弱网环境,但目前国内的网络环境比较好,所以pwa的实际发挥空间不大,仅仅是锦上添花的一项技术体验。


技术转管理的平滑路线

Q:有哪些方法,或者需要学习什么?

A:1 首先对技术有比较深刻的认识;2 了解业务;3 了解每个团队成员的特点,善于观察;4在团队的工作中善于发挥大家的优点,带领大家拿好的成果。好的管理者一定是不断摸索的过程中,从工作中思考每项工作每个人在工作中表现的比较好的地方,然后不断扬长补短。


node的高并发怎么处理

Q:如题?

A:正常的,中间层不会有这种问题;渲染层会产生瓶颈,要通过开源工具,比如阿里node去调试内存泄漏或者性能的点;实际最有效的方式还是通过缓存减少数据的io,降低服务器的压力;node的高并发最终需要补充的是各方面的知识,与node本身没有强关联。


多端编译会是技术主流么

Q:比如flutter,uni-app?

A:会是技术主流和方向,但目前的技术不成熟,存在技术风险。


全栈的理解,需要掌握的能力是什么

Q:需要会哪些能力?

A:全栈最主要的是问题的解决能力,而不是炫技的能力。具体就是2个方面:1 技术的广度,对数据库、客户端、缓存、网络等都有一定的了解 2 对涉及到的主流方向有比较深刻的认识,能解决大部分工作中的常见问题。


node的内存管理和优化

Q:如题?

A:这方面不好直接回答。可以通过2个方面,1 增加对知识的理解,以及项目中的分析,知道哪些代码会导致性能问题,然后一条条总结 2 利用性能检测工具,定向的提升和反查。


职业发展进外包公司还是产品公司好

Q:如题?

A:关键是自己保持技术的本心,如果能选择的话,尽量去产品型公司。只要保持自己不要成为一个可替换的螺丝钉角色就好。


目前团队对前端不重视怎么办

Q:如题?

A:首先,肯定是需要给领导或者团队补充认知,最佳的方式还是通过前端的成果去体现。但如果你的位置不好,或者没有很好的机会,只能是蛰伏提升自己或者找到更合适的公司发展或者项目机会。