01 2014 档案

摘要:其实无论你用什么语言来编程,都面临一个很现实的问题:命名。编程就像写小说,创造的是一个逻辑的世界,这个世界是由概念,规则,概念之间的相互作用来实现软件所定义的功能。要说写小说,关键的是那些名字,比如“东方不败”,“李莫愁”,“田伯光”,这些名字不是随便起来的,而是和这个世界有着深刻的联系。其实理论上讲,一个程序可以完全由无现实意义的abcd或者甲乙丙丁编写,因为一个程序实际的功能,是由实体的类型和它们之间的关系来保证的(这里就不论证了,呵呵)。但是,正如某大师所说,程序主要是给人看的,是和人交流的,只是偶尔需要编译和运行。而人的思维对现实的实体的理解最为深刻,因此如果能借助现实来理解程序,那么 阅读全文
posted @ 2014-01-27 11:45 潘多拉盒子 阅读(435) 评论(0) 推荐(0)
摘要:(转载请注明原创于潘多拉盒子)C++的模板可以帮助我们编写适合不同类型的模板类,给代码的复用性提供了极大的方便。近来写了一个涉及单例的C++模板类,简化下来可以归结为以下的代码:template class Singleton{public: // 此处省去了多线程安全锁 static T* getInstance() { static T t; return &t; }}; 那么如果希望对某个work horse类,比如叫做Foo,定义一个Singleton,就会很容易啦:Foo* foo = Singleton::getInstance(); 注意这里不需... 阅读全文
posted @ 2014-01-23 20:57 潘多拉盒子 阅读(2598) 评论(0) 推荐(0)
摘要:(转载请注明原创于潘多拉盒子)Linux man pages的缺点就是,如果你不会用某个命令,那么看完了多半还是不会。原因是,没有例子!比较囧吧?sort是提供了多列排序的功能的。通过-k选项,可以搞出来若干个排序列组,每个组内按照指定的原则排序,优先级从高到低。比如一个文件内容如下:Tom Mathematics 95Jack Mathematics 99Tom Physics 78Jack Physics 65如果想将同一个名字的不同科目的分数按从高到低排列起来,那么就是sort -k1,1 -k3nr,3是不是很神奇呢?每一个-k选项指定了一个排序列组,逗号左边的数字是起... 阅读全文
posted @ 2014-01-06 15:57 潘多拉盒子 阅读(1295) 评论(0) 推荐(1)