漫谈:从全栈开发到技术架构

开发 前端
从能够完成基本功能的全栈开发,到能处理复杂场景的技术架构,就是web开发程序员的成长路径了。

[[416777]]

前端、客户端主要是负责构建和用户打交道的界面,也就是 UI(user interface),而构建 UI 需要在不同的位置显示文字、图片、视频等等,要分成不同的区块和页面,为了简化构建 UI 的过程,前端、客户端都提供了相应的布局方案,甚至还提供了 DSL 来简化布局的描述,比如前端的 html、css,安卓的 xml 都是用来简化 UI 描述的 DSL。

基于这些布局方案,我们可以快速构建出应用的界面,但是有的时候这些布局方案不适用,就需要自己绘制,这时候就要通过 canvas、webgl 的方式来绘制更灵活的 2d、3d 视图。安卓、ios等也提供了 canvas 的 api。

绘制界面整体上就分为这两种,一种是基于各平台的布局方案的,一种是自己绘制,前者常用来做应用开发,后者常用来做游戏开发和一些可视化。这两种构建UI 的方式区别还是挺大的,应用开发、游戏(可视化)开发是两条不同的路。

基于浏览器的 dom 和 css 的布局方案的,也就是基于 dom 的,可以使用一系列 dom api 来操作 dom,然后重新布局和绘制,通过这种方式来做各种交互。

而不基于 dom 的绘制方案,也会维护一套对象体系,比如 stage、sprite 等,然后在修改了对象的属性之后,重新绘制到 canvas。

绘制时需要各种资源还有数据,而提供这些资源和数据的就是后端,后端通过 http、websocket 等方式来传输绘制需要的资源和数据,资源存在静态服务器,托管在 CDN,数据都存在数据库里,根据不同的请求参数来进行资源的 CDN 的查找和数据的 CRUD,然后提供给前端。

随着应用规模的上升,后端的提供数据的服务器和提供资源的 CDN 都会做分布式,通过部署在不同地区的多台机器来保证效率和稳定。

这就是 web 应用运行的基本流程。

从开发到部署运行是有个过程的,这个过程就是软件工程的生命周期,从一次开发完所有功能的瀑布,到快速迭代的敏捷,从手动执行构建和部署,到完全自动化的 devops,工程效率是越来越高的,这是一个必然的趋势。

作为 web 应用的开发者,要掌握前端的两种绘制界面的方式,掌握后端的数据库和 CRUD 以及提供接口给前端,掌握 CDN 的部署、后端服务的部署,如果应用规模大了以后还要掌握各种中间件和分布式的技术。此外,还要掌握 devops 的自动化的工具链。这些技能掌握之后,就是一个全栈开发者了。

在完成功能的基础上,对于比较复杂的场景,需要做代码的设计,也就是架构,保证随着迭代代码复杂度不会失控。相对来说,后端的复杂场景多一些,前端相对较少,所以后端谈架构比较多,但前端也有一些复杂场景需要架构设计,比如微前端,比如 vscode 的 ioc、service、多进程划分等。

从能够完成基本功能的全栈开发,到能处理复杂场景的技术架构,就是web开发程序员的成长路径了。

【编辑推荐】

 

责任编辑:姜华 来源: 神光的编程秘籍
相关推荐

2018-05-16 16:13:49

开发架构师转型

2012-11-28 01:55:07

软件测试

2017-04-12 14:45:20

数据架构数据源

2022-02-21 07:55:03

Web3数字货币Web2

2013-08-21 14:41:48

移动应用开发移动应用市场推广App推广

2021-04-11 07:33:03

开发Vue技术栈js

2009-07-19 22:11:50

全光网络光通信技术光交换

2020-07-10 11:12:00

公章技术腾讯

2019-10-08 09:29:41

架构代码业务逻辑

2017-08-07 18:45:51

前端JavaScript技术栈

2017-07-26 13:51:19

前端JavaScriptTypeScript

2010-09-01 09:09:37

DevOps敏捷运维敏捷开发

2021-11-16 13:46:29

移动应用安全应用程序

2021-11-29 10:50:14

鸿蒙HarmonyOS应用

2015-08-04 09:40:10

Python大数据全栈式

2022-04-13 08:00:00

Hilla开发Java

2023-08-21 09:51:57

全栈软件开发

2019-07-31 10:21:15

单体架构微服务

2017-03-27 08:45:47

全栈技术管理
点赞
收藏

51CTO技术栈公众号