选什么都行,选什么也都可能不行,因为一个“大型后台管理系统”的前端开发成功与否,跟你选什么框架可以说基本上没关系。
假设你是一个大型后台管理系统的前端架构师,框架选型问题可能在你面临的问题里面连前十都排不上,优先级更高的问题包括而不限于:
一,UI设计规范问题。大型系统UI得统一吧?各个业务模块的UI设计得高效吧?那就得有规范,直观地说就是原子设计那套东西,加一堆推荐设计稿。
二,基础组件库问题。有了设计规范就得有组件库支撑,否则设计还原成本太高吃不消。那么组件库你怎么选呢?PC端一套,移动端一套,小程序可能还得有一套。如果涉及到报表,又得加一到两套。
三,脚手架(即单应用架构)问题。不要小看脚手架,都大型项目了,你那脚手架横不能初始化出来的项目还是空的吧?增删改查等高频场景你得来一套示范实现让人改改就能用吧?而且各种通用能力(包括不限于登录、权限、多语言、导航、帮助等)你得妥善的都接好了吧?最后你这个脚手架本质上应该是一个前端app framwork,模块划分和数据驱动关系应该都安排好了,让人往里填代码即可。以上内容,PC、移动端、小程序,各一套。
四,前后端联调问题。mock得搞好吧?接口规范得搞好吧?开发机直连服务调试的链路得打通吧(包括网络环境以及调试账户等共识)?接口文档放在哪里怎么看得商量好吧?
五,编译打包问题。webpack配置工程师了解一下?这么大的项目,如何分包,如何配置各种参数,都是非常琐碎驳杂的问题,所以几乎每个大项目都有自己的cli。
六,测试问题。要不要自动化测试?自动化测试如何实现?在哪里运行?测试工程师怎么写用例?代码改一行各种xpath全挂怎么办?
七,CICD问题。gitflow怎么安排?静态资源发到哪里?npm用谁的?cdn买谁的?cdn和gitflow怎么串联?html入口怎么更新?入口服务是nginx啊还是自建入口服务啊还是用后端提供的服务啊?域名绑定谁?小程序的CICD怎么做?
八,动态化问题。项目大了,很多功能用户就不想开发期写死,表单他想自己配,portal他想自己配,报表他想自己配,大屏他想自己配……所以大型后台管理系统往往内置了一套低代码方案,专门用来解决这类问题。别睡,拖拉拽搞起来~
九,投放问题。投放问题的简化版本,就是权限问题,a页面中的b区域,对于x类用户能看能改,对于y类用户能看不能改……其实也并不简单,但是靠rbac/abac总归还可以支撑。如果这些规则超出人的范畴,比如38妇女节那天女用户的portal页要看到一个贺卡……用权限就解决不了了,得靠广告投放的那套技术,前端也得配套相应的方案。
十,审批流问题。后台管理系统高度依赖审批流,后端的审批流服务怎么和前端集成呢,尤其是和表单的集成?是给审批流提供你的表单方案,还是在表单里面集成审批流方案?如果这里用户也想低代码呢?
十一,移动端衍生问题。一会儿钉钉一会儿企业微信,你要不要跨平台啊?h5和小程序要不要一码双跨啊?再来个pad端你受得了受不了?
十二,体验收集问题。前端监控你得有吧?自己做还是买啊?有了监控你要不要分析数据来点数据驱动的体验优化啊?
十三,前端集成问题。几百页的大项目,横跨多个开发团队,总不能代码全放一块吧?不放一块怎么集成呢(有异构老页面要进来哦)?不然试试微前端?微前端是可以,但是你得有个平台去管那些微前端项目吧?不然人家要微前端+投放你咋办?
十四,复杂单体问题。web项目的单体复杂场景其实不算多,但是也不少见。文档编辑场景咋解决(可能要多人协同哦)?合同组装场景咋解决?票据场景咋解决?地图场景咋解决?BIM场景咋解决?视频会议场景咋解决?
十五,最后有个问题我本来不想往里加,因为我不确定这算是真实问题还是“执念的落地”,就是关于前端的DDD问题。按照我本来的理念,500个页面都是增删改查的项目,不算大项目,因为可以水平切分。但是做过一些很让人烦的增删改查项目之后,我发现问题没这么简单。后端的业务模型可以做的很稳固,并且能熟练使用DDD也被认为是架构师的吃饭技能,然而在前端并非如此。一方面,大部分几百页面的项目,前端代码都像屎一样,不是技术架构像屎,而是业务模型像屎一样,各种重复的、无文档的、不可回溯的类型定义,各种根本看不懂的类型转换,满天飞;另一方面,没人给前端架构师留出业务模型搭建的时间,前端也很难复用后端DDD的模型资产,导致这笔烂账没人收拾。最后结果就是,前端永远一坨屎,技术架构问题可以整体改进,业务逻辑混乱没得治。
这事儿,目前看得有人管,没人管前端代码资产永远不值钱。
以上问题,任何一个解决不好都够你受的,它们和框架选型不能说完全无关吧,也基本上八竿子打不着。这还不是全部,作为前端架构师,你还得关心代码规范、迭代流程、前端安全等技术问题,以及汇报、专利、招聘、沟通等不知道谁该管那就你管的问题……
这么多形形色色的问题需要你处理,你哪还有闲心去关心什么框架比较好?哪个用的熟选哪个算了。
原文链接:https://www.zhihu.com/question/347372270