前端架构变更记

3 篇文章 0 订阅
2 篇文章 0 订阅

我一开始来公司的时候,公司只有两个刚毕业的前端,前端也仅仅是基于jquery,那个时候,我还是第一次经历这种前后端分离的组织架构。开发时间也是大大的高于预期,我很快意识到这种组织结构是弊大于利的。

随后我做的企业博客项目由于前后端都是我一个人开发,项目时间和进度都和估计的差不多,用时远远低于前后端分开开发的时间。

随后我需要对核心业务进行一次彻底重构,这个时候我们前端想要进步,想用先进的技术组织前端,好吧,我理解。我们看了angular,vue,react ,由于我们的前端是运行在微信端,react首先出局,然后是angular,它那个时候还没有treeshaking这种精简前端编译后代码的工具呢,另外对于前端来说,angular大量用了后端的思想,入门门槛比较高,也出局了。我们看了一下vue的代码,确实比较简单,就采用它了。但是在项目分工上,产生了分歧。前端想后端提供接口,自己开发和调试,但是我想后端提供接口,前后端同时开发,最后后端统一联调代码,但是被领导给驳回了。在我的反复解释下,他也清楚这样代码的开发速度会很慢,但是好处就是让前端感觉被重视,不会离职。好吧,老板买单我还说什么呢!我们开发用了比正常多一半的时间,把这个版本开发出来了。并且最重要的是,没有人精通全部的逻辑,没有人能对代码的正确性负责,只能靠测试。最终我们到年底的时候发现了一个bug,导致我们损失30多万。导致所有人的年终奖(一个月工资)都被扣了,期权也扣了点。在项目开发的初期,我曾经对前端的代码评审过,感觉他们是为了技术而技术,把简单的逻辑封装得很复杂,也用了最先进的sass,es6,提出质疑的时候,他们还说这样写比较规范,我要求他们改的时候,老板恰好在旁边,老板不懂技术,但是他觉得要以理服人,不要强制。唉,算了我又说服不了人家,只能随他们搞了,结果就是前端逻辑搞得异常复杂,对于新手来说,入门门槛非常高。

随着我们业务的发展,我们也融了资,开始了扩张之路。后端招人是比较容易的,但是前端由于vue是比较新的技术,会的人不多,因此招人不是很顺利,基本上是自己培养。还有我们老板要留的前端全部离职了,现在全是新手,导致我们开发一个需求,后端开发完过了3~4个星期都快忘了,前端才开始和我们联调。本来我们现在招的人是打算开发一个其他的产品线的,但是全部都用来维护我们的借条业务了。我们今年新加入的合伙人兼cto,已经不写代码了,但是为了我们能提高效率,学习好久的vue技术,但是觉得前端vue的入门门槛太高了,终于说服老板下定决心,对前端代码进行重构,采用前后端的逻辑都由后端维护,前端只负责切图的开发模式。转型必然是痛苦的,所有前端都反对并且离职。我们重新招了前端,只负责切图,后端负责实现逻辑。我们重构的前端采用mui+vue多页面的架构,只用vue基本的mvvm特性,类似freemaker的写法,加快开发的速度。

这个对于前端开发人员的确是个打击,但也是真相,一个全栈工程师的开发效率绝不是1个前端+1个后端能比拟的,一个全栈工程师能顶1.5个前端+1.5个后端,成本全在互相的理解和交流上,也就是让大家对业务理解一致上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在软件工程中,软件系统前端设计的主要目的是将用户界面与后端逻辑分离,实现系统的松耦合和可维护性。因此,软件系统前端设计通常包括以下内容: 1. 用户界面设计:这是将用户需求转化为可操作的界面的过程,包括用户界面的布局、颜色、字体、图标等方面的设计。 2. 前端逻辑设计:这是实现用户界面与后端逻辑的连接的过程,包括前端控制器、路由、数据绑定、验证等方面的设计。 3. 数据库设计:这是设计数据库结构以满足系统需求的过程,包括数据表的设计、关系的建立、索引的创建等方面的设计。 对于软件系统前端设计的架构图通常采用MVC(Model-View-Controller)或MVVM(Model-View-ViewModel)模式。这些模式的目的是将用户界面、业务逻辑和数据分离,以提高系统的可维护性和扩展性。其中,MVC模式将系统分为Model、View和Controller三个部分,MVVM模式则将系统分为Model、View和ViewModel三个部分。 总之,软件系统前端设计的架构图应该清晰明了,将用户界面、业务逻辑和数据分离,以便实现系统的松耦合和可维护性。 ### 回答2: 在软件工程中,软件系统前端设计的架构图通常是通过以下步骤来画的。 首先,确定系统的功能和需求。这包括确定软件的用户界面、交互逻辑和功能要求。 其次,确定系统的模块和组件。根据功能和需求确定系统的核心模块,以及模块之间的关系和依赖。 然后,选择适合的前端架构模式。常见的前端架构模式包括MVC(Model-View-Controller)、MVVM(Model-View-ViewModel)等。根据项目需求选择最适合的架构模式,并确定各个模块在该模式下的职责和交互方式。 接着,绘制系统的总体架构图。使用流程图、类图等形式来表示系统的总体架构,包括用户界面、业务逻辑、数据模型等。 然后,绘制各个模块的详细设计。对于每个模块,绘制其内部的组件、类、接口等的详细设计图,包括模块间的调用关系、数据传递方式等。 最后,根据实际需要,可以绘制其他辅助图表,如状态图、序列图等,以更清晰地展示系统的设计和交互过程。 在整个绘制过程中,需要注重系统的可扩展性、可维护性和性能等方面的考虑。同时,要考虑到系统的需求变更和功能扩展可能带来的影响,尽量设计出灵活和易于维护的架构

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值