Other articles


  1. User-defined literal in C++

    平时的开发中经常要用到json,长久以来我们的C++项目中一直在使用jsoncpp这么一个比较古老的json库。由于还是基于C++03标准的库,API的设计上保留着非常原始的风味。 譬如你要构建一个{"foo": "bar"}这样的json对象。你得这么写

    Json::Value root;
    root["foo"] = "bar";
    

    经常用javascript的同学一定觉得这样的构造方式傻爆了。的确,在javascript中可以轻松的“字面意义上的(literally)”创建一个json对象

    var root = {
        foo: "bar"
    };
    

    在python中你也可以“字面意义上的”创建一个json(list)

    root = {
        "foo": "bar"
    }
    

    当然,python这样创建的只是list对象,你可以近似当作json对象来使用。

    那么,以偷懒为进步原动力的工程师们自然就会想,在C++中能不能也实现这样的构造方式。

    答案是肯定的。

    C++11的标准在今天已经不是什么新鲜事物了,虽然有海量的历史项目仍旧没有或者无法迁移到新的C++标准。但是我们仍然可以一窥新标准给工程师们带来的便利,在初始化对象上,新标准就给我们提供的完美的解决办法。

    我们先来看从一个 …

    read more
  2. React试用

    最近公司需要弄一个统计分析系统来收集和展示产品中的一些关键数据。因为数据采集和聚合分析部分我之前已经做好了并且提供了REST接口,实际上剩下的工作只需要做一个web前端来方便使用即可。 如果仅仅从快速撸一个能用的前端出发,那么我可能会沿用之前的后端模版动态渲染+bootstrap前端布局+jquery等js库操作前端交互的方法。但这种方法的问题在于后端已经有现成的数据接口了,没有必要改动后端服务从而污染API。 那么自然而然的就考虑完全抛弃后端动态渲染仅用AJAX调用来获取数据来分离前后端功能,这样能完全不改动后端代码的情况下完成这个服务。于是问题收纳为用bootstrap和jquery做一个单页应用。 但是这种传统的方法存在另外一些问题。

    1. 页面或者组件的模块化程度很低,难以复用。
    2. 视图和控制部分分离,css控制式样,js控制逻辑,业务复杂以后代码难以扩展和维护。

    于是自然想去寻找一些新的前端解决方案。事实上,经过这几年来移动互联网行业的发展,前端的工程化探索已经取得了一些显著的成果了,各种前端MVC,MVVM等前端框架层出不穷,新的设计思路如雨后春笋。 经过基本的探索,我主要考察了angular.js,backbone.js,react和vue.js这几种相对主流和热门的前端技术。 作为一名非专业的前端开发者,我无法深入的研究每一种流行框架或技术并总结出最佳实践,比较优劣,只能根据有限的前端开发经验和项目需求来选择适合当前环境的工具,框架的对比网上已有很多文章,在此不再赘述。 最后选择了react作为新的尝试来完成手头的工作。本文便是对react的一些实践总结。

    首先react的定位是一个view层,这点与backbone,angular这样的前端mvvm框架有很大的区别。简单来说react制定了一套只用javascript来构建视图组件的规则,利用这个规则你可以写出模块化程度高,耦合度低,复用性好的前端组件。 为了理解react的设计目标,我们首先要理解三个react的概念 …

    read more
  3. Honeymoon Reminiscence 2

    随着客机笨重的钢铁之躯缓缓下降,穿过一片又一片的云层。这个远离甚嚣尘上的北半球大陆的南太平洋净土慢慢的揭开了她的面纱。 身处于狭小的客舱内的我们仿佛身心已经融入了这篇广袤的土地,那种微微有些激动的心情宛如遍布这块土地的年轻而又躁动的火山,随时可能迸发。 当星罗棋布的各色小房子展现在眼前时,立刻联想起《The Legend of 1900》描述的第一个看见自由女神的人高喊“阿妹你卡”的情景。

    AUCKLAND, we're landing!

    长时间飞行的疲惫一扫而空,当然也要感谢飞机上还提供了《王牌特工》这样的好电影来帮助我们打发时间。 进入到达通道后映入眼帘的就是斗大的中文指示牌。 拿完行李后便是入境和检疫检查。这里老婆又恶意卖萌了,竟然在入境卡上写着我们要permanently停留而且携带了一万新币以上的现金。 还好入境处的工作人员对这种小错误见得多了。很nice的向我们确认之后纠正了这个错误。到了检疫的地方,气氛一下子变得严肃起来。 因为沿路都挂满了巨大的指示牌告诉你赶紧把水果生鲜之类的都扔了,不然一个苹果罚400新币。 有备而来的我们早就在飞机上将食物消灭了大半,不过还是有点可惜的扔掉了剩下的一点点。不多会,警察牵着汪星人就过来了。 汪星人就是厉害。我们的装过苹果的空袋子都嗅出来了,说明了一下之后顺利的过关了。

    这时已经是奥克兰当地时间的早上7点多。走出机场,立刻感受到这是冬天的味道。清冷的空气,瞬间让人提起精神。 雾气很重,天空灰暗,和魔都差不多嘛。因为不打算租车了,便买了巴士的票前往旅馆。车上乘客寥寥 …

    read more
  4. Honeymoon Reminiscence 1

    提笔写这篇游记时我和老婆已经回到可爱的祖国了。 历经延误,改签,再延误,一日三餐都是飞机餐,我们终于回到了狂风配暴雨更美味的魔都上海。 在走出虹桥机场,看见漫山遍野的头顶绿光的出租车嗷嗷待哺状向这我们这群晚点乘客冲上来的那一刻,激动之情只能用一个字来概括:

    流弊!

    午夜,taxi飞驰在魔都的高架上,实际上已是24小时未安睡的我们伴随这摇晃的车身,睡意渐浓,思绪似乎又晃晃悠悠的漂洋过海,穿越赤道,降落在那片秀美,壮丽的中土世界。

    TO BE CONTINUED

    read more

Page 1 / 2 »

links