规范Git Commit提交记录和版本发布记录

在开发过程中我们一般都会用到git管理代码,在git commit提交代码时我们一般对git commit message随便写点简单的描述,可是随着项目参与人数的增多,发现提交的commit记录越来越杂乱,不便查阅,在网上找了下解决方案,总结一下方便在公司项目中运用。

Base64编码原理及应用

最近在做一个H5上传图片并压缩的项目,其过程主要是先将图片上传通过readAsDataURL获取上传图片base64编码,然后根据高宽比将图片画到canvas上实现压缩,在通过toDataURL获取压缩后的图片。点击可查看demo在该过程中用到base64编码,于是就想弄清楚base64编码原理,才有了这篇博客。

CSS 计数器详解

在前端开发中总少不了列表项,对于列表项序号,射鸡师一般会列出个1,2,3…序号。在不了解css计数器属性之前,我一般会用精灵图,用类名来区分序列号图片。这样做尽管可以达到目的,但是很不方便,开发过程耗时较长而且维护修改起来较困难。用css counter配合伪类的content完美的解决了这个问题,这里详细介绍下css counter属性

为什么使用HTTP2?

最近我们公司的官网由原来的http1.1已升级到http2,而我们前端开发对http2还是一片懵懂,更不知道为何换成了这个,故此补充了下http2的相关知识。

Docker的安装与使用介绍

docker 是什么?

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

《Node.js权威指南》--读书笔记

第一章 node.js 介绍

非阻塞型 I/O 机制

当在访问数据库取得搜索结果的时候,在开始访问数据库之后,数据库返回结果之前,存在一段等待时间。
在传统的单线程处理机制中,在执行了访问数据库的代码之后,整个线程都将暂停下来,等待数据库返回查询结果之后才能继续执行后面的代码。这是 I/O 型阻塞
node.js 中在执行了访问数据库的代码之后将立即执行其后面的代码段,把数据库返回的结果的处理代码放在回调函数中。这是非阻塞型 I/O 机制

exports与module.exports的区别,export与export.defult区别

在 JS 模块化编程中,之前使用的是 require.js 或者 sea.js。随着前端工程化工具 webpack 的推出,使得前端 js 可以使用 CommonJS 模块标准或者使用 ES6 moduel 特性。
在 CommonJs 模块标准中我们载入模块使用的是 require(),输出模块用的是 exports 或者 module.exports
在 ES6 中载入模块我们用的是 import ,输出模块用的是 export

Node.js学习记录(一)--安装设置篇

安装 Node

window
window 上安装 node 可选择以下两种方式:
方式一:直接进入官网下载安装
进入node.js 官网点击 windows,选择.msi 后缀的,根据自己的电脑选择对应的 64 位或 32 位后,就会自动开始下载到本地。
安装过程也是直接下一步的简单式安装,这种安装优点是安装很便捷,缺点是只能装一个固定的 node 版本,对于需要在不同版本下开发的同学就不合适了。
方式二:通过 nvm 安装管理多个版本 node
1、下载 nvm 包 地址:https://github.com/coreybutler/nvm-windows/releases,我们选择第一个:nvm-noinstall.zip 下载完成后解压到一个地方,比如:D:\Program Files\nvm 里面的文件列表是这样的:elevate.cmd、elevate.vbs、install.cmd、LICENSE、nvm.exe

前端开发如何实现自动化编译与部署?

如今的前端开发早已不用之前的刀耕火种的方式写代码了,项目开始时会考虑各种前端框架 react vue angular 等,然后就是用 webpack 搭建项目开发架构。开发完后我们会将 webpack 编译后的文件通过 svn 发到服务器上,但是这样很容易存在文件漏发,且多人参与发开易冲突等。经过多次开发实践,目前我们的项目采用 jenkins+gitlab 实现自动化编译与部署,这样简化了项目部署等问题,极大的减少了因代码发布而引起的 bug 数量。

工作中遇到的细节问题总结(二)

在前端开发工作中总会遇到各种各样的坑,今天这篇博文就是为了记录下踩过的坑,分析后发现容易掉坑里的地方一般是自己不熟悉的知识点或者是易忽略的知识点。故作此文,谨以自勉。

我是这样理解HTTP和HTTPS区别的

为何要用 https?

http 协议的缺点

  • 通信使用明文,内容可能被窃听(重要密码泄露)
  • 不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)
  • 无法证明报文的完整性,有可能已遭篡改(运营商劫持)

如何利用Vagrant快速搭建相同配置的开发环境?

作为一名程序猿,我们常常会遇到需要搭建开发环境的问题,特别是在新入职的时候,sublime, node, apache, mysql, php 等等以及各种框架的安装。如果入职的是大公司有可能这些必要的开发环境运维人员会为我们安装好,如果是中小型公司那就需要开发者自己来搭建开发环境,而且还要避免安装的版本不同等问题,这就需要用到我们今天介绍的这款工具了。Vagrant 目前是国内互联网公司应用最多的内部开发环境工具。Vagrant 是我们开发者的福音,使我们完全摆脱了重复配置环境的处境。

工作中遇到的细节问题总结(一)

在前端开发工作中总会遇到各种各样的坑,今天这篇博文就是为了记录下踩过的坑,分析后发现容易掉坑里的地方一般是自己不熟悉的知识点或者是易忽略的知识点。故作此文,谨以自勉。

CSS3创建圆圈进度条

最近在工作中需要做一个圆圈倒计时,刚开始的想法是做个纯数字的倒计时即可,可是需求觉得这个不太好看,想加个倒计时进度条。于是就有了接下来的分析过程…

《ECMAScript6标准入门》第三版--读书笔记

2015 年 6 月,ECMAScript 6 正式通过,成为国际标准。尽管在目前的工作中还没有使用 ES6,但是每项新技术出来总是忍不住想尝尝鲜,想知道 ES6 能为前端开发带来哪些变化?对自己的工作有哪些方面可以提升。刚好看到阮一峰的《ES6 标准入门》,便顺着这本书尝试着 ES6 的各种新特性。

LNMP + Apache 架构配置

从事前端开发已3年有余,越来越发现前端开发要学习的知识已不仅仅是html+css+js那么简单了,2017年市场上就有了大前端的概念,可以说对前端工程师的要求也越来越高了,从招聘的要求中可以看到熟悉一门后端语言可以说是标配了。由于目前公司用的后台语言是PHP,借此机会充分锻炼了我的PHP技能。如今不仅要对PHP语言熟悉,还要熟悉公司整个架构,今天我通过在WIN7上安装的虚拟机上练习了下搭建LNMPA架构,顺便做下笔记。