摘要: 2011-06-28 09:25 | 10799次阅读 | 来源:伯乐在线 【已有22条评论】发表评论 关键词:代码 | 作者:唐瑭 | 收藏这篇资讯 成为一个优秀的程序员和成为其他优秀的专业人员一样,需要尽可能多的做一些有质量的工作。有句很流行的话可以总结:做,正确做事,立马就做。(Do it. Do it right. Do it right now)1.将一天要做的事情列成清单完成复杂活动(activity)的最好方法是将其拆分成简单的各项活动。每天早上,将你一天要完成的活动进行拆分,然后制定一个相应的日程安排表,这样能够帮助你:更好的理解这个活动。每天都有一个集中的目标。提高你的估计能 阅读全文
posted @ 2011-07-01 15:27 SouthIsland 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 摘要我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础的,不管现在还是将来,GFS和早期的分布式文件系统的设想都有明显的不同。所以我们重新审视了传统文件系统在设计上的折衷选择,衍生出了完全不同的设计思路。GFS完全满足了我们对存储的需求。GFS作为存储平台已经被广泛的部署在Google内部,存储我们的服务产生和处 阅读全文
posted @ 2011-03-08 00:13 SouthIsland 阅读(4225) 评论(1) 推荐(2) 编辑
摘要: 最近有做源码阅读的事情,觉得有些费尽,做了一些思考。一个大项目的源代码,不要过份详细的阅读。大项目,其代码量基本上是可以吓死人的。过份的关注细节,常常会拘泥于细节,而忽略了整体框架。当你能够看清框架的时候,亦花费了太多的时间。因此,阅读一个大项目的源代码,其目的不在于欣赏代码细节,而在于迅速看清项目整体框架的大概面貌:都有那些模块,这些模块是干嘛的(不关心具体怎么干),模块之间的通讯机制大概是怎样的,然后在考虑子模块,通常只要掌握两级子模块就够了。花上1,2天的时间掌握这一切,就达到了阅读大项目源码的目的。因为一旦你掌握了框架,你就可以按照这个框架实现这个项目,虽然和原项目全然不同,但是完成的 阅读全文
posted @ 2011-02-17 14:47 SouthIsland 阅读(417) 评论(0) 推荐(1) 编辑
摘要: 我年轻的时候喜欢刺激的运动,去美国第一年我就参加了一个射击俱乐部,刚开始的时候我就选了一把大的gun,开始练习的第一枪啊,砰!耳朵嗡嗡的响,连手都麻了。后来我发现怎么的?是因为我没有戴耳机。后 来我发现这些俱乐部的人啊,他们似乎都有一种愤怒,而这种愤怒需要在不停的射击中去发泄。他们为什么有这种愤怒?我观察的结果,是因为他们被拒绝而愤怒。 据我所知道,在美国参加这种俱乐部的人,都是中下阶层的人,那个阶层的生活还缺乏回旋的余地啊。就好像在窄巷当中行走,不是进就是退,甚至无法转身。后 来我去了华尔街,这里的成功人士多了,各有特点,可是我的注意力并没有摆在那些成功人的身上,而摆在了少数 几个失败者的身 阅读全文
posted @ 2011-01-23 17:52 SouthIsland 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 今天在core dump中遇到的一个gdb bug;将程序 make distclean ;再make后 问题消失了。详情见下面的几个帖子:http://forum.sparkfun.com/viewtopic.php?t=6074http://sourceware.org/ml/gdb-patches/2003-01/msg00074.htmlhttp://www.cygwin.com/ml/gdb/2006-11/msg00051.html 阅读全文
posted @ 2010-12-07 11:33 SouthIsland 阅读(6352) 评论(0) 推荐(0) 编辑
摘要: 里氏代换原则(Liskov Substitution Principle, LSP)1、里氏代换原则定义若对于每一个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P的行为功能不变,则S是T的子类型。 What is wanted here is something like the following substitution property... 阅读全文
posted @ 2010-12-03 12:01 SouthIsland 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 怎么对容器中的所有对象都进行同一个操作?我们可能首先想到的是用循环来实现。 比如有如下的一个类:classClxECS{public:intDoSomething(){//这里以输出一句话来代替具体的操作cout<<"OutputfrommethodDoSomething!"<<endl;return0;};}; 现在定义如下一个vector:vector<ClxEC... 阅读全文
posted @ 2010-11-29 17:46 SouthIsland 阅读(480) 评论(1) 推荐(1) 编辑
摘要: 解析“extern”收藏解析“extern”1、声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cppint i;void main(){}//B.c... 阅读全文
posted @ 2010-10-20 15:35 SouthIsland 阅读(337) 评论(2) 推荐(0) 编辑
摘要: RMAN简明使用手册(转载)收藏Technorati 标签:oracle,rmanRMAN简明使用手册(转载)背景信息使用手册基于ORACLE 10.2资料参考:B14193-02最小使用环境■target database:备份的目标数据库■RMAN client: RMAN的客户端。它主要是负责解释备份和恢复命令,连接服务器会话执行相关命令,并在控制文件中记录备份恢复活... 阅读全文
posted @ 2010-09-27 10:22 SouthIsland 阅读(6847) 评论(0) 推荐(0) 编辑
摘要: /dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!/dev/zero,是一个输入设备,你可你用它来初始化文件。/dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。/dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目̵... 阅读全文
posted @ 2010-09-21 11:38 SouthIsland 阅读(340) 评论(0) 推荐(0) 编辑