Welcom to RO_wsy's blog

上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要: 第二章 利用隐喻对编程进行更深刻的理解2.1 隐喻的重要性很多伟大的科学发现都是从类比开始的,类比就是将不熟悉的事物和我们熟悉的事物进行比较,找到他们之间的功能点,然后通过我们的比较解释不熟悉的事物,这种方法称之为“模型化”。模型的力量在于能提供生动形象的概念而易于被人接受。但模型有好有坏,好的模型应该要简单,与其他模型关系密切,能解释大部分试验现象和观测现象。2.2 如何使用软件隐喻软件隐喻是启发式的方法,并不是公式,并不会给你提供直接的解决方法,它只是给你提供方向,但是方向正确与否还需要自己摸索,所有对模型理解的好坏便决定了你对软件开发理解的好坏。2.3 通常的软件隐喻下面我们来看一看对软 阅读全文
posted @ 2012-10-04 15:35 RO_wsy 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 《代码大全》可谓关于软件构件方面最经典,最权威的参考书,书中极其详尽的描述了软件构件过程中的几乎一切需要注意的问题,是每个程序员都应具备的一本手册,但本书因为内容详尽,通俗易懂,所以不免厚些,查找起来比较费劲,所以将其中的精华内容总结出来,单独成文以便以后查找核对之用不失为一个好方法。下面分章总结,每章一文,先看第一章。第一章 欢迎进入软件创建世界1.1什么是软件创建软件开发周期: · 问题定义 · 需求分析 · 实现计划 · 总体设计 · 详细设计 · 创建即实现 · 系统集成 · 单元测试 · 系统测 阅读全文
posted @ 2012-10-04 15:08 RO_wsy 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 1. C中static有什么作用(1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。(2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量。(3)static的第三个作用是默认初始化为0。其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0×00,某些时候这一特点可以减少程序员的工作量 阅读全文
posted @ 2012-10-02 08:28 RO_wsy 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 信号屏蔽字是指一个进程中当前阻塞而不能够递送给该进程的信号集。信号集则是一个能表示多个信号的集合的一种数据类型,为sigset_t。与信号集设置相关的函数有如下几个:#include <signal.h>/* * 下列四个函数成功返回0,出错返回-1 */int sigemptyset(sigset_t *set);int sigfillset(sigset_t *set);int sigaddset(sigset_t *set, int signo);int sigdelset(sigset_t *set, int signo);/* * 下面函数若真返回1,若假返回0,出错返回 阅读全文
posted @ 2012-09-27 17:05 RO_wsy 阅读(242) 评论(0) 推荐(0) 编辑
摘要: unix中,信号是一种很重要的软件中断,提供了一种异步处理事件的方法,那么程序刚开始执行时信号的状态时什么样的呢?我们知道程序的创建无非两种情况,一种是调用exec函数,一种是调用fork函数。一般情况下,当一个程序执行时,所有信号的状态都是系统默认或者忽略。通常所有信号的动作都被设置成系统默认,除非调用exec的进程忽略该信号。确切的讲,exec函数将原先设置为要捕捉的信号都更改为系统默认动作,其他信号的状态不变。因为在新进程中,原进程的信号处理程序的地址在新进程中可能已无意义,所以原来要捕捉的信号在新进程中自然就不能捕捉了。另外,在fork中,信号的状态很简单,子进程继承其父进程的信号处理 阅读全文
posted @ 2012-09-25 15:22 RO_wsy 阅读(166) 评论(0) 推荐(0) 编辑
摘要: unix中,信号是一种非常重要的软件中断,那么什么时候会产生信号呢,有下面四种情况:1. 硬件异常(如除以0)2.软件条件(如alarm计时器超时)3.终端产生信号4.调用kill函数 阅读全文
posted @ 2012-09-25 15:07 RO_wsy 阅读(156) 评论(0) 推荐(0) 编辑
摘要: c++中,指针和引用开起来不大一样,但他们却实现类似的功能,无论指针还是引用,都使你间接使用其他对象,那么他们有什么区别呢,又在何时使用他们呢?首先,要记住,引用是不可以为空的,也就是没有NULL REFERENCE,引用必须指向某个对象,所以引用在使用时必须初始化。指针可以指向为空,例如可以有以下代码:int *pi = NULL;有人可能会问,那下面的代码怎么解释呢:char *pc = NULL; char& rc = *pc;这段代码的行为是未定义的,当然也不应该是一个脑子正常的程序员写出来的。因为引用不可以为NULL,所以使用时可以不用测试其是否为空,效率可能会高些。另外,引 阅读全文
posted @ 2012-09-10 22:05 RO_wsy 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1.加载BIOS的硬件信息与进行自我测试,并依据设置取得地一个可启动的设备2.读取并执行第一个启动设备内的MBR的boot loader(即grub,spfdisk等程序)3.依据boot loader的设置加载kernel,kernel会开始检测硬件与加载驱动程序4.在硬件驱动成功后,kernel会主动调用init进程,而init会去的run-level信息5.init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境(如网络,时区等)6.init执行run-level的各个服务的启动(script方式)7.init执行/etc/rc.d/rc.local文件8.ini 阅读全文
posted @ 2012-09-03 15:42 RO_wsy 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 1.降低复杂度2.引入中间的、易懂的抽象3.避免代码重复4.支持子类化5.隐藏顺序6.隐藏指针操作7.提高可移植性8.简化复杂的逻辑判断9.改善性能10.隔离复杂度11.隐藏实现细节12.限制变化所带来的影响13.隐藏全局数据14.形成中央控制点15.促成可重用的代码16.达到特定的重构目的 阅读全文
posted @ 2012-08-13 22:52 RO_wsy 阅读(133) 评论(0) 推荐(0) 编辑
摘要: unix系统中,有8种方式可以使进程终止,其中五种为正常终止,三种为异常终止。五种正常终止方式为:1.从mian返回2.调用exit()3.调用_exit()或_Exit()4.最后一个线程从启动例程返回5.最后一个现成调用pthread_exit三种异常终止方式:6.调用abort()7.接到一个信号并终止8.最后一个线程对取消请求作出响应 阅读全文
posted @ 2012-08-07 21:28 RO_wsy 阅读(339) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页