一、什么是工程化?
三要素:工具、方法、过程。
软件工程的定义:软件工程是(软件开发者,此处省略主体)为经济地获得能够在机器上高效运行的可靠软件(客体)而建立和使用的一系列好的工程化(手段、方式)原则(性质)
本质:利用一些工具,通过某种方法,并使得在软件生命周期中各个环节遵循工程化的原则,以此达到提高软件生产效率和保证软件质量的目的。
目的:解决如何提高整个系统生产效率和质量的问题
二、前端?后端?
简单来说,前端部分:基本上是由HTML+Css+JavaScript 网页三剑客组成的。后端部分就不说了,其实就是服务器端,各种开发语言写的各种框架、架构啥的。值得一提的是:近些年由于Node.js项目的启动带来的JavaScript这个屌丝的逆袭。引发了JavaScript的一股热牛。一下子JavaScript的全栈开发就火的一塌糊涂。
问题:
1、前端代码的复用性差。大多是复制粘贴似的复用
2、前端代码可维护性差。没有统一的规范和标准,一个人一个风格,即使有的开发团队有这个意识要规范,实施起来也很困难。
3、可读性不强。因为和后端到处是交互。而且有时候边界很模糊,比如:通常我们遵循mvc的思想进行开发,但是,前端有时候,也存在数据的处理。Js的DOM操作,或者对Json数据的再次处理。显得有重复。
4、大部分中小型的公司,可能由于技术或者资金等其他客观原因,使得开发过程根据就不分离前端后端。这就导致了开发效率的降低,质量的降低。付出的代价就是复用性、可维护性差。
5、国内目前大多数的前端开发人员,水平不是很高,而且参差不齐。但是需求量越来越大。因为前端,入门的门槛较低,导致这样的问题比较严重。一般,技术问题很少,有,也就是兼容性的问题了。更多的是:工程类的问题。规范和效率、质量上的矛盾比较尖锐。
三、为什么要分前后端?
职责分析:
前端的特点和职责:接收用户输入和后器端返回的数据,负责渲染数据并展示给用户看,代码在浏览器上运行由浏览器的内部引擎进行解析。
后端的特点:提供数据、负责业务逻辑的处理、代码跑在服务器上。
分离的好处:
四、小结:
在过去,往往在前端方面,一方面技术限制,二是我们的重视程度不够。这就造成了前端开发的问题。例如:
1、代码维护困难、可重用性低。
2、开发效率低
3、不能有效进行单元测试和代码审查
4、在文件或者代码之间的依赖关系上无法进行有效管理等一些问题的出现。
一个软件项目(工程),不管是前端还是后端,都是项目的一部分。为此,要遵循软件工程的原则,提高生产效率,保证软件的质量。我们必须将工程化的思想进行到底!