51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2091|回复: 0
打印 上一主题 下一主题

Web前端前沿技术专业术语解读

[复制链接]
  • TA的每日心情
    无聊
    2024-3-7 09:16
  • 签到天数: 43 天

    连续签到: 2 天

    [LV.5]测试团长

    跳转到指定楼层
    1#
    发表于 2018-3-27 14:13:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    最近常听到关于web前端中许多新鲜的术语,并不明白是什么技术,比如Browserify Webpack NPM Bower等。
    下面将对一下前沿技术专业术语进行一个简单的解读,和一个层次的索引归类

    什么是FIS

    FIS 前端集成解决方案 Front-end Integrated Solution

    什么是GIT和SVN ?

    简单来说GIT和SVN都是版本管理系统。GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被
    使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一
    个自己的版本库。

    什么是CoffeeScript

    CoffeeScript是一套JavaScript的转译语言,相当于是JavaScript预编译有点像css预编译的意思

    什么是grunt、 gulp

    前端构建工具也可以理解为前端自动化工具
    1. 可以自动编译less,sass为css
    2. 文件合并
    3. 文件压缩
    4. 语法检查
    5. 监听文件变化

    什么是CommonJS

    根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并
    执行,最后返回文件内部的exports对象。可以理解为CommonJS是一种规范,是用在服务器端的,NodeJS
    是这种规范的实现。CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填
    补了这个空白。
    开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同
    的主机环境中:
    ①服务器端JavaScript应用程序
    ②命令行工具
    ③图形界面应用程序
    ④混合应用程序(如,Titanium或Adobe AIR))。

    什么是模块

    DuoJS
    RequireJS
    Sea.js
    ReactJS
    AngularJS
    浏览器本身并不提供模块管理的机制,为了调用各个模块,有时不得不在网页中,加入一大堆script标签。
    这样就使得网页体积臃肿,难以维护,还产生大量的HTTP请求,拖慢显示速度,影响用户体验。
    为了解决这个问题,前端的模块管理器(package management)应运而生。它可以轻松管理各种JavaSc
    ript脚本的依赖关系,自动加载各个模块,使得网页结构清晰合理。不夸张地说,将来所有的前端JavaScr
    ipt项目,应该都会采用这种方式开发。
    最早也是最有名的前端模块管理器,非RequireJS莫属。它采用AMD格式,异步加载各种模块。具体的用
    法,可以参考我写的教程。Require.js的问题在于各种参数设置过于繁琐,不容易学习,很难完全掌握。
    而且,实际应用中,往往还需要在服务器端,将所有模块合并后,再统一加载,这多出了很多工作量。

    模块管理器

    AMD
    CMD
    Browserify
    Bower
    Component
    NPM
    NPM是nodejs官方未nodejs定制的一个工具,是Node.js的包管理器,是Node Packaged Modules的简称,
    通过npm可以下载安装nodejs的模块包,nodejs有很多优秀的模块包可以让开发这快速开发。是为了帮助
    Node解决依赖包的安装问题
    NPM属于Node模块的管理器。而spm和bower、Component是前端模块管理,作为一个静态资源共享平台,
    用来发布和共享前端模块

    AMD、CMD是用在浏览器端的,异步的,如RequireJS 和SeaJS
    AMD((Asynchromous Module Definition) 是 RequireJS 在推广过程中对模块定义的规范化产出
    CMD是SeaJS 在推广过程中对模块定义的规范化产出
    CMD和AMD的区别有以下几点:
    ①对于依赖的模块AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成可以延迟执
    行(根据写法不同,处理方式不通过)
    ②CMD推崇依赖就近,AMD推崇依赖前置。
    ③AMD的api默认是一个当多个用,CMD严格的区分推崇职责单一。例如:AMD里require分全局的和局
    部的。CMD里面没有全局的 require,提供 seajs.use()来实现模块系统的加载启动。CMD里每个API都简
    单纯粹。

    Browserify 是目前最常用的 CommonJS 格式转换的工具。Browserify本身不是模块管理器,只是让服
    务器端的CommonJS格式的模块可以运行在浏览器端。这意味着通过它,我们可以使用Node.js的npm
    模块管理器。所以,实际上,它等于间接为浏览器提供了npm的功能

    spm和bower、component都是针对前端模块化共享而提供的解决方案

    最后
    - Browserify和Webpack属于同一类型技术
    - GIT和SVN 属于同一类型技术
    - AMD CMD Bower Component NPM属于同一类型技术
    - CommonJS 是一种规范 AngularJS RequireJS ReactJS SeaJS是基于这种规范上应运而生的框架

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-26 15:01 , Processed in 0.064103 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表