摘要: 作为一个互联网前端老鸟,这么些年下来,做过的项目也不少。从最初的`我的QQ中心`、`QQ圈子`,到后面的`QQ群项目`、`腾讯课堂`。从几个人的项目,到近百号人的项目都经历过。 这期间,实现了很多的产品需求,也积累了一些经验。这里稍作总结,希望能给新入行的前端小伙伴们一些参考。阅读全文
posted @ 2016-10-20 12:32 程序猿小卡 阅读(2995) 评论(18) 编辑
摘要: 为什么需要https HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。 举个最常见的例子,用户登陆。用户输入账号,密码,采用HTTP的话,只要在代理服务器上做点手脚就可以拿到你的密码了。 用户登陆 代理服务器(做手脚) 阅读全文
posted @ 2016-03-02 13:31 程序猿小卡 阅读(6894) 评论(51) 编辑
摘要: 最近陆陆续续面试了几个同学,有社招的,也有实习生,整体来看,面试结果不是特别的理想,至少没有达到自己的预期。这里简单分享下社招的一些感受,至于校招的,后面有机会再分享下。 投实习生简历的,大部分是大三的同学,考虑到这部分同学的实际情况(学校教的都是基础课程,如C、C++、java、数据结构等,而前端...阅读全文
posted @ 2014-03-24 01:36 程序猿小卡 阅读(6369) 评论(72) 编辑
摘要: 前几天我为一个项目写README文档,我希望其他开发者能够看到这个项目,并从中学到一些东西。突然我意识到,若放在几年前,我写作的过程中随口提到的Node,pnm,Homebrew,git,测试还有产品构建,会把我魂都吓没了。 曾经有段时间,一个前端开工程师基本的工作流程是:编辑文件,本地测试下(尽我们可能做到最好),然后通过FTP上传到服务器。我们评价一个前端工程师的水平,是通过他是否能够兼容IE6,或者取得跨浏览器的像素级的一致。很多社区的成员——包括我在内——缺少传统的编程经验。HTML、CSS和Javascript——通常指jQuery——是自学的技能。阅读全文
posted @ 2013-04-25 02:27 程序猿小卡 阅读(3434) 评论(8) 编辑
摘要: 上个星期天晚上约11点半,左耳朵耗子在新浪微博上吐槽QQ安全中心密码修改的问题,引来不少围观。QQ安全中心的兄弟收到用户反馈后,第一时间fix bug并发布,其高效着实令人佩服。 当时也围观了下,问题并不复杂,是由于业务代码对于url的不恰当处理导致的(详见本文第3点),涉及url fragment(#)的内容,于是顺便重温了下这块的内容。 文章主要参考了httpwatch博客的一篇文章:《6 Things You Should Know About Fragment URLs》 其中1-5点的内容比较基础,6-7点的内容对于ajax应用的开发有不错的指导意义,可以了解下。阅读全文
posted @ 2013-03-31 20:23 程序猿小卡 阅读(5689) 评论(37) 编辑
摘要: note:本文主要参考了Stoyan Stefanov的文章《When is a stylesheet really loaded?》 在之前的文章《CSS文件动态加载》中,我们提到了在动态加载CSS文件的时候,如何检测加载是否完成。注意,这里的加载完成包含了两种情况: 1)加载成功 2)加载失败 ...阅读全文
posted @ 2013-03-03 01:02 程序猿小卡 阅读(9434) 评论(53) 编辑
摘要: 前段时间研究了下JS动态加载和执行顺序依赖的东东,把LABJS的源码从头扒了下:LABJS浅析。对于JS加载执行以及下载监控这,项目组在这块做的东西不少,但对于CSS加载这块的质量监控,力度就小得多了。原因很简单:JS下载失败或出错,这个页面基本就废了。CSS下载失败,大部分情况下页面还是可用的,虽...阅读全文
posted @ 2013-03-01 01:17 程序猿小卡 阅读(5705) 评论(7) 编辑
摘要: 本文主要内容归纳如下: 一、离线存储的作用;二、如何实现离线存储;三、applicationCache对象,及属性、事件、接口 四、访问缓存应用,相应触发事件,及其对应状态;五、如何更新离线缓存 六、demo演示:update后是否调用swapCache的区别;七、写在后面 一、离线存储的作用 1...阅读全文
posted @ 2012-12-01 13:25 程序猿小卡 阅读(5977) 评论(9) 编辑
摘要: 周六作为特邀讲师之一参加了IMWebConf 2017 前端开发者大会的主题演讲,主题为《WebAssembly:面向未来的web开发技术》。本次大会质量非常高,来自国内外的技术专家带了很多干货分享,关注前端技术的同学千万不要错过。以下是本次参会的感想。阅读全文
posted @ 2017-09-18 09:27 程序猿小卡 阅读(528) 评论(5) 编辑
摘要: 在web服务端开发中,字符的编解码几乎每天都要打交道。编解码一旦处理不当,就会出现令人头疼的乱码问题。 不少从事node服务端开发的同学,由于对字符编码码相关知识了解不足,遇到问题时,经常会一筹莫展,花大量的时间在排查、解决问题。 文本先对字符编解码的基础知识进行简单介绍,然后举例说明如何在node中进行编解码,最后是服务端的代码案例。阅读全文
posted @ 2017-09-04 08:23 程序猿小卡 阅读(398) 评论(0) 编辑
摘要: 背景介绍 团队最近在招前端开发,早上收到一封简历,是个妹纸,从技能点来看还算符合要求,于是约了下午3点过来面试。 整个面试过程持续了大约40分钟,问的题目也比较常规,其中一道题就是“常见的性能优化手段”。期间妹纸提到她看过《图解HTTP》,我就顺带问了下,“是否了解HTTP协议中常见的跟缓存相关的h阅读全文
posted @ 2017-08-31 08:09 程序猿小卡 阅读(4776) 评论(51) 编辑
摘要: Diffie-Hellman(简称DH)是密钥交换算法之一,它的作用是保证通信双方在非安全的信道中安全地交换密钥。目前DH最重要的应用场景之一,就是在HTTPS的握手阶段,客户端、服务端利用DH算法交换对称密钥。 下面会先简单介绍DH的数理基础,然后举例说明如何在nodejs中使用DH相关的API。阅读全文
posted @ 2017-08-30 09:14 程序猿小卡 阅读(112) 评论(0) 编辑
摘要: 2017年火热的夏季,一年一度的IMWebConf强势来袭!9月16日,深圳科兴国际会议中心,我们将全心全意打造一场前端盛宴,恭候各位的光临。 在今年的IMWeb Conf,我们有W3C的技术产品总经理Philippe Le Hégaret,以Web标准化的视角,为您一探前端的《Now and the Future》;有微软的技术专家Limin zhu,为您开启一场更前卫的前端开发之旅《TypeScript: 高效可扩展的JS开发体验》;有谷歌的神秘嘉宾,为您分享今年前端界最火的技术PWA…… 除此之外,我们还有幸邀请到了多位国内前端圈的知名大牛进行分享。分享的内容将紧贴一线前端技术,以实用性与前瞻性为出发点,力求使每一位参会者都能有所收获。欢迎志同道合的前端爱好者们齐聚一堂,一同分享技术的乐趣。阅读全文
posted @ 2017-08-29 12:33 程序猿小卡 阅读(258) 评论(0) 编辑
摘要: Node.js 8.0 在2017年6月份发布,升级的特性中,包含了N-API。N-API并不是对原有node扩展实现方式的替代,它只是提供了一系列底层无关的API,来帮助开发者编写跨版本的node扩展。阅读全文
posted @ 2017-06-03 13:39 程序猿小卡 阅读(1995) 评论(0) 编辑
摘要: Buffer是node的核心模块,开发者可以利用它来处理二进制数据,比如文件流的读写、网络请求数据的处理等。 Buffer的API非常多,本文仅挑选 比较常用/容易理解 的API进行讲解,包括Buffer实例的创建、比较、连接、拷贝、查找、遍历、类型转换、截取、编码转换等。阅读全文
posted @ 2017-05-25 08:38 程序猿小卡 阅读(517) 评论(0) 编辑
摘要: nodejs的核心模块,基本上都是stream的的实例,比如process.stdout、http.clientRequest。 对于大部分的nodejs开发者来说,平常并不会直接用到stream模块,只需要了解stream的运行机制即可(非常重要)。 而对于想要实现自定义stream实例的开发者来说,就得好好研究stream的扩展API了,比如gulp的内部实现就大量用到了自定义的stream类型。阅读全文
posted @ 2017-05-24 09:45 程序猿小卡 阅读(886) 评论(0) 编辑
摘要: body-parser 是非常常用的一个express中间件,作用是对post请求的请求体进行解析。本文从简单的例子出发,探究body-parser的内部实现。阅读全文
posted @ 2017-05-22 08:13 程序猿小卡 阅读(3044) 评论(0) 编辑
摘要: 本文基于express、express-session实现了简易的登录/登出功能,在后续章节将针对express-seesion的实现原理进行深入的探究。完整的代码示例可以在笔者github上找到。阅读全文
posted @ 2017-04-24 09:05 程序猿小卡 阅读(1425) 评论(1) 编辑