Redis 实战之薄荷 timeline 的小优化

Redis 可谓开发工具中的瑞士军刀, 小巧易用而又功能强大。但是毕竟只是工具, 合适的用法加上不断优化的算法组合起来方能达到高效。最近在优化薄荷的 timeline, 积累了一些小小的经验, 这里来和大家分享一下。

Render JSONP response in Rails

今天在给前端提供一个接口的时候, 由于有跨域的问题, 加之都是 get 请求, 所以就通 过 jsonp 来比较简单的实现。

tap in Ruby

在看一些 Ruby 的开源项目的代码中经常见到 tap 方法的出现,但是感觉又不是有很明确的用意,花了点时间了解了一下这个方法,发现是一个非常好用的方法。

The Difference between instance_eval and instance_exec

这周看到一篇博客讲了 Ruby 中 instance_evalinstance_exec 的区别,看完觉得收获很多,这里和大家分享一下,原文地址 The difference between instanceeval and instanceexec

Cache key in jbuilder

本周工作中遇到一个 bug,功能大致是这样的: 在后台配置 app 首页的 sliders, 然后向客户端返回配置的 slider 的 api。由于考虑到这个 slider 变化不会太频繁,所以使用 json.cache! 'a/b/c' 来显示的命名 cache_keya/b/c,缓存设为永不过期。在后台更新 sliders 数据后,去主动清楚这个 cache_key 对应的内容。

修改 Ember locationType 时候引发的一个问题

在公司的一个 web 项目的部署中,由于考虑到服务器的限制以及部署的简易性。将 locationType 为 hash。之前在后端转跳的链接是 app/?token=xxx

Customize ember-data serializer

Ember.js 有一个官方配套的用于管理数据模型的 framework 叫做 ember-data,它在很多方面和 Rails 的 ActiveRecord 很像,初次使用起来会觉得很方便。这也是它的设计哲学之一 convention over configuration 带来的好处。

Debug your web app with Chrome

今天看奇总写了关于使用 Chrome 来调试 Android app 的分享,觉得必须得写一篇关于使用 Chrome 来调试 web app 的分享了。因为相比于 iOS/Android app 开发,web 开发实在是比较缺乏优秀的 IDE, 很难想象如果没有像 Chrome Dev Tools,调试将是这么痛苦的一个过程。今天就来分享一下我在开发的 过程中常用到的一些不错的特性。

ES6 新特性

ES6 也就是 ECMAScript 6 是下一代 JavaScript 的语言标准,目前该标准还在不断完善中,但是基 本的新特性已经全部敲定。预计将在 2015 年年中正式推行,虽然还未正式推行,但是借由 Google 推出 的 google/traceur-compiler 编译器,可以将使用 ES6 语法的 JavaScript 编译成 ES5 版本的 JavaScript 代码,进而在主流浏览器中都可以正常运行。因此目前很多项目已经开始使用 ES6 的语法来 进行日常的开发了,轻卡 web 版的开发使用了 Ember CLI,它们默认提供了对 ES6 的支持,因此在 开发的过程中也使用到了一些 ES6 的特性。简单的说,ES6 标准的推行,使得 JavaScript 这个传说中 用了 10 天设计出来的语言不再那么玩具化,越来越可以承担一些大型的、工业化的项目的开发了。

前端模块化之 Require.js

最近在研究前端的一些东西,感觉写前端遇到一个很困扰的问题就是代码模块化的问题。像 Rails 给我们了一个比较好的解决方案,在 Rails 中我们有一个 application.js 文件,这个文件负责引入相关的代码依赖,最后再编译这个文件,它里面引入的一堆 JS 文件就会被编译到一起。同时 Rails 中也把文件之间的依赖关系连同帮我们处理了,当我们用 //= require xxx 的时候,这个 require 的先后顺序是有影响的,所以我们可以根据自己的需要把代码拆分成相应的模块,然后根据它们之间的依赖关系按次序 require