2010/01/19

The Google Collections Library, version 1.0-final, was released on December 30, 2009

今天看到InfoQ上的一个“旧闻”,是关于google collections的,又再仔细看了一下,看来项目里面应该引入这个包。

- 主要亮点在于:

  • Immutable Collections,适用于各种并发处理场景
  • New collections types: Multiset, Multimap, BiMap
  • Ordering,太方便了,而且代码可读性好多了
  • Iterables and Iterators,性能应该有改进不少

- 结论(摘自Sune Simonsen)

In my opinion Google Collection will definitely improve your code, making it more readable and save you from creating your own error-prone implementation of the functionality already provided and tested by Google. I think that it is especially good that the library extends the standard library in a non intrusive way, instead of creating a parallel collection library. This also means that you can choose to use only the convenience classes and not spreading Google specific types all over your system if that worries you.

- references:

http://bwinterberg.blogspot.com/2009/09/introduction-to-google-collections.html

http://blog.jayway.com/2009/10/22/google-collections/

2010/01/15

NoSQL探索2:Amazon's Dynamo

最近看了一下Dynamo的一份演讲和一份论文,初略的了解了一下Dynamo的内涵。


Dynamo Key Focus


- opaque data persistent, accompanying keys which identify them


-




2010/01/07

NoSQL探索1:认识MongoDB

- 基本特性,直接引用官网描述


Combining the best features of document databases, key-value stores, and RDBMSes.


MongoDB (from "humongous") is a scalable, high-performance, open source, schema-free, document-oriented database. Written in C++, MongoDB features:



  • Document-oriented storage (the simplicity and power of JSON-like data schemas)


  • Dynamic queries


  • Full index support, extending to inner-objects and embedded arrays


  • Query profiling


  • Fast, in-place updates


  • Efficient storage of binary data large objects (e.g. photos and videos)


  • Replication and fail-over support


  • Auto-sharding for cloud-level scalability


  • MapReduce for complex aggregation


  • Commercial Support, Hosting, and Consulting


MongoDB bridges the gap between key-value stores (which are fast and highly scalable) and traditional RDBMS systems (which provide structured schemas and powerful queries).


- 索引方面


“Formally speaking, these indexes are implemented as "B-Tree" indexes.”


在索引方面,采用的还是B-Tree索引的,无法多索引做交集运算(intersect),无法满足我的多字段组合查询的需求。


只能说符合了Schemaless, Key-Value store两个特点,加上基于索引的查询接口。


- 分布式架构


分布式特性、Replication、Fail-over、MapReduce这几个还是比较有价值的。



单元测试代码覆盖-Atlassian Clover试用小记

今天试用了一下Atlassian Clover代码覆盖工具,感觉很不错。


如果准备实践TDD,推荐试用一下这个工具。


Clover使用方式有三种:


- IDE集成,可支持IDEA, Eclipse


- 项目管理工具集成,可支持Ant,Maven, Command Line Tool


- CI服务器集成


支持如下功能:


- Class Coverage Distribution


- Class Complexity


- Coverage Tree Map


小巧,方便,如果搭配Atlassian的JIRA, BAMBOO等产品一起使用,应该对开发效率提高不少吧,而且有利于提高代码质量。



2010/01/05

Wedding@Pujiang

补记,前几天没法上网而且太忙。


2010.01.03:Wedding@Pujiang


这是2010年的第一件大事,也是我人生中的一件大事。


谢谢岳父、岳母、妈妈、弟弟,最感谢的是老婆这么多年的不离不弃!



2010新年计划

2010已经来到了。还是需要拟定一下计划:


- 工作方面


1. 把自己负责的产品开发好,起码要做到自己满意、客户不抱怨。


2. 注意团队建设,增加团队沟通。


- 技术方面


1. 进行一些技术探索,主要是NOSQL方面的。


2. 坚持把这个博客写下去,不要半途而废。


3. Cocoa/Cocoa touch方面,真正完成两个iPhone应用,不要浪费了$99申请的ADP(2010.10到期)。


4. 力争看几篇海量数据处理方面的论文,跟入一两个开源项目(比如FastBit)。


- 个人方面


1. 在合适的时间点和情况下,希望能够买房,这是提高生活质量的前提,也是为了最亲爱的人。


2. 能够扩大生活接触面,现在状态太宅了。