0%

前端架构技术整理

前端近五年了, 按照一万小时定律,我现在应该也不平凡了,但是到超凡,那也还没有。 笼统点的自我感觉就是基本点都通了,应用类的技能都能用上,像是读完了高中。天文地理生物化学都知道些脉络,但是再细致一些,就需要更系统地进阶性学习。首先要明确一点,正确评估自己的能力水平和性格特点,走技术专家路线还是走管理路线。技术专家也是有好几个方向的,一般还是与实际业务结合 偏应用路线解决方案,使自己的技术形成一个闭环。通过不断的学习使得解决方案构建升级。

因为我打算走技术专家路线,参考自身在地理信息和三维可视化的沉淀,整理几个比较常规的岗位和进阶方向,技术专家我觉得正常是其中几个自由组合吧。。

  1. 超强的学习能力,旺盛的学习热情
  2. 愿意接受挑战,尝试自己不擅长的事情和未知领域
  3. 乐于助人,乐于分享,有较好的全局观和团队意识
  4. 自驱动力强,勇于承担责任

①Node服务端工程师:
所需掌握技能:

  • 能够基于 net 模块开发 Socket 应用并深度理解 HTTP 协议
  • 彻底理解 Node.js 中的事件循环特性
  • 能够使用 Cluster 开发多进程应用充分发挥多核 CPU
  • 能够操作常见的 NoSQL 数据库并能够通过 Node.js 操作
  • 能够掌握主流的 MVC Web 应用开发框架 Adonis、Egg
  • 能够深入理解基于 GraphQL 标准开发现代化的应用层接口
  • 能够使用 Node.js 开发基本的网络爬虫应用

关键词
Socket、EventLoop、Cluster、Redis、MongoDB、Memcached、Adonis.js、Egg.js、GraphQL、微服务、Nightmare、Puppeteer

②计算机图形学工程师:

所需掌握技能:

  • 能够使用 HTML5 技术开发网页游戏
  • 能够使用 WebGL 技术完成炫酷 3D 类图形效果
  • 能够掌握常用的可视化库的应用
  • 能够使用 Three.js 开发简单的 3D 网页游戏
  • 能够使用 HTML5 游戏引擎开发网页游戏

关键词
WebGL、Three.js、H5 游戏、游戏引擎、Cocos2d-x、Egret

③安全前端工程师
所需掌握技能

  • 熟悉常用操作系统及各版本浏览器特性,能使用这些特性来编写payload。
  • 熟练使用html5、javascript、node.js等前端语言,并熟悉常用库。
    深入理解xss、csrf等前端漏洞原理及特性。
  • 有web应用白盒审计能力,能从源码中挖掘前端漏洞。
  • 有大中型网站前端漏洞挖掘经验。

④混合开发前端工程师
所需掌握技能:

  • 能够使用混合式 App 开发框架快速开发移动 App
  • 能够配合原生应用开发 App 内嵌 H5 页面并可以通过 JSBridge 调用原生接口
  • 能够使用 wepy / mpvue 框架开发小程序或快应用项目
  • 能够使用 taro 多端统一解决方案同时完成移动 App、移动 Web、小程序的开发- 能够独立使用 React Native 开发原生 App- 了解 Weex / Flutter 等其他原生应用的前端技术开发方式
  • Flutter ? Flutter : React Native

关键词
Cordova、Ionic、Webview + H5、JSBridge、mpvue、taro、Weex、Flutter

⑤webgis工程师
所需掌握技能:

  • 能够使用Leaflet/openlayers/mapbox/arcgis for js中的其中几种开发框架快速开发
  • 能够配合调用arcgis server/geoserver原生接口
  • 能够使用 turf/gdal等GIS分析框架开发做空间分析
  • 能够深入理解基于postgis 空间数据数据库的分析应用
  • Java(java-spring-boot)
  • arc-python
    关键词
    openlayers、arcgis、geoserver、gdal、postgis

⑥前端架构师

  • 构建前端开发自动化的工作流,包括脚手架,本地服务,规范检查,单元测试,部署发布等;
  • 负责平台级产品前端架构体系的规划,设计,建设,包括移动端和PC端,通过技术提升用户体验和可用性。
  • 负责基础库,框架和关键模块的开发和改进,负责微服务前端技术方案,架构设计及规范制定及核心功能研发。
  • 制定前端开发规范,参与制定技术标准,编写相应的技术文档,对通用技术进行整理;
  • 设计,开发可视化类库组件,对前端开发,数据可视化有自己的独立见解

关键词
verdaccio、jest、webpack、linux、eslint

前端架构师的职责 促进前端工程化、服务化,持续提升研发效率,保障线上产品质量; 作为前端架构师, 首先要解决的问题就是让日益膨胀的代码可控,

基本职能为:

  • 梳理代码

  • 建立架构

  • 组织文档

  • 管理架构的更新和维护

  • 评审技术方案对架构的影响

  • 核心模块的方案设计

  • 重点项目的方案设计

  • CodeReview 等.

    其实核心模块(api风格,代码规范,数据规范) 架构师和资深开发在工作职责上有着明确的界限, 在一个没有架构师的团队, 每一个资深开发或多或少都承担了一部分架构的工作, 但都是破碎的, 不成体系而且不统一, 从某种意义上讲, 这种隐晦的架构还不如没有架构. 所以确立一名架构师, 从管理上也是将混乱统一的唯一途径。
    在团队还小的时候, TL 可能会默认承担架构师的角色, 但团队规模增长到一定程度, TL会变得力不从心起来, 将工作分给专业的人, 永远都是工程上自然而然的结果. 相比实际的 coding, 用一段代码解决某个问题, 实现某个需求, 架构要复杂和烧脑的多, 本质上工程的问题, 只能用架构解, 而没法用代码解, 所以没有架构, 谈不上工程化. 因此架构师的第一要务, 是梳理代码确立架构。

根据我近两年的实践总结,前端团队建设中,我应该要先试着走前端架构之路。