前端工程化小结

项目初始化

脚手架

  • vue-cli

  • create-react-app

  • create-react-native

  • 各种boilerplate(github 搜索 关键字+boilerplate)

框架和库

UI框架

  • vue

    • element ui

    • iview

  • react

    • antd

前后端交互

  • fetch

  • axios

编码规范

  • eslint

  • stylelint

打包构建

webpack

一切皆模块,都可以通过js的方式引入

webpack核心

配置
  • entry

    • 打包入口,可以是单个文件,也可以是一个对象,或者数组,webpack会加载entry指定的文件,然后递归遍历每个文件的依赖,最后打包到一起,输出到output指定的路径

  • output

    • 指定webpack打包之后输出的路径

  • resolve

    • 配置webpack如何查找文件

    • 如果路径指向一个文件

      • 如果路径具有文件扩展名,则被直接将文件打包。

      • 否则,将使用 [resolve.extensions]选项作为文件扩展名来解析,此选项告诉解析器在解析中能够接受哪些扩展名(例如 .js, .jsx)

    • 如果路径指向一个文件夹,则采取以下步骤找到具有正确扩展名的正确文件

      • 如果文件夹中包含 package.json 文件,则按照顺序查找 resolve.mainFields 配置选项中指定的字段。并且 package.json 中的第一个这样的字段确定文件路径。

      • 如果 package.json 文件不存在或者 package.json 文件中的 main 字段没有返回一个有效路径,则按照顺序查找 resolve.mainFiles 配置选项中指定的文件名,看是否能在 import/require 目录下匹配到一个存在的文件名。

      • 文件扩展名通过 resolve.extensions 选项采用类似的方法进行解析。

  • module

    • module里配置了针对每一种模块如何加载

    • webpack支持的模块

      • ES2015 import 语句

      • CommonJS require() 语句

      • AMD define 和 require 语句

      • css/sass/less 文件中的 @import 语句。

      • 样式(url(...))或 HTML 文件(<img src=...>)中的图片链接(image url)

  • plugin

插件用于扩展webpack,在插件和loader能访问到的webpack上下文是不一样的,plugin可以处理loader处理不了的事情

- 常用插件
    - HtmlWebpackPlugin
    - DefinePlugin
    - HotModuleReplacementPlugin
-  开发
    - https://doc.webpack-china.org/contribute/writing-a-plugin/\#-
  • loader

loader 用于加载待打包的资源,在import的时候触发。

-  常用loader
    - postcss-loader
    - css-loader
    - file-loader
-  开发
    - https://doc.webpack-china.org/contribute/writing-a-loader

babel

  • babel-core

  • bable-register

  • babel-helper

  • babel-loader

polyfill

开发调试

方案一:直接使用webpack-dev-server

  • webpack-dev-server=dev-server+webpack-dev-middleware+webpack-hot-middleware

方案二:开发服务器+webpack-dev-middleware+webpack-hot-middleware

开发服务器

  • 开发服务器一般基于express或者koa

  • webpack-dev-middleware

    • express中间件,接受客户端的get请求,然后把webpack打包到内存里的文件返回给客户端

    • 源码分析

      • middleware.js---入口文件

        • 判断请求是否是get请求,不是则转到下一个中间件

        • 否则读取文件,发送给客户端

      • lib

        • GetFilenameFromUrl.js

          • 通过url取到内存里的文件名

          • PathJoin.js

            • 处理路径

        • Shared.js

          • 处理和webpack的交互

  • webpack-hot-middleware

    • 启动server-send-event服务器,监听服务

    • 监听到打包事件之后,发送消息给客户端

    • 客户端接受到消息后刷新页面

    • hot-middleware是刷新整个页面,如何实现增量更新

      • react-hot-loader

      • vue-loader

    • 源码解析

      • middleware.js---入口文件

      • client.js

      • client-overlay.js

      • helpers.js

      • process-update.js

测试

单元测试

  • vue

  • react

    • jest+Enzyme

e2e测试

  • nightwatch+selenium

  • puppeter

打包优化

  • UglifyJsPlugin

  • OptimizeCSSPlugin

  • CommonsChunkPlugin

  • CompressionWebpackPlugin

  • 按需加载

部署

  • jenkins

  • nginx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在设计和建模80M-100MHz频谱分析仪系统时,需要考虑以下几个方面: 1. 频率范围:80M-100MHz频率范围比较广,因此需要选择合适的射频前端和数字信号处理器。 2. 灵敏度:频谱分析仪需要具备高灵敏度,以便能够检测到低功率信号。 3. 分辨率带宽:选择合适的分辨率带宽,以便能够检测到细微的信号变化。 4. 动态范围:频谱分析仪需要具备高动态范围,以便能够检测到高功率信号和低功率信号。 5. 抗干扰能力:频谱分析仪需要具备良好的抗干扰能力,以便能够在复杂的电磁环境中工作。 6. 数据处理:选择合适的数据处理算法,以便能够处理大量的数据,提高频谱分析的准确性和精度。 在建模方面,可以使用MATLAB等工具进行建模和仿真,以便能够优化系统参数和算法,提高频谱分析的性能和效率。同时,可以考虑采用FPGA等硬件加速器,以便能够快速处理数据和提高系统的实时性。 ### 回答2: 80M-100MHz频谱分析仪是一种用于测量和分析电磁信号频谱的仪器。该频谱分析仪系统设计与建模主要包括硬件和软件两个方面。 在硬件设计方面,首先需要选择适合的高频放大器和滤波器来接收和处理输入信号。然后,通过调节输入信号的增益和带宽,将其转换为合适的频率范围。接下来,通过频谱分析算法对原始信号进行数字化,以实现更精确的频率分析。最后,通过显示屏或接口支持,将结果以易读的方式呈现给用户。 在软件设计方面,需要考虑信号处理算法和界面设计。信号处理算法包括傅里叶变换和功率谱估计等。傅里叶变换可以将时域信号转换为频域信号,通过分析幅度和相位信息,识别信号的频谱特征。功率谱估计可以计算信号的功率谱密度,用于测量信号的强度。界面设计方面,需要提供用户友好的操作界面,包括参数设置、数据显示和保存等功能,以方便用户使用和分析结果。 频谱分析仪的建模是为了更好地理解系统的工作原理和性能。建模过程可以通过数学方程和仿真工具来实现。通过建模,可以分析系统中各个组件的影响因素,优化系统的性能和可靠性。 总之,80M-100MHz频谱分析仪系统设计与建模是一个复杂且综合的工程项目,涉及硬件和软件两个方面。通过合理的设计和建模,可以实现准确、可靠的频谱分析,并提供给用户有用的信息和数据。 ### 回答3: 80M-100MHz频谱分析仪系统设计与建模小结 频谱分析仪是一种广泛应用于无线通信、电子测量和信号处理等领域的仪器设备,用于对信号进行频谱分析。本次系统设计与建模的主要目标是设计一个能够覆盖80M-100MHz频段的频谱分析仪。 首先,我们需要选取适当的硬件设备来实现频谱分析仪系统。根据所需覆盖的频段,在选择射频前端时,要考虑其频率范围、带宽、灵敏度等性能指标。在本次设计中,我们选择了具有80M-100MHz频率范围和较宽带宽的射频前端。此外,还需要选择合适的中频和基带芯片,以及相应的时钟模块。 然后,根据硬件选型结果,我们开始进行系统建模。在建模过程中,首先需要对射频前端进行建模,包括电路原理图设计和参数仿真。通过仿真,我们可以评估系统的性能,并优化硬件设计。接下来,我们需要对中频和基带部分进行建模,包括滤波、放大、混频、解调等工艺步骤。这些部分的建模需要考虑到频谱分析仪的功能需求,如灵敏度、动态范围等。 在建模完成后,我们需要进行系统级的仿真验证。通过设计频谱分析仪系统的测试用例,并通过仿真软件来验证系统的性能指标,如频率响应、噪声等。通过仿真结果,我们可以评估系统的性能,并进行必要的调整和改进。 最后,我们需要进行系统的物理实现和验证。根据系统设计和建模结果,我们可以制定射频前端、中频和基带芯片的布局与距离、连接方式等,以及整体电路的布线和连接。然后,通过实际测试和调试,验证系统的性能指标,并进行必要的优化和改进。 综上所述,80M-100MHz频谱分析仪系统的设计与建模是一个复杂而细致的过程,需要从硬件选型到系统建模、仿真验证和物理实现等多个方面进行全面考虑。通过这一过程,我们能够设计出符合80M-100MHz频谱分析需求的功能强大的频谱分析仪系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值