HTTP/2 十分钟速知

升级到 HTTP/2 后,那些针对HTTP/1.x 的优化手段需要如何变化?

答:总结来说,除了多域名增加并行 TCP 连接数不再适用以外,启用 HTTP/2 几乎不用考虑太多。

首先,由于 HTTP/2 是复用了一个 TCP 连接进行多次传输,所以适用于 HTTP/1.x 的多域名增加并发 TCP 连接数的策略已经不再适用了。不仅如此,如果你的 CDN 和主站不是指向同一 IP 且共用同一个 https 证书的话,HTTP/2 就不会在同一个 TCP 连接中也完成来自 CDN 的资源的传递,而是会为 CDN 徒增一个额外的 TCP 连接。

继续阅读HTTP/2 十分钟速知

AngularJS 小技巧

AngularJS 开发过程中用得到的日常小技巧。

默认提交为 JSON 的问题

这是一个 AngularJS 专用补丁,确保 POST 提交的不是 JSON 而是正常的 payload。

$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";

且 json 数据必须转换成 form 数据,详情请见 How can I post data as form data instead of a request payload?

(别的技巧待续,想听哪方面的技巧请留言)

uglify-js 分别压缩目录中每个 js 文件的 shell 脚本

uglify-js 分别压缩目录中每个 js 文件并输出,用 grunt 只要改改几行配置就能做到。这里是 shell 的脚本的方法,使用方式为:

./脚本文件名 目录 .js 继续阅读uglify-js 分别压缩目录中每个 js 文件的 shell 脚本

生物成功转型程序媛?——我的个人陈述

重要的事放前面:推荐想转行的童鞋关注一下百度前端技术学院

最近前端开发好像莫名其妙火起来了,不仅很多科班出身毕业生的开始摩拳擦掌,别的行业都想往这方面转。确实,非科班的前端很多,甚至高中学历、专升本的也有,大家都是自学走上了这条路。

现在很多大公司已经着手开始改变前端开发招人难这件事了。


说我从销售成功转程序媛,或者生物成功转型程序媛的博友们。首先要谢谢你们的关心和支持。然而,可能要让你们失望的,就是我并非那么“励志”。事实上我真实的经历可能反而是一个,因为脑子进水,所以才需要“转型”的经历。

之所以这么说,因为实际情况和你们想象的不同 继续阅读生物成功转型程序媛?——我的个人陈述

《图解HTTP》读书笔记 – 第6章 HTTP 首部

本章学习 HTTP 首部的结构,以及首部中各字段的用法。

 

后记

这是最厚的一章了。HTTP 协议最有讲头的就是首部了。接下来五章的篇幅都比较短。

博客只发读书笔记显得人有点 low:只知道学习,不知道产出。每当想到这一点,博主就有点没有继续写笔记的动力了。但是,每当思考寻求解决方案时,第一反应还是会想起当初的笔记。所以,既然是自己挖的坑,哪怕很勉强,也还是要填完。

【整理】各银行信用卡积分积累比例和价值

2014年由于突发奇想的兴趣,博主办了所有办理流程不太复杂的信用卡。面对五颜六色的卡片,每次刷卡都要犹豫用哪张。

后来,博主把眼花缭乱的信用卡积分规则和积分能兑换的礼品一一列出来,最后得到了下表,在此分享:

  • 中信i白金 500RMB :1RMB = 1000积分
  • 招商银行 500RMB :1RMB = 25积分
  • 广发淘宝 500RMB :1RMB = 100集分宝
  • 交通银行 500RMB :1RMB = 500积分
  • 工商银行 500RMB :1RMB = 500积分

也就是说,不管信函上说的积分和消费金额的累积比例是多少(仅考虑人民币),每消费 500 元人民币,所得到的积分能兑换礼品的价值都是 1 元。极端情况下(9 积分兑换 30 元工作餐等招牌活动)可能不符合,但是这些情况通常有很多限制条件,很难达到的那种。

既然有极端情况,也有另一个极端。就算这点积分,也常常被银行误导往价值更低的地方消耗(比如中信积分换集分宝)。综上所述,信用卡作为促进超前消费的推销工具,请卡友们不要抱有太不切实际的占便宜想法。遇到“便宜”之前要擦亮眼睛,别为了刮蚊子腿,小心反被吸一口血噢!

AngularJS 父子 scope 之间的交流

本文是 《Parent/Child Controller Communication》 的译文。

======译文开始======

我最近经在教很多个朋友 AngularJS,而他们几乎都问了同样一个问题:

如何在 controller 之间传递消息(状态)?

这是个好问题。通常对初学者来说,它不直观。答案比我们想的要复杂(但实现起来很简单)。

有好多方法可以在 controller 之间通信 继续阅读AngularJS 父子 scope 之间的交流

《CLEAN CODE》读书笔记(六)—— 错误处理

根据异常如何被捕获,将整个事件的错误处理统一代理起来是不错的方法,类似 httpFactory。(7.5 的例子是 Java 的,不太适合本项目)
如果异常打断了业务逻辑,那么,不要返回 null 值,返回 0 或者空数组可以省很多代码,可读性也更高(例子)。

(建议)每个异常应该有环境说明(AngularJs 已经做得很好了)

《CLEAN CODE》读书笔记(五)—— 对象和数据结构

The Law of Demeter 定律认为,模块不应了解它所操作对象的内部情形。
对象的内部结构应该隐藏而不暴露。而数据结构暴露数据,没有明显的行为。
(6.3 的例子:为什么非要暴露 cxt 内部的结构?为什么需要那么多知识来使用 cxt 对象?为了后面能创建指定名称的临时文件,那么直接让 cxt 来做这件事,如何?!)


这章真简洁