Fantasy

Programming & Thinking

Life

总算是来到了这一年的末尾,上一次写年终总结还是在2012年 - A boring summary of 2012。 简略的总结一下逝去的2015。 工作 从实质上来讲,工作并没有发生任何变化;但是细细想来,却已经天翻地覆。...

React

在全职使用 Node.js 工作大半年之后,在上周末转型做 ReactNative 的开发 – 而这也正是我在业余时间所做的事情。 于是乎,又一次迎来了把兴趣变成职业的转机 – 在这里我可以相对主动的用自己比较心仪的技术做一些事情。...

React

本次的开发过程基于 React Native v0.11.0, Node.js v4.0.0 版本。 最近计划用 ReactNative 实现一个简单的微博客户端。...

Essay

程序员世界中有很多常见的缩写,许多人对此甚是津津乐道。 我以前也是一个喜欢用「缩写」跟别人讲话的猿类,不过最近思考了一下感觉这种方式不甚友好。 故纂此文,是以自嘲。 一、著名的 SSH 可以在很多招聘 Java 程序员的 JD 中看到这么一句话:“熟悉...

React

前段时间,Facebook开源了之前发布的 React Native。这一消息让很多iOS、JavaScript开发者以及很多Hybrid应用开发爱好者为之兴奋。 相信有很多开发者都跟我一样,在听到这个消息后都会做两件事情: 上 GitHub star 一记 写个 Demo...

Writing

前段时间使用Gitbook编写了一本关于Node.js的小书,主要总结整理了一下我在之前学习、使用Node.js的一些经验和开发心得。可以通过Gitbook的在线地址阅读此书。 通过编写的过程,确实感觉写书的不容易:措辞、如何表达与解释等。幸而小书的大部分内容已经成型,不过也有很多尚处于空缺、有待增补的章节。关于这点我会在日后慢慢添加、完善。 当然也欢迎通过本书的Github主页提出问题、纠正错误。 2015-04-19 update 本书的中文版基本上已经成稿,但是英文版由于时间的原因会逐步翻译。由于 Gitbook 上生成的中文PDF效果实在有点寒碜,建议还是在 Web 浏览器上阅读,或者下载...

Node.js

15年元旦之前的一次偶然的机会,快速开发了一个chepiao100.com的Node.js版本的SDK. 取名chepiao-sdk,已经发布在NPM上,可以通过npm install chepiao-sdk安装、使用。 开发这个SDK的初衷其实因为在14年圣诞左右,当时正在12306上抢春节来回的高铁票,于是就想到可不可以调用一些接口在终端中查询火车票相关的信息。最初我在互联网上搜索到、并使用了去哪儿的火车票查询开放接口,例如这种. node-train的前几个版本就是使用的去哪儿的这个接口,但是由于去哪儿这个接口有两个非常致命的缺陷: 没有文档,至少我在互联网上搜索不到相关的文档 列车时刻的接口返回中车站的信息是打乱的 因此我决意寻找另外的比较好的开放接口,于是就找到了chepiao100这个站点. 虽然以前没有听说过这个网站,但是从他的文档来看还是做的不错的....

Front-end

最近在做一个小东西:Toolbox,目的是提供一个给开发者使用的「工具箱」。也正是在做这个东西的同时,研究了一下sourcemap相关的内容。 之前更新了电脑上的Sass版本后(大概是3.4版本)编译的的Sass文件会自动生成sourcemap的文件。当时说实话不知道这是干什么用的,就默默的搜索如何在编译时加上参数不生成sourcemap文件。但是之后还是回头去看了看sourcemap为何物、有何用、如何用,谨以此文分享一下。 Source map 简介 Source map应该是最先应用于JavaScript的技术。(关于这一点并没有进行考究,但是从我搜索到的资料来看,应该是Google Closure最先提出的sourcemap调试技术) 由于很多框架、类库都相对比较庞大,所以在真正投入生产环境使用的时候都会用各种工具进行压缩、转换。 因此在浏览器中对使用这些「转换」过的代码进行调试都会感到十分迷惑:这种压缩过的代码要怎么调试?而sourcempa就是为了解决这个调试问题而诞生的。同样的,对于Sass这类CSS的预处理工具而言,Source...

Front-end

最初是想在文章中对比、探讨、研究一下JavaScript模块化方面的内容(其实连提纲都写好了),但是写着写着发现自己的功力不够: 仅使用过SeaJS和一点点的RequireJS 对于很多诸如模块规范、运行机制方面的东西不甚熟悉 开发的经验并不足够多,对于工程实践上的诸多内容不够深入 所以本文仅仅讨论一些关于JavaScript模块化的内容,着重介绍如何使用Browserify、搭配gulpjs来实现Web前端的JavaScript模块化。 关于JavaScript模块化 由于JavaScript语言(泛指当前广泛使用的版本)本身并不具备如同Java, Python等语言的类、模块、包等机制,并不能通过诸如import等方式加载同一项目中的不同模块,而随着Web开发方式的演进、客户端JavaScript的大放异彩,更加「有序」地组织页面的JavaScript代码就成为了一种必然的需求。 相信编写过稍具规模的Web应用的同学应该能够体会到JavaScript的这种「缺陷」,不过程序员天生就是一种没有轮子创造轮子的职业。 于是乎,JavaScript模块的组织方式出现了AMD,...