0%

理解 nodejs

nodejs 不是框架也不是语言,它是基于chromeV8 引擎开发的 javascript 运行时环境,可以编写 js 获得系统能力运行于服务端.
nodejs 的特点是 无阻塞 io 和事件驱动,优点是高性能高并发,扩展性强,适合 web 开发(网络请求,数据库读写,资源加载…都属于 io,借助 v8 引擎 nodejs 也是动态语言里最快的语言)

阅读全文 »

中年危机比我们想象的近

人无远虑必有近忧: 指的是人如果不为长远考虑,那么忧患就在眼前,也许是几天,也许是几年,最终还是会遇到麻烦

我是一个有危机意识的人,一直相信这句话, 很多时候我还觉得自己有时候考虑太多,心理有负担,羡慕别人活得潇洒自由.
人类是从猿人进化的,很多特一直遗传至今,其中很重要的就是危机意识,从进化论来看,不太注意危险,没有灾难防患的猿人没有繁衍下来
互联网这个行业日新月异,各种技术更新飞快 手机里总是被推送各种学习文章,很容易的产生焦虑.

阅读全文 »

前置知识

  1. nodejs 里path,fs模块
  2. commander 包(用来自定义命令和参数)
  3. inquirer 包(命令行中交互式问答收集)
  4. del 包

项目搭建

  1. 使用npm init -y初始化一个项目,创建 bin 目录用来存放启动文件,创建 src 目录编写 cli 的主要代码
  2. 添加 bin 目录和index.js,这是一个 nodejs 下可执行的目录,全局模块调用入口一般是这里
  3. 在 package.json 文件添加bin字段,key 是全局执行的命令,值指向 bin 目录的执行文件
阅读全文 »

前置知识+

  1. vue
  2. vue-cli
  3. vue-loader
  4. npm 平台账号和package.json

组件开发

插件开发

打包以及后续

  1. package.jsonprivate字段一定配置为 false
  2. main字段需要指明入库的入口文件,例如main: lib/cqui.umd.min.js
  3. 编写readme,组件库的使用文档
  4. package.jsonscript字段添加build->vue-cli-service build --target lib --name lib(使用 vue-cli-service 的 lib 模式打包到 lib 目录)
  5. 运行npm run build
阅读全文 »

mysql介绍

安装

语句类型

  • DML: 数据操纵语句 用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 和select 等。(增添改查)
  • DDL: 数据定义语句 数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。
  • DCL(Data Control Language)语句: 数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。
  • TCL: 事务控制语言
阅读全文 »

简单介绍

Graphql是一种API查询语言,
目前接口开发中使用的还是基于restful规范的主流技术,曾经我以为restful已经是很完美的方案了,直到我了解到了本篇的主角–Graphql

restful的几个问题

  • 后端接口,字段变动, 接口报错,容易撕逼
  • 接口变动文档维护问题
  • 参数类型校验问题
  • 请求数据的冗余, 很多用不到的字段一并返回浪费资源
  • 深层数据需要依赖多次请求的结果才能拿到
  • 修改和添加新接口容易产生bug的问题
阅读全文 »

一些dom或者bom事件,如resize,scroll,input…会频繁执行(采用最小的时间单位4ms-10ms),浪费性能也容易卡顿,可以用防抖和节流做些性能优化

函数节流(throttle)

显示器刷新率一般是60/120fps,人眼睛能捕捉的频率,如果特别高,没有实际意义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 节流(固定单位时间内触发一次)
function throttle(fn, delay = 1000) {
let flag = true // 做一个判断标识,当是false,return
return function () { //闭包
if (!flag) {
return
}
flag = false
setTimeout(() => {
fn.apply(this, arguments) // 改变指针和传入参数
flag = true
}, delay)
}
}
阅读全文 »

协议介绍

当你开始使用一个网站还是手机应用的时候, 那么第一步很有可能是从注册开始的, 从最初一丝不苟的填写一串表单注册,到使用短信验证码注册, 体验越来越好, 不过这个时候也会带来几个问题:

  • 用户还是感觉麻烦进而不再注册,懒惰是人类的发展一大动力
  • 越来越多的账号需要记忆,忘记账号的情况也越来越多
  • 注册之后没有社交关系
  • 个人资料的设置
    采用授权方式的OAuth2.0协议的出现解决了以上的各种问题,什么是OAuth2.0呢
阅读全文 »