为什么现在开始采用前后端分离开发方式能够大幅降低软件公司的开发成本?
Posted 英语这么说
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么现在开始采用前后端分离开发方式能够大幅降低软件公司的开发成本?相关的知识,希望对你有一定的参考价值。
预先浏览了一下知乎上关于外包的一些问答,其中一条提到:
“外包市场由于甲乙双方的糟糕表现,已经变成了一个甲方无理要求、乙方坑蒙拐骗、双方相互扯皮、市场没有赢家的局面。”
我是不是扯远了?没有。现今的软件开发大多分成2块内容,通俗的说就是“前端”和“后端”。假设公司属于后端团队,就相当于把前端开发外包给“前端”团队,也就是变成了之前提到的甲乙双方,如果协作不畅,难免最终演变成一个没有赢家的局面,即项目失败或者费用奇高(效率底下)。
采用前后端分离的方式至少包括但不限于以下优势。
职责明确
汉语的“分工协作”精确定义了这个需求,先分工再协作。基于微信的开发就是一个直观的例子,基于微信提供的API,各路软件公司开发了上百万数的程序,没人去责怪腾讯公司。描述不清?绝对不会,API就是最精准的文档,没有歧义。
保护核心技术
技术的进化
当一个公司的前后端糅合在一起的时候,变革意味要改变所有人的习惯。对于技术管理混乱的公司,对于程序能运行就行(漏洞百出)的公司,这是不能承受之重。先改变一部分后端程序员,然后改变全部后端程序员,然后再将影响延伸到前端。一旦完成这个变革,前后端的技术栈都会得到明显的提升。注意,这不是为了技术而技术,它关系到效率,关系到钱,钱,钱。
那标题为什么要加一个“现在开始”呢?因为软件技术的发展已经廉价地提供了可行性。以下内容会有比较多的专业名词。
99%的软件都是CRUD加上安全管理。
这个99%是我个人感觉,请依据您个人的想法改成90%,80%,如果您改成70%以下,我很难认同。
这样的软件还需要繁琐的编码吗?还需要3天2头的修正SQL注入漏洞吗?以下是一段Spring的java代码:
public interface UserRepository extends RepositoryBase<User> {
User findByMobile(String mobile);
User findByName(String name);
User findByAgeBetween(int start, int end);
@PreAuthorized("hasRole('ADMIN')")
User findBySalaryBetween(int start, int end);
@PreAuthorized("hasRole('ADMIN')")
User findBySalaryGreatThan(int salary);
}
是的,只要书写Interfaces即可,没有implementations!
这是DAO层,如何暴露成API呢? 如果选择Spring hateoas,只需添加几个annotations即可。jsonapi呢? Just go to visit http://jsonapi.org/ and choose one, it's that simple!
后端API化之后,那么前端用什么呢?ReactJs,AngularJs, EmberJs, Vue, Jquery.....(中间代理端).JSP, .NET, Python, Ruby, Perl,javascript。随便!!!你想用什么就用什么,别再抱怨公司的技术栈太落后,别再抱怨后端程序员代码太烂。但是可以质问:“这个Get请求花了整整15秒!怎么回事?”,后端程序员绝对会乖乖地去优化代码。
以上是关于为什么现在开始采用前后端分离开发方式能够大幅降低软件公司的开发成本?的主要内容,如果未能解决你的问题,请参考以下文章