关于复杂性,尚无统一的定义,从不同的角度可以给出不同的答案.可以用数量来度量,比如芯片集成的电子器件越多越复杂(不一定对):按层次性[2]度量,复杂度在于层次的递归性和不可分解性.在信息论中,使用熵来度量信息的不确定性. John Ousterhout选择从认知的负担和开发工作量的角度来定义软件的复杂性,并且给出了一个复杂度量公式: 子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得到系统的整体复杂度C.系统整体的复杂度并不简单等于所有子模块复杂度的累加,还要考虑该模块的开发维护所花…
笔记前言: <Computer Organization and Design: The Hardware/Software Interface>,中文译名,<计算机组成与设计:硬件/软件接口>,是计算机组成原理的经典入门教材之一.节奏紧凑又不紧张,内容充实又不冗长,语言表述朴实易懂又不故作高深,是一本非常适合初次接触计算机组成原理的学生阅读的入门教材. 读书笔记系列博客是主要是记录我学习和阅读中的心得和体会.既然是读书笔记,肯定不会面面俱到,那就成了抄书笔记了.所有笔记系列博客力…
Software Testing Part I:The Big Picture 1.Software Testing Background Bug's formal definition 1.The software doesn't do something that the product specification says it should do. 2.The software does something that the product specification says it s…
原文地址:http://blog.csdn.net/jinzhuojun/article/details/13297447 虽然摩尔定律让我们的计算机硬件得以以指数速度升级,但反摩尔定律又不断消减这些升级所带来的好处.其原因之一就是面对硬件的更新换代,程序员似乎不用再对内存“精打细处“了.而近年来随着穿戴式设备和大数据平台的兴起(一个是内存本身受限,一个是对内存的需求巨大),让内存的有效利用又成为了值得开发人员关注的热点. <Small MemorySoftware: Patterns For…
 The Pragmatic Programmer读书笔记之中的一个 DRY-Don't Repeat Youself 尽管自己买了非常多软件project方面的书,可是由于时间的问题.一直没有静下心来充充电. 近期由于感觉自己在编程方面迫切须要有进一步的提高,于是打算好好的研读一下Andrew Hunt和David Thomas合著的<The Pragmatic Programmer:From Journeyman toMaster>.本来我是比較偏好原版的,买的书不是原版就是影印版,可…
<Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h>文件中的常量. 通过cat 命令查看: lancelot@debian:~/Code/tlpi$ cat /usr/include/limits.h /* Copyright (C) 1991, 1992, 1996, 1997, 1998, 1999, 2000, 2005 Free Software Fo…
对于本节的函数内容其实就没什么难点了,但是对于函数这节又涉及到了顺序点的问题,我觉得可以还是忽略吧. 本节知识点: 1.函数中的顺序点:f(k,k++);  这样的问题大多跟编译器有关,不要去刻意追求.  这里给下顺序点的定义:顺序点是执行过程中修改变量值的最后时刻.在程序到达顺序点的时候,之前所做的一切操作都必须反应到后续的访问中. 2.函数参数:函数的参数是存储在这个函数的栈上面的(对于栈可以看上篇文章<内存管理的艺术>),是实参的拷贝. 3.函数的可变参数: a.对于可变参数要包含sta…
认识CLR [<CLR via C#>读书笔记] <CLR via C#>读书笔记 什么是CLR CLR的基本概念 通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.Net虚拟机所选用的名称.这是通用语言架构(简称CLI)的微软实现版本,它定义了一个代码运行的环境.CLR运行一种称为“通用中间语言”的字节码,这个是微软的通用中间语言实现版本.   CLR运行在微软的视窗操作系统上.查看通用语言架构可以找到该规格的实现版本列表.其中有一些版…
<CLR via C#>读书笔记 什么是CLR CLR的基本概念 通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.Net虚拟机所选用的名称.这是通用语言架构(简称CLI)的微软实现版本,它定义了一个代码运行的环境.CLR运行一种称为“通用中间语言”的字节码,这个是微软的通用中间语言实现版本. CLR运行在微软的视窗操作系统上.查看通用语言架构可以找到该规格的实现版本列表.其中有一些版本是运行在非Windows的操作系统中.(维基百科CLR) 以上定…
<Apache Kafka 实战>读书笔记-认识Apache Kafka 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.kafka概要设计 kafka在设计初衷就是为了解决互联网公司的超级大量级数据的实时传输.为了实现这个目标,kafka在设计之初就需要考虑以下四个方面: 第一:吞吐量/延迟 第二:消息持久化  第三:负载均衡和故障转移 第四:伸缩性 1>.吞吐量/延时介绍 我们先打个比方:若kafka处理一条消息需要花费2ms,那么计算得到的吞吐量不会超过500…