前端从小白到架构要知道的3点

1.前端的技术体系

前端代码运行在浏览器之上,并不和操作系统耦合,就像java运行在jvm一样,都是在平台之上,而平台是可以做移植和适配的。前端这些年的发展,整体可以分为两方面,平台之上的前端发展,和平台本身的发展。

前端代码的运行平台现在不只限于pc端浏览器、移动端浏览器,也可以是app中的hybrid的页面,可以是node上的后端或者做工程化的代码,可以是electron做的桌面端,还可以是weex、rn等通过打包后运行在Android和ios上的原生应用,甚至是嵌入式的应用。这些都是基于js引擎和渲染引擎做封装和扩展而实现的前端代码的运行平台。

平台之上的前端发展包括js本身es6、es7的不断演进,包括vue、angular、react等的mvvm和组件化,因为有了虚拟dom而实现了平台无关。这些代码是可以运行在各种平台和环境的,对应的技术也更加的通用和核心。

平台本身提供的api因环境的不同而不同,不需要过度深入细节,只要对整体的思路和脉络有所掌握和理解,具体开发的时候可以定位到文档中对应的位置就可以了。而平台之上的前端核心技术,才是我们的核心技能和竞争力,包括对js语言包括es6、es7等的熟练度,包括对vue、react、angular本身机制和基于这些机制封装组件的掌握等。

这两部分代码(平台无关的代码和与具体平台耦合的代码)会通过架构来合理的有机的组合成一体,架构的基础也就是对这两部分的理解和掌握,这时候你也要学习一些设计模式或函数式等组织代码的思想,才能设计出易于理解和维护,易于迭代和扩展的优雅架构。

前端这些年风起云涌、百花齐放,不能一锅端的全部学习,工作之余很难有那个精力,我们主要要做的就是对核心部分的语言和框架还有架构更好地掌握,对平台的特性和能力还有机制有整体的理解就够了。新的库或框架分门别类的层次化的融入到你已有的知识体系中去。前端在变,认知体系的骨架不变。

2.面试和工作中的业务和技术

面试问两方面,一方面是你的项目经历,主要是其中的纯技术和一部分业务的技术方案。另一方面就是技术本身了,包括语言的基础、逻辑能力、架构思想、对框架的掌握程度等,主要就是一些具体的代码和抽象的思想。

所以,不能过度关注业务,多关注技术本身,项目是一方面,技术本身的成长更重要。

如果能做一些沉淀会更好,如果有技术博客或者开源项目,面试成功率会增加,因为这些能够更全面的看到你的实力,光靠面试是不行的。而且做这些的过程中也能理清思路,帮你更好的掌握,而且持久化也方面以后查看,这些是伴随你整个职业生涯的,与公司无关。

还有,看文档很重要,因为你所有的使用方式所有的业务代码的组织都与框架相关,你要优化也要对框架有全面掌握,最起码知道有什么东西。而且对框架了解之后,你也能区分出什么代码应该使用什么封装形式,比如dom操作的逻辑是应该放到组件里还是封装成指令等。

当然,如果你到了管理层,业务的状况直接关系到你的kpi,这时候你就要把更多精力放在业务上了,以后你面leader岗也更多是管理技巧和业务和一部分技术的考察。但前期还是应该以提升技术,积累项目经验为主,其中项目经验就是用技术解决业务问题的方案的经验。

3.最重要的态度

最重要的是要主动的去思考和做事,而不是被动的接受需求和技术方案,被动的工作,被动工作的叫做码农。

要有自己的想法,无论是否成熟或正确,比如你要做产品的这个功能,你会怎么设计流程,你如果自己做ui,你会怎么设计,你如果做mvvm框架,你的思路是什么。主动的思考,用你的思路去整合接受到的信息,你就会形成自己的观点和看法,而且一旦有一些你验证后发现是正确的,那么你对它的掌握程度会非常高。

想法的表达有各种形式,聊天、文章、具体的代码等等,输出和表达的过程是理清思路、疏通细节以及把你的想法传递出去的过程,也很有必要。

总之,主动思考和做事,不断输出和接受反馈,才能变得更有主见,对技术有更深入的理解,慢慢也就会拥有话语权。

总结

前端从小白到架构需要接触和学习大量的知识,需要经历大量的项目实践,知识和技术方面需要体系化的去整理和扩展,才能在前端的发展洪流中游刃有余。对于项目经验要区分出那些是通用的技术,那些是用技术解决业务问题的方案,这些你的经验才真正的有价值且可复用。

如果说上面两点是术的话,主动的态度才是道。唯有主动的学习和思考,才能对技术有更加深入的理解和掌握,也会更有主见,有鞭辟入里的观点,这种态度最终会让你形成上面所说的知识体系和对大量解决业务问题的技术方案。

有了体系化的前端技术和大量针对业务问题的技术方案的积累之后,你是做全局的架构,还是做细节的底层实现,whatever,随你喜欢。

猜你喜欢

转载自juejin.im/post/5bdb1b60e51d45493451a72e