你尚未登录,仅允许查看本站部分内容。请登录使用邀请码注册
前端农民工

怎么判定web前端架构师的能力高低? 20个回复 专栏 @ 架构

前端农民工 发布于 2 年前

首先,我们来考虑一下什么是架构:软件架构_百度百科

软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。

传统软件架构描述的对象是直接构成系统的抽象组件,侧重于系统的抽象、拆分、组织方式等。所以如果从传统软件架构定义出发,前端架构可能就是指前端项目的系统设计了。在进行系统设计之前,由于前端开发语言缺乏一定的工程能力,所以 web前端架构师相比传统软件架构师还应该能提供以下开发基础的支持

  • 开发规范:开发规范设计非常重要,设计良好的开发规范应该以实用性为前提,可以提升开发效率,降低维护成本。常见的规范主要是针对模块化开发定义的,想象一下,下面的规范示意图是不是能对开发和维护有极大的帮助:开发规范
  • 开发模型:主要是模块化开发。前端由于编程语言的问题,没有原生的模块化支持,所以架构师在做架构设计之前,要先提供模块开发体系。模块化开发体系设计挺复杂的,完整的模块化体系要统一js、css和模板的模块化处理,此外,js、css模板中的资源(图片等)引用也是要考虑的问题。此外,模块化框架肩负着资源的加载控制,要面对性能优化,所以,好的架构师给出的模块化方案应该是能把性能优化做到框架中,性能是一个工程问题!
  • 构建工具:还是由于前端开发语言的问题,前端还需要构建工具配合,才能完成开发规范、开发模型的落地实现。这部分也许有人认为是非必须的,但是我可以给出完整论证证明标准前端项目必须经过构建,这里就不展开了。总之,前端架构师在给出规范、模型之后,还要给出配套的工具来保证它们的实现。
    web前端架构师至少要提供以上3项之后才能开展正式的架构设计,我觉得这部分是衡量一个架构师设计能力的重要指标之一。基础搞定了,架构设计的开展才能顺利。没有标准的模块化支持,架构设计很难做。

此外,由于web前端的产品模式与传统软件有很大差异,所以我觉得真正的前端架构师还应该能考虑以下问题:

  • 项目部署:前端项目部署应该由前端架构师来决定,这里涉及到网络性能优化和开发规范对接的问题,所以前端架构师要理解工程部署的过程,并把开发和部署打通,否则开发受限于部署,架构设计会遇到阻碍。
  • 组件化与组件生态:由于前端面向的是界面设计,所以在模块化之上还有组件化开发模型需要架构师提供。此外,项目中一些可复用的模块或组件应该有一定的复用渠道,这部分我称之为生态。架构师应该提供这样的渠道来解决多个团队或项目之间的代码复用问题。
  • 前端统计:前端统计包括性能统计、访问统计、用户行为统计、错误统计、安全监控等,虽然有些统计属于产品指标,但在大数据时代,前端研发的方向应该有一定的数据做指导,前端架构师必须关心统计数据,并能提供统计方案、统计平台是一种衡量指标。
  • 前端安全:这部分也应该有架构师负责的部分。主要是在开发、统计的过程中对前端安全做保障,比如xss修复、页面脚本注入监控等
  • 系统测试:很多人总是尝试用API测试方法论中的单元测试来测试前端项目,其实是片面的。前端测试属于GUI测试范畴,前端项目中使用的框架、类库一般由外部提供,已经由API测试做了质量保证,而项目中的测试应该主要集中在GUI测试上,这部分目前没有好的解决方案做支撑,所以也没有什么好的衡量办法。

以上就是我觉得衡量前端架构师的基本要求,现在已经不在是 写一个jquery就是架构师 的时代了,前端本应该是一个系统化、工程化的理论体系,涉及到很多方面,前端工程师的工程化意识应该加强。

或许现在很多企业和团队尚未重视前端工程,或许前端工程在很多人眼里还只是“构建工具”的代名词,又或许未来前端领域的变革使得一切工程问题从根本上得到解决。不管怎样,我只是希望当下能认真的记录自己在前端工程领域的所见所想,与正在经历前端工程化改进,并被此过程困扰的同学交流心得。

  • fansekey

    赞,行业风向标就这篇了。

    其实我想知道为什么很多前端开发人员用一点点后端的知识就可以漂亮解决的问题,为什么会花N倍的时间非要在浏览器上用纯前端来解决。

    #1
  • huangyi

    赞,终于对"前端架构"有一些清晰的概念了~

    #2
  • itbeihe

    说下我的见解。@fansekey 很多公司前后端分离,公司越大有时候分的越清。这时候后端的改动就变成了跨部门合作的问题。这个时候推动这个改动,受制于人,有时比纯前端N倍的努力还累。

    #3
  • annilq

    赞,非常喜欢这篇文章和之前的前端集成解决方案的文章,深入浅出,以后朝往这个方向发展

    #4
  • 三千里

    赞!前端工程化,困惑中前进。。。。。。

    #5
  • fansekey

    @itbeihe 这个当然,所以做方案的人要考虑最小的成本做出最漂亮的事情;但我还是依然反对在某一端搞在另一端很容易实现的事情。前后分离的目标是提升研发效率,所以不想由于这个带来更大的坑,消耗更多人力。

    #6
  • markyun

    前端工程化,正在团队中推广

    #7
  • pigerla

    很不错的文章~

    #8
  • 前端小尚

    开发规范的图挂了..

    #9
  • 2585441871

    很不错的文章。

    #10
  • hujiaqi

    @前端小尚 ,哈哈 ,可以

    #11
  • 前端小尚

    @hujiaqi 不是404么?

    #12
  • onedayof2010

    @itbeihe 小北河,说的很对,眼光不应该在前端

    #13
  • johnnyzheng

    顶这个。说得非常好~
    开发规范是高效生产力的行为准则,开发框架定义开发模式、技术平台,工程化工具从本地化开发到构建、打包、发布,提供有力保障。

    #14
  • my-fe

    赞 朝这个方向努力着

    #15
  • Sirormy

    我感觉现在的前端,即使不是架构师,这些也应该掌握,你们觉得呢

    #16
  • HouJushang

    努力中

    #17
  • thonatos

    项目全面转换成node以后,前端需要有一个合理的认识才能更好的组织项目和代码,不想做架构的前端不是好前端~

    #18
  • 小天同学

    大赞。很受启发

    #19
  • arck

    我觉得一个好的架构师应该还要有一些项目管理的能力。比如项目进度的把控等。文章不错,赞一下

    #20
登录后回复,如无账号,请使用邀请码注册