前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >漫谈:从全栈开发到技术架构

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

作者头像
神说要有光zxg
发布2021-09-03 15:18:54
1910
发布2021-09-03 15:18:54
举报

前端、客户端主要是负责构建和用户打交道的界面,也就是 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开发程序员的成长路径了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 神光的编程秘籍 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档