2020年终总结

2021-01-01

之前从没写过年终总结,但是 2020 是个特殊的年份,无论对我还是对所有人,值得一篇总结。

虚拟滚动的实现

2020-09-16

在上家公司最后一个项目本来想用一下虚拟滚动的,结果项目黄了,没用上。正好最近面试某厂线下笔试题里有这么一道:

/**
 * 使用 纯 JS / react/Vue/typescript 写一个 Grid 组件要求:
 * 能够加载1W + 数据,加载和查看数据时不卡顿
 * 能够对单元格进行格式化
 * 扩展功能表头resize(拖拽等功能)
 */

不就是虚拟滚动么,正好搞起来。实现上参(co)考(py)react-window的Grid组件,代码库:https://github.com/xiao555/virtual-scroll

两年经验字节前端面经(可能是最简单的了)

2020-08-29

两年之期已到,参见龙王。最近面了下字节,面之前看了好多掘金大佬的优秀文章,面完来反馈一下,虽然我面的内容真的是太简单了,可能是个假的,参考意义不大。

MockServer中的热更新

2020-03-26

对于一个mock服务来说,热更新是一个很重要的功能,不用每次更改mock数据之后还要重启一下,提高开发效率。热更新的对象有两种:配置文件和mock数据文件。

深入浅出Node.js之事件循环与异步I/O

2019-12-03

Node.js是能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。它让JS脱离了浏览器的限制,在更多的平台上运行。近几年是越来越火。让它这么火的原因有哪些呢?

  • 基于C++的Chrome V8引擎让它速度非常快
  • 事件循环与异步I/0让它可以轻松处理高并发
  • 统一技术栈
  • 服务端渲染(同构Web应用)
  • ...

本文主要就第二点谈谈,什么是事件循环与异步I/O,以及他们是怎样处理高并发的。

Vue 中如何防止组件 (元素) 复用

2019-09-30

看到这个标题,有人可能会疑惑:提高组件复用性不是我们应该拥抱的一件事情吗,为什么要拒绝它?是的,大多数情况下我们需要尽量复用组件,代码层面的组件复用提高了代码的复用性,便于维护。页面渲染层面的组件复用提高了性能。但是,在有些场景下是会遇到不需要组件复用的情况。

浅谈 SKU 编辑组件的实现

2019-06-03

商品有两个重要的概念:SPU(Standard Product Unit )和SKU(Stock Keeping Unit)。通俗点说,SPU就是某个商品,比如iPhoneX和iPhoneXR是两个不同的手机,也是两个SPU。SKU是商品的具体型号,比如“黑色-iPhoneX-128G-国行-联通版”,“白色-iPhoneX-256G-国行-联通版”就是iPhoneX这个SPU的两个SKU。

SKU有很多属性,比如上述iPhoneX的SKU属性就包括颜色,容量等等,这种影响到库存和价格的属性也叫销售属性。目前我司前台展示的销售属性就包括Color,Size,Unit,Quantity,Type等等。除了销售属性外,还有很多商品的属性与SKU有关,比如库存,税率等等。

所以,SKU是电商系统的重要组成部分,而编辑SKU也是商品管理最核心最复杂的功能之一。

cf-mock-server:前端 mock 数据解决方案

2018-10-21

简介

cf-mock-server 是目前前端二组正在使用的mock数据解决方案,使得前端在开发过程中可自定义接口数据,不依赖后端服务,修改数据热更新,可以方便地测试不同情况的数据,提高了开发效率。

在设计上,既可以单独跑一个Node服务,也可以作为中间件挂载到其他服务上,增强了可扩展性。有比较完善的测试用例,对核心的中间件代码和工具类函数进行单元测试,覆盖率99%。目前放在个人Github上维护,并搭配Travis Ci部署了持续集成环境,欢迎star。

前后端分离的开发模式下打造前端mock服务器

2018-01-02

项目地址:cf-mock-server Github: Mock Server

需求背景

刚来公司实习,了解到有这么一个需求:因为我们是前后端分离的开发模式,了解业务需求后,前后端需要规定好接口,我们用的是postman,后端写好接口,请求格式,返回格式等,前端直接参考着用就行。但是在前端后端同时开工的情况下,可能前端需要数据的时候后端接口还没写好,这时候就需要我们自己mock一些数据来测试一下功能是否完成。

在这之前,前端组是用Fiddler等工具通过拦截api请求,根据设置的映射表规则,返回指定静态文件作为http响应来实现的。由于Fiddler对Mac OS不友好,需要找到替代方案。

使用搬瓦工VPS + CentOS 7 科学上网

2017-11-20

为了优雅的使用Google,Gmail等折腾过不少VPS, 最初是用的搬瓦工的便宜VPS,半年$12.99,由于流量用不完,开了多账号出租。后来用过香港的,速度不错但是太贵,前一段时间一直用的DigitalOcean的VPS,Github学生优惠可以免费用10个月,美滋滋。

可惜好景不长,因为18+1大,DO的vps ssh都连不上了,于是又回到了搬瓦工,最便宜的没货了,能买到的最便宜的是每月$4.99的,加拿大机房用着还可以。

最近同学那里得到消息,可以一年$29.99,再加上6%的优惠码,最后只需要180+一年。可以说现在看来很便宜了,于是就下单了。

买的时候是洛杉矶的,可以迁移到其他地方(怕被封ip), 然后重装系统,我装的是CentOS 7 x86_64 bbr。

Mocha源码分析

2017-11-02

一、分析目标

分析前端单元测试工具 Mocha, 了解它是怎么进行TDD和BDD的。

基于Vue2 + Koa2搭建前后端分离的博客系统

2017-07-28

先上博客地址:https://www.xiao555.com.cn/

Github: https://github.com/xiao555/blog

很多人都想有一个自己的博客,很多人也都有自己的博客,现在网上也有很多流行的静态博客生成器,比如 Hexo啦,Jekyll啦,我的第一个博客也是用Hexo生成的,部署在Github Pages,还有VPS上。 但是又不满足于此,想要打造一个包含后端和数据库的完整的博客系统,而且可以让我从前端接触到后端,接触到服务器运维,数据库操作等方方面面,于是这个项目就诞生啦。

这个是我准备找实习练手vue的项目,不过大部分都是在通过腾讯实习后完成的。断断续续开发了这么长时间,也希望写一篇文章记录一下心得和体会。

本文将按照开发顺序,从后端到前端,从部署到优化,讲述一下这个博客系统的出生到落地。

新的博客正式上线

2017-06-13

这是一个vue的练手项目,也是koa的练手项目。 这是一个js写的完整的博客系统。 这是一个前后端分离 + 服务端渲染的博客系统。 这是一个前端 SPA + 后端 RESTful API 的博客系统。 这是一个为了找实习做的个人作品,虽然是在找完实习后完成的。 这是我以后的试验田,也是个人分享的平台。 当然还有很多不足,今后会逐渐完善。

大三狗实习面经(拿了腾讯offer)

2017-04-28

本人西电软院大三,之前在一个外包团队实习,(广告:我们的团队WPNinja . Sydney, Australia)。 本来不打算大三找实习的, 但是觉得可以参加一下春招为以后积累经验吧。所以投了AT的内推,B说实话不想去,虽然不一定能进去。然后就开始等待,中间看了看前端的一些面试题。

如何写 Webpack 配置文件

2017-04-13

本文从一个小Demo开始,通过不断增加功能来说明webpack的基本配置,只针对新手,也欢迎指正错误。

搭建七牛图床

2017-01-17

最近要搭建新的博客,之前写博客图片一般是保存到本地,或者上传到微博,微博会有水印啊,所以打算折腾一下七牛了,采用qrsync命令行同步工具打造一个图床。

win7 安装 mongodb

2016-04-30

最近玩node需要用到MongoDB数据库,试过各种方法终于配置好了,记录下来防坑。

FreeCodeCamp学习笔记

2016-03-25

寒假将过,感觉不能荒废了,要找点事做,于是整理了一下这个。

额,先介绍一下freecodecamp吧:

FreeCodeCamp 是一个基于 MEAN 架构的开源社区,它可以帮助人们学习编程以及构建他们的非盈利项目,内容以前端为主。

关于Git 和 Github 以及Git pages

2016-03-16

昨晚在床上发现有学习笔记,也想写一个分享一下,写点什么呢?鉴于有不少人是初次接触Git,干脆就说说这个吧,我只会一些基本的操作,大神可以自动忽略。

在vps上搭建hexo博客用Git Hooks 更新

2016-03-08

很早以前就想搭一个博客了,三个月前为了翻越伟大的防火墙,去搬瓦工买了个vps,配了个shadowsocks。既然有了vps,当然也希望搞个博客,这个寒假在家没事就开工了。

之前一直不清楚搭一个博客需要啥,所以用了hexo这个静态博客系统。

日记——2016.3.3

2016-03-03

在这刚开学不久的,舍友们都无忧无虑的玩着游戏的时候,我的心情很不爽。这是为什么呢?因为我要补考!!!