好系统的特点

最近在想一个问题,一个系统在达到什么标准才可称得上是优秀的系统。对我个人而言,需要达到三个指标:

  1. 简单性:一个系统本身设计上就应该简洁,没有冗余的功能,容易升级和维护。
  2. 可用性:可用性是互联网产品必备特点,随时保持产品功能线上可用,不至于宕机造成大量用户流失。
  3. 自动化:系统的运维自动化,不该人力介入。在一般的错误情况能自动修复。因此对系统的监控在开发阶段提前设计

多语言编程

编程语言的百花齐放,造成在个个场景上有专门适合的语言。因此在单个系统运用多种编程语言来实现也慢慢进入程序员的思维方式。像交互,业务逻辑和数据方面都有相应的语言,这样就出现多语言编程方式。然而多种语言如何实现交互,是通过服务接口还是语言内置的调用其它语言的方式? 发挥语言在特定场景效果以及组合多语言的能力。

Erlang 安装使用rfc4627

环境: Ubuntu 14.04

编译

git clone git://github.com/tonyg/erlang-rfc4627.git

cd erlang-rfc4627/

make all

获取erlang library路径

jerry@iZ28ktvewfwZ:~$ erl
Erlang R16B03 (erts-5.10.4) [source] [64-bit] [async-threads:10] [kernel-poll:false]

Eshell V5.10.4 (abort with ^G)
1> code:get_path().
[“.”,”/usr/lib/erlang/lib/kernel-2.16.4/ebin”,
“/usr/lib/erlang/lib/stdlib-1.19.4/ebin”,
“/usr/lib/erlang/lib/xmerl-1.3.5/ebin”,
“/usr/lib/erlang/lib/wx-1.1.1”,
[…]|…]
2>

将文件夹拷贝到相应目录下

sudo cp -R erlang-rfc4627/ /usr/lib/erlang/lib/

 
测试使用

jerry@iZ28ktvewfwZ:~$ erl
Erlang R16B03 (erts-5.10.4) [source] [64-bit] [async-threads:10] [kernel-poll:false]

Eshell V5.10.4 (abort with ^G)
1> O = rfc4627:encode({obj, [{name, hideto}, {age, 23}]}).
“{\”name\”:\”hideto\”,\”age\”:23}”
2>