自动化测试
自动化测试课程介绍在前端界,浏览器兼容性是让工程师们头疼的问题,对于经验丰富的人来说,很清楚浏览器有哪些坑,但是对于大部分程序员,最可怕的是代码明明在这个浏览器运行得很好,但是到了另一个浏览器中就不能正常运行了。对于这部分的程序员,保障代码能正常运行的方法便是能尽早发现问题,然后将其解决。
为什么需要自动化测试?
项目经过不断的开发,最终肯定会趋于稳定,在适当的时机下引入自动化测试能及早发现问题,保证产品的质量。
测试作为完整的开发流程中最后的一环,是保证产品质量重要的一环。而前端测试一般在产品开发流程中属于偏后的环节,在整个开发架构中属于较高层次,前端测试更加偏向于GUI的特性,因此前端的测试难度很大。
测试的目的:
有利于写出高质量的代码,尽早发现问题
有利于代码的扩展
有利于代码的维护
本课程的学习路径:
学习基础的概念,清晰测试不同的应用场景
学习不同的前端测试工具,了解如何进行选择
在项目中进行实践
本课程的主要内容:
介绍测试框架的分类
单元测试工具介绍:Mocha,Jest,AVA,Karma
E2E测试工具介绍:Nightmare
本课程的学习准备:
ID ...
代码规范
代码规范ESLint基本概念官网:
https://eslint.org/
中文网址:
http://eslint.cn/
基本概念:
javascript代码检测工具,帮助我们统一团队的代码风格
优势:
1、内置很多检查规则,同时支持自定义规则
2、NodeJS开发的,方便安装
可配置的信息:
Environments - 指定脚本的运行环境。每种环境都有一组特定的预定义全局变量。
Globals - 脚本在执行期间访问的额外的全局变量。
Rules - 启用的规则及其各自的错误级别。
...
使用步骤:
参考:http://eslint.cn/docs/user-guide/getting-started
1、安装全局 eslint 包,或是本地安装
npm i eslint -g
注意:如果执行脚本写在package.json中,可以不用全局安装,本地安装即可
但是如果要生成eslint的配置文件,必须安装全局包
2、在项目根目录创建一个eslint的配置文件,并且进行配置
使用 `eslint --init` ...
持续集成与持续部署
Linux 服务器Linux是操作系统:
Linux作为自由软件和开放源代码软件发展中最著名的例子,背靠社区与商业化的使用,使其得到了广泛的应用与发展。
Linux无处不在:
世界上500个最快的超级计算机90%以上运行Linux发行版或变种,包括最快的前10名超级计算机运行的都是基于Linux内核的操作系统。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上。
学习Linux迫在眉睫:
公司都在用
小伙伴们都会用
关键免费啊….
本课程的主要目标:
了解Linux操作系统(版本、目录、安装等)
学会使用Linux常见的命令
搭建Nginx服务,给你的Web小站一个运行环境吧~~
介绍HTTP(s)及免费申请SSL证书
云服务器阿里云、华为云(介绍)、云数据库RDS介绍
什么是负载均衡?负载均衡有什么用?阿里云SLB介绍
前置准备【下面的方式任选其一】:
使用虚拟化软件(本地安装)
购买云服务器
版本准备 ...
持续集成与持续部署
持续集成与持续部署课程介绍那些大厂们,天天DevOps、持续集成的?到底在讲些什么?这堂课来给你揭开持续集成与持续部署的面纱!!没有什么难的,盘它!
传统的开发过程中的坑:
BUG总是在最后才发现
越到项目后期,加班越严重
交付无法保障
变更频繁导致效率低下
无效的等待多,用户满足度低
你有没有想过/用过?当你哪一天…
不用为开发/测试环境不一致而苦恼
不用麻烦运维人员帮忙调试环境
不用手动进行测试,模拟环境中进行自测
不用手动发布、部署,自动化实现发布部署
不用管开发/测试环境,只用专注代码的开发?
持续集成解决了什么问题?
提高软件质量
效率迭代
便捷部署
快速交付、便于管理
课程的主要内容:
什么是CI/CD
介绍CI/CD流程
前端项目:结合CI/CD流程,实现快速迭代
Docker的使用,Jenkins+gitlab+nodejs自动化项目
持续集成工具介绍:Jenkins、Travis CI、Circle CI
环境准备:
Linux服务器(Centos 7.6/Ubuntu 16.04LTS)
VSCode+插件 Dockerfile
注册gith ...
容器化运维操作
容器化运维操作日趋复杂的运维开发环境,对虚拟服务器及应用服务的要求更加的多元化。我们需要更加容易扩展、性能优越、方便监控的管理服务,容器化应用、容器化运维应运而生。
【知己知彼】你将在学习本课程中学习到:
理解/安装docker容器技术
秒级快速部署mysql、nginx、tomcat等服务
使用容器技术发布nodejs应用
…
【工欲善其事,必先利其器】你需要准备的环境(三选一):
Linux环境(Centos 7以上/Debian 8以上/Ubuntu 16.04LTS以上版本)
Windows 64位专业版/企业版/教育版(Build 15063以上)
macOS Sierra 10.12以上的版本
如果,你有了上面的环境,就可以很快速的跟着我们的内容快速学习。
容器和Docker什么是容器化?容器化是将应用程序或服务、其依赖项及其配置(抽象化为部署清单文件)一起打包为容器映像的一种软件开发方法。
软件容器充当软件部署的标准单元,其中可以包含不同的代码和依赖项。 按照这种方式容器化软件,开发人员和 IT 专业人员只需进行极少修改或不修改,即可将其部署到不同的环境。
...
NoSQL数据库
NoSQL数据库课程介绍主要内容
Redis开发与实战(内存型)
Memcached入门(内存型)
MongoDb入门(存储型)
redis和memcached是同一类型,内存型。MongoDb是存储型。
着重讲解redis,存储性数据库还是mysql的天下。
学习目标
掌握非关系性数据库的特点以及使用
掌握NoSQL 技术在实际开发中的应用
NoSQL主要应用场景专门应对高并发,需要高速读写的场景,而就Redis技术而言,它的性能十分优越,可以支持每秒十几万次的读/写操作,其性能远超数据库,并且还支持集群、分布式、主从同步等配置。
天猫双11
抢红包,抢手机,抢火车票, 抢门票
ssr 服务端渲染
第一章 Redis
特点
api
结合nodejs应用
历史与发展
2008年,意大利的一家创业公司Merzia[ http://merzia.com]推出了一款基于MySQL的网站实时统计系统LLOOGG[ http://lloogg.com],然而没过多久该公司的创始人Salvatore Sanfilippo便开始对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身 ...
PM2一键部署
PM2一键部署http://pm2.keymetrics.io/
PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
好处
无需通过手工或是ftp的方式把本地代码拷贝到服务器上
无需手工启动或是重启远程服务器的Node服务
项目的升级及迭代非常方便
具有负载均衡功能
pm2安装npm i pm2 -g
指令# 启动
pm2 start xxx
# 停止
pm2 stop xxx
# 重启
pm2 restart xxx
# 查看列表
pm2 list
...
其它参考:http://pm2.keymetrics.io/docs/usage/quick-start/#cheatsheet
前提
购买阿里云服务器,生成CentOS7.x的系统
在CentOS7.x中安装必要的软件 Node、MongoDB、Apache、MySQL、FTPServer…
参考:https://github.com/Duanzihuang/linuxtutorial
本地和服务器安装pm2全局包
对阿里云服务器的安 ...
Gulp--基于流的自动化构建工具
Gulp—基于流的自动化构建工具基本概念官网:
https://gulpjs.com/
中文网址:
https://www.gulpjs.com.cn/
Gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。Gulp.js 是基于 Node.js 构建的,利用 Node.js 流的威力,你可以快速构建项目。
工作原理以流的形式,去执行构建项目的构建工作
作用
文件压缩
文件合并
文件指纹
…
优点
易于使用
通过代码优于配置的策略,Gulp 让简单的任务简单,复杂的任务可管理。
构建快速
利用 Node.js 流的威力,你可以快速构建项目并减少频繁的 IO 操作。
插件高质
Gulp 严格的插件指南确保插件如你期望的那样简洁高质得工作。
易于学习
通过最少的 API,掌握 Gulp 毫不费力,构建工作尽在掌握:如同一系列流管道。
使用步骤1、在项目根目录创建一个 gulpfile.js的配置文件
2、安装构建所需要的包
npm i @babel/core @babel/preset-env gulp gulp-babel gul ...
快来地学习canvas吧
Canvas概述<canvas>是 HTML5 新增的,一个可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素。它可以用来制作照片集或者制作简单(也不是那么简单)的动画,甚至可以进行实时视频处理和渲染。
创建Canvas<canvas>会创建一个固定大小的画布,会公开一个或多个 渲染上下文(画笔),使用 渲染上下文来绘制和处理要展示的内容。
<canvas id="canvas" width="200" height="200"></canvas>
其中width和height并不是指canvas的真正尺寸,而是指canvas的精度,即将整个画布平分为200*200个像素点,真正指定canvas尺寸大小可以由CSS指定
#canvas {
width: 500px;
height: 500px;
}
渲染上下文let canvas = document.getElementById('canvas') // 获取canvas元素 -> HTMLCanvasElement
let ctx = canva ...
H5新API
1 网络状态我们可以通过window.navigator.onLine来检测,用户当前的网络状况,返回一个布尔值, 但是不同浏览器会存在差异
所以HTML5 给我们提供了2个事件 online 和 offline
online用户网络连接时被调用
offline用户网络断开时被调用
他们监听的对象都是window
2 全屏HTML5规范允许用户自定义网页上任一元素全屏显示。
1、Node.requestFullScreen() 开启全屏显示
2、Node.cancelFullScreen() 关闭全屏显示
由于其兼容性原因,不同浏览器需要添加前缀如:
webkit内核浏览器:webkitRequestFullScreen、webkitCancelFullScreen,如chrome浏览器。
Gecko内核浏览器:mozRequestFullScreen、mozCancelFullScreen,如火狐浏览器。
ms 微软 msRequestFullscreen
3、document.fullScreen检测当前是否处于全屏
不同浏览器需要添加前缀
document.w ...
H5项目
学习目标:
能够说出fullpage插件的使用基本思路
能写出购物案例屏幕滚动效果及其侧边栏制作
能写出第一屏布局及其动画效果
能写出第二屏布局及其动画效果
能写出第三屏布局及其动画效果
能写出第四、五、六、七屏布局及其动画效果
能写出第八屏布局及其动画效果
能写出添加键盘滚动以及重新开始播放动画
—-购物网站宣传页面
案例目的:
复习—-复习前面学过的HTML5+CSS3
综合—-综合运用jquery完成案例
拓展—-可以做宣传页面或者个人简历
fullpage 全屏插件全屏滚动效果,原生js也很好实现,主要是用 mousewheel 鼠标滚轮滚动事件, 来判断上滚动还是下滚动,之后设置每次滚动的高度为屏幕的高度即可。但是,虽然效果简单,但是兼容性很差,要做很多兼容处理及比较麻烦啦!(了解一下,有兴趣的同学可以研究一下)
fullPage.js 是一个基于 jQuery 的插件,它能够帮你很方便、很轻松的制作出全屏网站。
github 官网 https://github.com/alvarotrigo/fullPage.js
中文演示地址 http://w ...
Node 第 2 天笔记
Node 第 2 天1. 学习目标◆ 能够使用 http 模块写一个基本的 web 服务器
◆ 能够说出模块化的好处
◆ 能够知道 CommonJS 规定了哪些内容
◆ 能够说出 Node.js 中模块的三大分类各自是什么
◆ 能够使用 npm 管理包
2. http 模块2.1 什么是 http 模块
http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台 Web 服务器,从而对外提供 Web 资源服务
如果要希望使用 http 模块创建 Web 服务器,则需要先导入它
const http = require('http')
2.2 进一步理解 http 模块的作用
服务器和普通电脑的区别在于,服务器上安装了 web 服务器软件
例如:IIS、Apache 等。通过安装这些服务器软件,就能把一台普通的电脑变成一台 web 服务器
在 Node.js 中,我们不需要使用 IIS、Apache 等这些第三方 web 服务器软件 ...