# fed-e-task-02-01 **Repository Path**: ms_H/fed-e-task-02-01 ## Basic Information - **Project Name**: fed-e-task-02-01 - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简答题 #### 1、谈谈你对工程化的初步认识,结合你之前遇到过的问题说出三个以上工程化能够解决问题或者带来的价值。 答:我认为工程化主要解决了以下几点 - 1、解决了传统语言的弊端:在项目中使用ES6新特性或者使用less/sass/postCss 来增强 css可编程性,而浏览器环境下是不被支持的。而使用grunt、gulp等工具可以将这些不被支持的 特性进行转换,来兼容浏览器环境,既方便了我们在开发时候代码的可编程性、可读性,也让我们 不用担心代码的兼容性,提升编程效率。 - 2、解决了多人开发代码的规范性,提升了代码质量:多人项目开发的时候每个人都有自己的 编程习惯和代码风格,这样就可能会导致我们在pull代码之后会出现冲突等一系列问题。那使用 git可以降低代码的冲突,方便进行代码管理,而使用ESLint就很大程度上约束了团队中每个开 发者的代码规范,大大增加了代码的可读性和质量 - 3、使项目中的文件模块化、组件化,减少了代码数量,增强了代码的复用行:在原生js项目中 如果想复用一个头部栏或者底部栏可能需要重新创建一份一样的页面,可能仅仅只是为了修改代码中 的几段文字,而commonJS和ESModule使用模块开发的形式,使用模块引入、模块导出的形式 对需要复用的代码进行单独定义、引入,大大减少了代码数量,增强了代码的可复用性,也提升了 开发的效率。 - 4、实现前后端分离,不再特别依赖后端服务 #### 2、你认为脚手架除了为我们创建项目结构,还有什么更深的意义? 答:我认为脚手架除了为我们创建项目结构外,更重要的是提供开发者一些约定和规范, 一个文件除了相同的组织结构外,在开发上还需要相同的开发范式、模块依赖、工具 配置以及基础的代码。我们可以通过脚手架工具根据自己的需求或者规范自定义脚手架, 并且可以进行重复使用,这样在开发新项目的时候,可以大大地节省时间的开销,将我 们的精力集中在功能模块的开发上,提高开发的效率,节约成本。 # 编程题 #### 1、概述脚手架实现的过程,并使用 NodeJS 完成一个自定义的小型脚手架工具 答: 在脚手架启动之后,会自动地询问预设的问题,根据回答的结果,结合一些模板文件 生成相应的项目结构。(代码在code文件夹)