置顶文章
Node学习笔记
# Node.js # 介绍 Node.js 并不是 JavaScript 应用,也不是编程语言,而是 JavaScript 的运行时。 Node.js 是构建在 V8 引擎之上的,V8 引擎由 C / C 编写,因此 JavaScript 语言需要编译为 C / C 代码之后才能执行。 Node.js 采用异步 IO 和事件驱动的设计理念,可以高效的处理大量并发请求,提供了非阻塞 IO 接口和事件循环机制,使其可以编写出高性能、高扩展的应用程序。(异步 IO 通过 libuv 库来实现) Node.js 使用 npm 作为包管理工具 Node.js 适合做一些 IO...
more...whistle抓包
# whistle 简单使用 # whistle 安装启动 安装:npm i -g whistle 使用:w2 start 访问:访问对应的页面 作用: 任何的链接都会经过工具转发一下,并记录下来 使用前需要配置代理到 whistle 服务的地址和端口上(设置代理如下) # 使用步骤 设置代理: 手机端省略 电脑端: 网络偏好设置 --- 高级 --- 代理 --- 网页代理、安全网页代理 配置代理的 ip 地址和端口号(8899) 确认证书: 一般会自动下载,也可以打开 8899 端口找到证书下载并确认信任 查看抓包情况和设置代理转发: 打开 127.0.0.1:8899...
more...复杂业务部署与优化
# 软件生命周期: # 架构流程图 # 复杂项目通用方案 # 业务的复杂度 交互的复杂性 数据结构和状态的复杂性 多项目互相依赖的复杂性 打包 性能优化 第三方库的使用和调研以及二次开发 # 流程的复杂度 git flow lint 工具 单元测试 commit 信息 PR revirew CI / CD # CI / CD 的概念 业务组件库的开发和发布是随着一些列任务进化的: 本地 commit 钩子函数完成 commit 验证 代码 push 到远端之后 跑特定的 test(不仅仅是本机的 unit test,也可能有时间很长的 E2E test) test...
more...前端性能优化
# 5-1 前端性能优化 # 介绍 任何小型企业,博主或成长型公司在网上出现时面临的最大挑战之一就是 “页面加载时间” 问题。除非您能确保尽可能快速无缝地加载每个页面,您才可以拥有世界上最好最引人注目的网站,否则您仍然无法赢得关注者的尊重和忠诚度。 根据当今网络上的所有主要浏览器公司的说法,如果每个网站都想要排名靠前,表现良好并确保客户满意,那么每个网站都需要快。毕竟,如果您的网页加载速度很慢,那么您会立即增加客户开始在其他地方搜索信息,而不是坚持下去的风险。 这也是为什么很多公司去找专门的技术人员来做 SEO(Search Engine Optimization),即搜索引擎优化。...
more...持续集成与持续部署
# 5-4 持续集成与持续部署 传统的开发过程中的坑: BUG 总是在最后才发现 越到项目后期,加班越严重 交付无法保障 变更频繁导致效率低下 无效的等待多,用户满足度低 你有没有想过 / 用过?当你哪一天... 不用为开发 / 测试环境不一致而苦恼 不用麻烦运维人员帮忙调试环境 不用手动进行测试,模拟环境中进行自测 不用手动发布、部署,自动化实现发布部署 不用管开发 / 测试环境,只用专注代码的开发? 持续集成解决了什么问题? 提高软件质量 效率迭代 便捷部署 快速交付、便于管理 介绍: 什么是 CI/CD 介绍 CI/CD 流程 前端项目:结合 CI/CD...
more...typeScript笔记
# TS # 定义数据类型 /** * 定义数据类型 */let num: number = 1;let bool: boolean = false;/** * 定义固定类型数组 */let arr1: number[] = [1, 2, 3];let arr2: string[] = ["1", "2"];/** * 使用泛型定义固定类型数组 */let arr3: Array<number> = [1, 2, 3];/** * 不声明类型定义数组 */// 此时不生命类型则自动分配好了类型,不能赋值数组中不存在的类型//ts...
more...文章列表
rollup
# 介绍 rollup 是一个 ES 模块化打包工具,可以帮助我们编译小的代码到一个大的、负责的代码中,比如一个库或者一个应用程序 # 对比 我们会发现 Rollup 的定义、定位和 webpack 非常的相似: Rollup 也是一个模块化的打包工具,但是 Rollup 主要是针对 ES Modulej 进行打包的; 另外 webpacki 通常可以通过各种 loader 处理各种各样的文件,以及处理它们的依赖关系; rollup 更多时候是专注于处理 JavaScript 代码的(当然也可以处理 css、font、vue 等文件 另外 rollup 的配置和理念相对于...
more...Gulp
# 介绍 gulp 是前端开发过程中对代码进行构建的工具,是自动化项目的理器,能在开发过程中做很多重复的任务,并使用工具自动完成,可以大大提高我们的工作效率 glup 对工程化的作用:自动压缩 JS 文件 。自动压缩 CSS 文件。自动合并文件。自动编译 sass。自动压缩图片。自动刷新浏览器 等 # 安装 使用 gulp 命令需要安装对应的脚手架工具 # 使用 根目录下创建一个 gulpfile.js 文件,在文件中定义具体流程(可以使用各种插件),导出的就是一个个任务。 # API gulp 常用的 API 有: Task:这个 API 用来创建任务,在命令下可以输入...
more...gitlab cicd
# CICD CI:持续集成 CD:持续交付 CD:持续部署 # 上线流程 发布上线流程举例:git 上传,开始跑测试,进行打包,使用 docker 容器化镜像打包,推送到 dev 开发环境,部署到 staging 测试环境,最后部署到 production 生产环境 # pipeline 一次 pipeline 就相当于一次构建任务,里面可以包含多个流程,如:安装依赖,跑测试代码,eslint 校验,编译,部署测试服务器,部署生产服务器等流程,任何提交或者 Merge Request 的合并都可以触发 Pipeline。 # runner 一个 runner...
more...electron
Electron 中 preload 模块最为重要,它的源码逻辑如下: 首先 electron 中封装了 c++ 模块对接 node.js 的 addon 模块,方法是:在头文件中标注了:#include <node/addon.h> 此 c++ 模块将 app 实例绑定 (linkedBinding) 到 process 上,app 实例中有 exposeAPIInWorld 方法 接着 contextBridge 中的 expostInMainWorld 方法返回的是 process.linkedBinding.exposeAPIInWorld...
more...