阿里云双十一新人活动,点击链接进行购买: 邀请你一起 86元/年 购买云服务器~~
你可以跟着我的笔记 当我有一台服务器时,我做了什么 来开始维护服务器并搭建应用。

# Pre 2018

# 2018/01/01

# 2018/01/02

  • graaph-ql
    • 如何排序
    • 如何自定义类型
      • 什么是 parseLiteral
      • 什么是 inputType

# 2018/01/04

  • Promise.all 最多有多少个
  • graph-ql
    • Query
    • Sort
    • Limit
    • Offset
  • 感冒

# 2018/01/05

  • 感冒
  • SharedWorker

# 2018/01/06

  • 监听 console 事件

# 2018/01/08

  • https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/
  • multi stage build
  • require
    • 如果同时有 a.js a.json 会 require 哪一个
    • 如果在异步 module.exports 会导出不
  • dataloader

# 2018/01/09

  • graphql
    • 如何重命名嵌套查询
    • 认证
      • jwt
    • 权限

# 2018/01/10

  • Dockerfile
    • 使用 sock 代替 port
  • graphql
    • 是否有必要定义 email 为 scalar 类型
    • resolver 执行顺序
    • 查那个字段就返回那个attribute
    • 分页只需要查找分页的总数

# 2018/01/11

  • sequelize
    • Datatype
    • sequelize-auto 如何重命名表的列名
    • [x] 添加字段
    • [x] 更改字段
    • [x] 删除字段
  • graphql
    • http error code
  • docker
    • 如何知道程序正确跑起来了

# 2018/01/17

  • sequelize
    • model 会驼峰,但是查找的时候不会驼峰
    • graph 按需加载字段,不出结果 -> 有可能是驼峰转义出现的问题
  • confirm 与 Modal 区别

# 2018/01/18

  • 数据库
    • 写数据
    • 读数据
    • 数据不一致 (更新pdf)
  • 批量导出教训 -> 尽量写纯函数
  • 多对多
    • orm
    • n:1 + 1:m
    • 多个字段多写where
  • sql
    • 为什么不设置成两个外键
  • 关于常量
    • 常量应该是一些 英文常量,数据库存为 ENUM,而不是所谓的数字,后端存一份对应关系,前端也得存一份对应关系
    • graphql 方便在可以返回 enumType,且语义化,易读
  • 前期架构比较重要,需要两到三周专门做架构,而不是立马上手干活,否则项目很容易失控
  • 负责人不仅仅是对项目的负责,更重要的是对人的负责,追根到底是对自己的负责
    • 人员分工
    • 必须有一人需要提出来专门做基础支持,特别是早期时,后可以做业务,以基础支持为主
    • 每人负责一个模块,由始至终负责这个模块
  • 前端性能优化
    • 应用层面的缓存
      • 首屏优化 -> toB 需求弱
      • 按需加载 ->
      • 应用层缓存 -> 数据永久缓存(id) + server push
      • 持久化缓存 -> localStorage
    • http 层面的缓存 (Cache-Control + hash)
    • service-worker 层面的缓存 (static files)
    • 数据库层面的缓存
      • 外键
      • 只取所需要的数据 (field on demand)
    • redis
  • 关于前端与后端分页
    • 首先计算 count,缓存
    • 500 为分界点
  • 以业务为产出的结果必定会导致前期架构的

# 2018/01/20

  • graphql
    • 返回错误码 > 300
  • graphql
    • 如何订阅数据库的变化
    • 如何决定从 cache 中取还是从 server 中取
    • 比如分页查询有很多重复项,如何抽取
    • 最外边的 me 查询如何抽取
    • cacheResolver ->
      • 避免重复的请求
      • 避免重复的数据
    • this.props.updateQuery

# 2018/01/22

  • networkStatus
  • isFrozen
  • isSealed
  • isExtensible

# 2018/01/24

  • webpack
    • 把 lodash 以及 antd 放到 babel 的 plugins 与直接引入有什么不同

# 2018/01/26

  • graphql
    • 每次查询都要嵌套很深
    • mutation 与 query 对不上

# 2018/02/02

  • redis
    • hget
    • hmset
  • sql
    • order by count 问题
    • 数据库排序和自己排序有什么区别
  • graphql
    • users { todos }, u: users: { todos }
      • dataloader 有可能只工作与 users 的 todos,而不工作与 u 的 todos

# 2018/02/08

  • 消息服务

# 2018/02/09

  • https://dferber90.github.io/graphql-ast-explorer/
  • bluebird Promise 规范

# 2018/02/21

  • 历史上的今天
    • 凡尔登战役
  • 古今战役
    • 索姆河战役
    • 晋阳之战
      • 韩魏赵智
    • 即墨之战
      • 齐与六国

# 2018/02/28

  • 地质年代
    • 宙代纪世期
    • 二叠纪
    • 三叠纪
    • 侏罗纪
    • 白垩纪
  • 历史上的今天
    • 林宅血案
      • 美丽岛事件
  • 电影
    • 英国电影学院奖
    • 金球奖
    • 奥斯卡金像奖

# 2018/03/01

  • 历史上的今天
    • 黄石国家公园(1872)
    • 满洲国 (1932)
  • 世界遗产
    • 中国南方喀斯特
      • 云南石林
    • 中国丹霞
    • 鼓浪屿

# 2018/03/02

  • 历史上的今天
    • 唐宣宗
    • 第一次中东战争 (1948)
      • 阿拉伯世界
      • 中东
        • 巴勒斯坦
        • 以色列
      • 东南亚
        • 缅甸
          • 三次英缅战争
    • 联盟28号捷克斯洛伐克宇航员进入太空 (1978)

# 2018/03/05

  • apollo-server-core/runHttpQuery

# 2018/03/06

  • crontab 定时任务处理
    • 每个定时任务通过 API 访问,然后使用系统 crontab 访问 API

# 2018/03/07

  • 邮箱自适应

# 2018/03/08

  • wiki
    • 彩凤鸣岐
    • 中国南方航空6901号劫机事件
    • 法语圈国际组织

# 2018/03/09

  • 基金
    • 110022 易方达消费 58 44 17 股票
    • 000619 东方红 52 40 19 混合
    • 519732 交银混合 48 36 21 混合
    • 160222 食品饮料 48 37 16 指数
    • 165312 央视财经50 41 34 14 指数

# 2018/03/12

# 2018/03/14

  • jwt
      • json web encryption
    • jw
    • jws
    • jwa

# 2018/03/16

  • jwt 每次生成的 sign 都会发生变化,但是 jws 不变 -> iat payload

# 2018/03/20

  • 三大影展
    • 威尼斯电影节
    • 戛纳电影节
    • 柏林电影节
  • 历史上的今天
    • 东印度公司成立 (1602)
    • 拿破仑建立百日皇朝 (1815)
    • 美国共和党成立 (1854)
  • wiki
    • 中山国
      • 魏灭中山之战 (乐羊)
      • 赵灭中山之战 (赵武灵王)

# 2018/03/21

  • gzip
    • oss-cn-beijing 上有效,smartstudy 上无效

# 2018/03/22

  • crontab

# 2018/03/24

  • 历史上的今天
    • 南京事件 (1927)
  • 中美贸易战
    • 中美经贸关系
    • 最惠国待遇
      • 给予第三国在贸易关税的优惠和豁免
        • 永久正常贸易关系
        • WTO 互为最惠国待遇
    • WTO 世贸
      • 总部 瑞士日内瓦
      • 164个国家
    • 净出口
      • 净出口为正时,称为贸易顺差,黑字
      • 净出口为负时,称为贸易逆差,赤子

# 2018/03/26

  • redis
    • String
    • List
    • Set
    • Sorted Set
    • Hash
    • HyperLog

# 2018/03/27

  • graphql + 图形验证码

# 2018/03/30

  • bit permision
    • Add: 0b0101 | 0b1000 或
    • Del: 0b0101 & ~0b0001 与非
    • Get: 0b0101 & 0b0001 === 0b0001 与
    • All: 0b0101

# 2018/04/09

  • html
    • Insertion Observable API

# 2018/04/12

  • dns
    • dig
    • https://www.diggui.com/
  • docker
    • <<: *consul-agent

# 2018/04/16

  • sequelize-cli
    • migration 新建表是否会反应到 schema -> 会
      • 如何避免直接写 schema
    • migration 添加列是否会反应到 schema -> 不会
    • seeder 有哪些场景,是否必要存在,还是和 migration 放在一起
    • db.config.js 如何组织
    • 如何把执行记录写到项目中的 json 中
      • 不能写到json中,因为在生产环境不能提交代码

# 2018/04/18

  • graphql 动态修改 context
  • redis 查看有多少条key
    • redis-cli --scan
  • redis
    • rpush list a
    • rpush list b
    • lrange list 0 -1
    • expire list 10
    • ttl list
      • 2 不存在
      • 1 没设置
  • cache
    • 单个表使用 hash,id 为 key
      • hmset User 1 {"id":1, "name": "张三"} 2 {"id":2, "name": "李四"}
      • hget User 1
      • 过期时间一致
    • 关系使用 list
      • lpush User:1:Logs 1 2 3 4 5
      • lrange User:1:Logs 0 -1
      • 关系直接存到单表中
    • 同步 binlog
    • 问题
      • 销毁
      • 全部属性
      • 过期时间
    • 为 findById 提供缓存的必要性
      • db 以及 redis 的延迟
  • graphql
    • 把数据库的信息嵌入到 graphql 中,比如 table -> type, column -> field
    • sequelize 能否过滤多余字段
    • 像 cacheControl 一样,把数据库的信息挂到 info 上
    • 利用 returnType

# 2018/04/19

  • nginx
    • proxy_buffer_size
    • proxy_buffers
  • crossdomain.xml

# 2018/04/20

  • 在路径下查找文件

# 2018/04/23

  • benchmark mysql & redis
  • sql-find
    • where
      • timestamp
      • constant
    • page
    • attributes

# 2018/04/24

  • 如何随机删除一半数据
  • log 阻塞
  • graphql
    • 如何找到 enum
      • _.values
    • 做 dataloader
    • 添加 timestamp

# 2018/04/25

  • sequelize
    • 如何 include 之后会不会再 getStudent 一次

# 2018/04/26

  • redis
    • 如何删除特定前缀的key

# 2018/05/09

  • mysql
    • in [3] 与 in [3, 3, 3, 3, 3] 的性能比较

# 2018/05/11

  • css
    • color 加深 变浅 如何处理

# 2018/05/15

  • db
    • 为什么字段命名推荐下划线
      • 大小写敏感

# 2018/05/16

  • sequelize
    • 连接表查询
  • koa
    • http.createServer + koa
  • mysql
    • group by day

# 2018/05/18

  • server push
  • redis subscribe

# 2018/05/19

  • http api cache
    • 应该每次应用起来的时候给个随机数,这个随机数在整个应用生命周期都不会改变,这样资源便是被 http 缓存住了,刷新的时候随机数会变,这样数据就更新了
    • 如果想要每次都需要是最新的数据,那可以 cache-network,先从缓存中取,然后再发请求,覆盖掉以前的数据

# 2018/05/21

  • PWA 版本回退 main.js 为上一个版本
  • script cors
  • http-server 如何控制缓存
    • http-server -c-1

# 2018/05/24

  • 负载均衡

# 2018/06/06

  • migration 失败后如何感知

# 2018/06/07

  • 如何把定时任务分开
  • 如何查看一个容器占了多少内存

# 2018/06/13

  • ioredis 强退

# 2018/06/15

  • 如何让所有项目都是用 Docker
    • 搭一个 k8s

# 2018/06/21

  • docker --log-driver

# 2018/06/26

# 2018/07/03

  • timestamp 是如何插入 0000-00-00 这种数据的
    • no_zero_date

# 2018/07/23

  • docker top
  • docker save load
  • Q
    • Vagrant 和 Docker 有什么区别
      • 线上都是 CE,那岂不是都要兼容以前的旧版本
      • Docker 命令行使用源
      • config map 和 consul
      • 如何查看 cpu 使用情况
    • k8s 配置代理怎么弄
    • aufs 是什么鬼
    • 前端自己写 Dockerfile,oss, pm2, gulp 不用,node-sass 也不用,ca
      • nginx + asd
      • docker
      • 让前端掌握更多的流程和主动权,虽然比较复杂
    • 为什么要分开 ADD
    • harbor
  • Q
    • node-sass 版本问题,与 node 相关 -> zxd
    • 现在测试环境 docker image 的工作流程是什么 ->
    • docker 分层优化
    • docker build 服务器 ce 版本
    • docker commit
    • k8s 能不能直接从 Dockerfile 取
    • 能不能自己来写 yaml
      • 比如 healthCheck, port

# 2018/07/24

  • 如何创建 namespace
  • linux commands
    • base64
    • printenv

# 2018/07/25

  • http

# 2018/07/27

  • consul
    • gossip
    • Raft

# 2018/07/30

  • alpine

# 2018/08/01

# 2018/08/03

  • 认证代理

# 2018/08/07

  • 301 缓存问题
  • k8s: 8080 多级域名 subdomain

# 2018/08/11

  • todo
    • 收拾桌子
    • 洗水杯
    • 手胶

# 2018/08/20

  • CI
    • flow.ci
    • drone.io
  • image

# 2018/08/28

  • socks5
  • asdf
    • wrk
    • ab
    • mirror request
    • proxy_cache
    • HA
    • 两台机器做负载均衡,配两次 nginx
      • keepalived
      • LVS
        • core
      • pacemarker
    • envoy
    • svc.local service-ip
    • open switch
    • HP
      • epoll
      • select
    • http 1.1 connection close
    • L4 L7 load balance
    • proxy_redirect
    • Host
    • 前端 nginx
  • canvas
    • 拼接事件源
    • 启发

# 2018/09/07

  • apollo
    • 当出现错误的时候 reload

# 2018/10/15

  • 设置域名邮箱
  • git colorful

# 2018/10/16

  • https

# 2018/10/18

  • nat

# 2018/10/19

  • traefik 如何映射端口号

# 2018/12/07

  • css
    • filter

# 2018/12/08

  • react lazy loading

# 2018/12/10

  • redis 持久化
    • https://redis.io/topics/persistence
    • RDB
    • AOF

# 2018/12/11

  • html5 element
    • dns-prefetch
    • meta itemprop
    • theme color
    • manifest
  • docker

# 2018/12/13

  • node
    • axios with cookies
    • 爬虫

# 2018/12/14

  • free
Last Updated: 8/13/2019, 1:12:48 PM