论前端工程化

二叶草 2020年2月4日21:36:38优化评论阅读模式

前端工程化是什么?

前端工程化是一种思想!在一个瞬间,我头脑里给我这么一个答案。前端工程化首先应该是一个思想,而不是一个个具体的工程化方案,前面绝大多数文章、人都在讲方案,以一个方案去讲清一个思想,太轻浮了。就像模块化,使用webpack/broswerify,或者requirejs/seajs,AMD/CMD/CommonJS就是模块化,哪能这么去解释,连webpack得官网都说了,webpack is a module bundler,我们甚至不用到前面所说的工具就能实现模块化思想。举另外一个简单例子,就是实现社会主义现代化,首先它应该是一个指导思想,而那些五年规划,就是具体方案,这些五年规划是为了达到社会主义现代化的具体方针,方针有很多针对性解决的东西,但都是围绕着指导思想走了。

所以!认请思想,才能在这个思想指导下,制定出合适自己的项目的方案。(切莫直接照搬方案,至少在理解思想前)

那么,前端工程化是什么?

前端开发,首先是软件开发,那么前端工程化,应该是软件工程的一部分。

『软件工程(software engineering)这个概念,研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。』 (维基百科)

仔细剖析这句话是非常重要的。

怎么理解这个系统性。照着系统的概念,系统就是若干相互联系、相互作用、相互依赖的要素结合而成的,具有一定的结构和功能,并处在一定环境下的有机整体。我们所要做的事,肯定是互相关联的,不会单一出现某一元素是置身事外,并且是有序的整理、编排形成的具有整体性的整体。强调的是关联性、完整性。

就软件的生命周期来讲,定义及规划、需求分析、软件设计、程序编码、软件测试、运行维护,每个步骤都是息息相关的,继而形成一个完整的过程。说个题外话,常用的生命周期模型,在现代软件产品中,讲究的快速迭代,就是迭代式模型。

规范化。规范这个字面上就很好理解,但是问题就在于,我们需要规范化的是什么?其实软件的生命周期的每个步骤,都需要规范标准。作为一个软件工程师,我大多是关注程序编码的规范,其他的生命周期里的不甚了解。从开发环境(版本控制工具、IDE、数据库等)、编程风格(代码格式、命名规范),到编程经验、自动化构建与测试。这些都应该有标准,当然,规范的深度也是值得考虑的问题,因为太多的具体标准,有时难以记住、实施,所以有时又提倡约定大于配置。

可定量的过程化方法。跟前面所说的系统性、规范性一样,可定量也是在描述这个过程化方法(开发流程)。可定量这个没啥好说的,可以规定数量(这解释解释得我脸红)。

正确的管理技术。管理是人、事、物,从人来讲,就是如何进行团队协作的方法;从事来讲,是协调这件事的起始过程;从物来讲,是对于某个具象的东西控制;例如代码的版本控制。

最好的技术方法。从编程开发上讲,可简单理解为,使用什么语言、工具、框架/库,可最好适用于你的项目。(没有最好的技术方法,只有最合适的)

所以从上面的方法论,软件工程的目的就是:提高效率、保证质量。

那么,如果从软件工程概念理解前端工程化,那么前端工程化可解读成什么?

美团点评技术团队有篇文章《前端工程化开发方案app-proto》总结的特别好。根据具体的业务特点,将前端的开发流程、技术、工具、经验等规范化、标准化就是前端工程化。

将该概念细细品味,就会发觉跟软件工程的概念一一对应了。可能有人会说,组件化、模块化、自动化怎么没有,我觉得组件化、模块化应该归类到编程经验里,还没重要到要提出来强调说明,而自动化这个的确是可以加上(毕竟是提高效率的大杀器)。 这里我要特别赞许的是,文章的标题指明是前端工程化方案,没有误导人。

所以前端工程化是什么?

将前端的开发流程、技术、工具、经验等规范化、标准化、自动化就是前端工程化。到此为止,前端工程化不再是个模棱两可的概念。在这概念下,如何指示自己的项目开发,我觉得软件工程师可以这样:

选择适宜的框架、库,之所以先这个,因为它会影响你工具选择和代码规范。

选择工具,包含开发工具、版本控制工具、构建工具、测试工具等。

制定代码规范,统一编程风格,附带工具做校验。

选择开发模式(类似之前说的组件化、模块化),但一般这个是与框架结合了。

使用工具将开发流程自动化。

好了,长篇大论了那么多,这就是我对前端工程化的理解的艰辛路程。

 

 

 

本文来源于:论前端工程化-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

在寻找靠谱的建站服务?

提供建站全方位托管服务,告诉我你的需求,剩下的交给我帮你处理,建站过程中碰到的任何小问题免费处理,网站所有数据由你自己掌握,还提供网站SEO指导,犹豫什么呢?联系我吧。

 

  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 加入Q群
  • QQ扫一扫
  • weinxin
二叶草
nginx解析漏洞 优化

nginx解析漏洞

phpstudy(小皮模板存在nginx解析漏洞) 影响版本 phptsuy8.1.07的Nginx1.5.11版本影响版本 phptsuy8.1.07的Nginx1.5.11版本 phpstudy介...
网站SEO优化基础流程(新手必看) 优化

网站SEO优化基础流程(新手必看)

宝塔面板搭建一个获取网站的Favicon图标的APIgetFavicon是一个可以获取网站的Favicon图标并显示在你的网页上的项目。安装方法很简单,属于开箱即食。这篇文章还是基于宝塔面板来搭建。 ...

发表评论