JavaScript中的数据类型转换
发表于 | 分类于 编程语言/JavaScript
JavaScript中的数据类型转换是一个很容易造成困惑的地方。本文是《你不知道的JavaScript(中)》类型转换相关的知识整理,强烈建议去看这本书。
如何部署前端代码
很早之前在知乎上看见一个提问:大公司里怎样开发和部署前端代码?,其中张云龙(fis3作者)的回答十分精彩。但当时由于水平有限,接触到的业务和开发环境也比较简陋。现在公司推行微服务,前端静态资源也基于fis3进行开发环境搭建和部署,算是这个回答比较完整的实现。
现在,是时候思考一下静态资源部署的重要性了。
初识puppeteer
大概是去年还在豆腐重构web站点的时候,一项比较重要的工作就是防爬虫。当时做了一些比较简陋的防爬虫手段,也了解到了一些神奇的爬虫方式,puppeteer就是在那时候了解的。恰好最近有一个工作需求,需要为运营搭建自动化的工作流程,因此想到了puppeteer,决定尝试一下。
初识npm
npm全称为Node Package Manager
,是一个基于Node.js
的包管理器,用于查找、安装、管理和发布 Node.js
应用程序所需的各种包和模块,避免 JS 开发者重复造轮子,让大家的劳动成果可以共享。
npm
是前端工程化的必须要掌握的基础知识,本文将整理通过npm安装依赖的一些细节。
Chrome扩展程序之自动更新
发表于 | 分类于 客户端/Chrome扩展程序
最开始接到产品的Chrome插件需求时,由于用户较少,优先的关注点是功能的实现,并未过多考虑如何部署插件。
每次更新都是提供一个压缩包,然后让用户使用开发者模式下加载本地压缩包的方式进行更新;后来用户逐渐增多,功能迭代也比较快,每次分发压缩包并重新安装,因此就有了插件自动更新的需求~
下面总结了两个插件实现的自动更新的一些整理和心得。
使用spritejs操作canvas
大概是一个多月前,从掘金推荐上了解到spritejs这个canvas库,碰巧中秋活动需要做一个比较复杂的canvas游戏,因此决定在项目中尝试使用spritejs。
这篇文章并不是介绍spritejs相关api或者使用方法,而是用于记录使用经验,包括相关项目以及踩过的坑,除此之外还有一些在canvas项目中常见的问题。
koa中间件导致接口404的问题
发表于 | 分类于 后端
最近在使用koa时遇见了一个很奇怪的问题:控制器中包含异步操作的接口,返回均为404;只包含同步操作的接口,接口返回正常。
经过排查,发现是前面使用了一个同步形式的中间件,并未等待后续异步中间件结束导致的问题。这里记录一下相关问题,以及分析koa中间件的实现和注意事项。
在微信小程序中使用webview
在小程序并不支持webview的时候,小程序业务与web业务共用一套代码是比较繁琐了。在之前的项目中使用了诸如wepy
、mpvue
等开发框架,在某种程度上实现了业务代码的复用,不过在某些地方还是需要区分平台,进行小程序的适配。
小程序在1.6.4开始支持web-view
组件,这样就可以在小程序中直接接入web业务了。下面整理了在小程序项目中引入webview的开发心得。
编写gulp、webpack与fis3插件
在工作中接触了不少打包和环境构建工具,如gulp
、webpack
以及现在公司使用的fis3
等,每个工具都有自己的社区和生态,并提供相关的功能插件,如编译sass、babel转移、压缩代码等。
在某些特定的需求和开发环境下,社区的插件并不能很好地满足开发生产需求(比如需要自定义打包过程的控制台输出、在编译scss文件前注入公共的scss变量代码等),因此需要了解对应工具的插件编写,这里整理一下。
初识Docker
在去年年底的时候,由于刚换电脑,需要重新安装开发环境,觉得十分繁琐,因此查询了解到 Docker,当时觉得相关概念晦涩难懂,且本地开发环境也已经搭建完毕,因此没有继续学习 Docker 相关知识。
近来在开发中遇见一个问题:多个功能工单同时进行测试时,需要在多个开发测试环境之间切换,包括项目分支切换、host 修改、nginx 配置修改等,应该探索下更方便地开发环境切换方案,加之公司的提测环境也是使用 Docker 进行搭建,于是决定重新学习 Docker 相关知识,最终目标是一劳永逸地解决本地开发环境切换的问题。
canvas动画之粒子效果
在《canvas动画系列》前两章分别介绍了基础知识和绘制动画的思路,最近在某个项目活动中,需要使用canvas绘制酷炫的爆炸效果,因此这里整理canvas绘制粒子动画,作为canvas动画系列的第三篇。
记一次小程序的websocket开发经历
最近的项目中,需要为小程序添加一个实时邀请好友对战的游戏活动,初步评估开发方案使用webSocket进行。
由于之前没有正儿八经的webSocket开发经历,途中遇见了一些问题,包括最坑的“Android手机中wss协议不走wifi代理”,这里一并整理,用作回顾和总结。
写一个搭建本地mock服务器的命令行工具
之前一直使用mockjs模拟接口返回数据,由于其内部是改写XHR实现,因此存在一些局限性,比如无法拦截JSONP请求、无法直接在小程序中使用,最近恰好有点时间,因此决定写一个工具解决这些问题。
微信公众号开发整理
发表于 | 分类于 后端
想起来两年前刚入行的时候,接收的基本都是微信公众号项目的开发,后面重构豆腐web的时候,也单独对移动站接入了微信公众号。恰好最近又处理了一点微信公众号的东西,想起还没有对微信公众号的一些问题进行记录,因此这里稍作整理。
《JavaScript测试驱动开发》读书笔记(上)
发表于 | 分类于 读书笔记
之前写过一篇正儿八经地写JavaScript之单元测试的博客,并信誓旦旦的表示以后要用单元测试来保证自己代码的可靠性,后来却由于工期忙、没精力等各种理由将单元测试选择性忘记了,每次的代码都是自己简单测一下,就交给测试同事进行测试了。
最近图灵社区推送,刚好看见了《JavaScript测试驱动开发》这本书半价,于是入手,顺便整理读书笔记。
PS:以后的读书笔记,会整理内容概览的脑图,方便日后回顾。
记一次Chrome扩展程序开发
发表于 | 分类于 客户端/Chrome扩展程序
大概是去年这个时候花了几天折腾了一下Chrome扩展程序,当时是使用Vue做了一个书签扩展工具,后来使用了Infinity
之后,就不再维护那个项目了。
最近恰好有个任务是为运营开发一款用于提高工作效率的浏览器插件,因此回过头整理相关的开发过程和遇见的一些问题。
搭建开发环境的心得
入职第一件事就是搭建开发环境,包括编辑器、环境变量、调试工具等工作。下面整理一下在第三次搭建开发环境的心得,包括使用的工具、踩过的坑,以及关于一些问题的思考。