【前端开发】前端架构与具体的应用的矛盾,最终的简单才是王道。

简介: 写在前面   年关将近,这年味愈加的浓烈了哈,似乎无心工作,似乎家乡的叨念从远远的方向传进了你的心里,坚持住哈,马上,就回家了。        进入正题,首先,我需要先解释下这个标题所表达的意思,以及它背后引出的具体的问题,前端架构与具体的应用的矛盾 这句话为什么要这么说,相信大部分公司,不论你...

写在前面

  年关将近,这年味愈加的浓烈了哈,似乎无心工作,似乎家乡的叨念从远远的方向传进了你的心里,坚持住哈,马上,就回家了。

       进入正题,首先,我需要先解释下这个标题所表达的意思,以及它背后引出的具体的问题,前端架构与具体的应用的矛盾 这句话为什么要这么说,相信大部分公司,不论你是创业型公司、外包公司或者是大一点儿的,上市的,在你们的前端技术栈中,react出现的频率应该不低,vue是更甚者吧,基于webpack、glub构建的应用应该很多了,甚至可以说,这些技术已经占领了前端的半个天下,但是笔者在这里呀,不禁要提出一个问题,那就是,你们的技术栈真的带给前端更简单的内容了吗? 使用这些技术栈的时候,你们的应用是否会变得学习成本高昂、扩展能力差、依赖高阶程序员、文档不齐全、有没有测试用例?

架构的本质

  我认为架构的本质应该是什么? 它应该是基于可能面临的风险构建的一套能够适应当前业务、扩展未来业务、行为可预测的、高可用性的。在能解决这些问题的前提下,架构应该是高度抽象的吧,一个优秀的架构,它一定要足够简单,基于一个或多个抽象的理解上构建出来的。

  简单才是本质,spring为什么那么火,它足够简单。一旦你了解了它的抽象思维方式,整个开发极易上手,这就是一个优秀的架构应该有的表现力。如果你正在设计前端架构,我的忠告是,最好结合你的业务实际去实现它而不是去考虑最新的技术栈,盲目的追求渲染速度、组件式等。 

  前端一定要与业务接轨,一个管理系统,你跟我谈什么渲染速度?一个正常的管理系统前端,它甚至都不需要webpack这样的工具构建,只需要一个裸的vue加上jquery就可以完成,这样的结构要优于大部分。为什么? 贴合实际嘛!  后台系统你一个前端能维护多久呢?大部分时间,后台er在维护这个界面,如果你使用的技术太过复杂,增加了学习成本,还更容易使整个架构逆向发展。

  再例如,企业官方网站,企业商城,大型公司的门户,宣传网页,这些东西完全不需要用到打包、甚至vue你都要少用, 为什么?最重要的是它们不利于SEO,然后是不利于快速迭代,设计的再复杂些,vue技术栈全部捅上去,那有什么用嘞?除了给你自己的职业生涯添加一笔,对公司来说这就是技术的债务,公司需要招比你更厉害的人才能理解你写的这些高级的代码,而这些代码一旦在无数个迭代中膨胀,最后的选择只有推倒重来,改都没的改。

 

结合业务再谈技术

  什么前端路由系统,SPA 框架,你都要结合业务,后台系统使用SPA就是耍流氓。陡然增加前端的复杂性,让前端变成了一个比后台系统还复杂的系统。这很得不偿失。仅仅是为了前端开发的便利性,忽略的整个系统的复杂度,这样的架构怎么看都是不可取的。 

  什么时候能够使用这些技术栈? 当然是业务允许、风险可以控制的情况下。  例如多终端,移动端,在移动端使用打包工具,SPA框架开发是很明智的,它们带来的优势,在渲染速度上,在使用性上,都是一流的。而且真正的实操中,这样的项目一般是重点维护的。

  要结合业务的实际选择技术,大部分时候,开发时间是有限的,实现的功能很多,盲目追求技术的新、快、是没有根据的。

  

一些看法

  推荐一些我个人开发时常用的几项前端架构,它们是我结合平时的开发实际,业务适应程度做出的技术栈调整。

  首先,如果项目大小一般,时间很紧急,我会毫不犹豫选择裸vue+jquery+bootstrap,快速开发完毕。

  如果项目中等的话,时间不多不少,我会看团队中,开发人员的比例,比如这个开发团队只有一两个前端,那么我会选择 require管理我的js模块,使用sass管理我的css模块,足够模块化,也有组件,同时开发速度够快,团队中的其他人理解起来也很快,在项目很赶的时候后台也可以帮一些忙,也不会担心他们破坏架构。具体到业务逻辑,首先了解业务的流程,例如我这个应用,面向的是企业管理人员,可能需要一些大数据展示,一些图形化界面。那么我很可能选择react+react-router+redux。

  大型项目需要依靠具体面临的可能风险,你需要调研清楚目标人群,宣传方式,例如使用SEO做搜索宣传,就不能选择打包技术,微信wap,选择vue技术栈是明智的选择等等。

  需要注意的是,最终的简单才是王道

  

写在最后

  希望大家一起探讨这方面的话题,我的观点也许是错误的,或者是有问题的,讨论一下,大家一起提升。

 

======================================================== 转载请注明出处。
目录
相关文章
|
9天前
|
监控 前端开发 JavaScript
前端工程化和传统前端开发的区别是什么?
前端工程化相比传统前端开发,在开发模式、代码组织与管理、构建与部署流程、团队协作、性能优化以及技术选型等方面都有了显著的改进和提升,能够更好地应对现代前端应用开发的复杂性和高要求。
|
19天前
|
运维 持续交付 开发工具
深入浅出:GitOps在微服务架构中的应用
【10月更文挑战第26天】本文深入探讨了GitOps在微服务架构中的应用,介绍了其核心理念、自动化部署流程和增强的可观测性。通过实例展示了GitOps如何简化服务部署、配置管理和故障恢复,并推荐了一些实用工具和开发技巧。
|
19天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
34 3
|
10天前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
9天前
|
前端开发 JavaScript 开发者
前端小白逆袭记:从零开始,如何快速掌握前端开发精髓?
本文从一个前端小白的视角,分享了快速掌握前端开发核心技能的逆袭之路。通过学习HTML、CSS和JavaScript,逐步接触前端框架如Bootstrap、Vue.js和React,克服挑战,最终实现从入门到精通的蜕变。
17 4
|
10天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
39 5
|
11天前
|
Go 数据处理 API
Go语言在微服务架构中的应用与优势
本文摘要采用问答形式,以期提供更直接的信息获取方式。 Q1: 为什么选择Go语言进行微服务开发? A1: Go语言的并发模型、简洁的语法和高效的编译速度使其成为微服务架构的理想选择。 Q2: Go语言在微服务架构中有哪些优势? A2: 主要优势包括高性能、高并发处理能力、简洁的代码和强大的标准库。 Q3: 文章将如何展示Go语言在微服务中的应用? A3: 通过对比其他语言和展示Go语言在实际项目中的应用案例,来说明其在微服务架构中的优势。
|
9天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
9天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
16天前
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。