社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 银行

  • 24551阅读
  • 80回复

软件开发,编程技术书籍免费下载专贴(全部本地下载)

级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 20楼 发表于: 2011-10-17
SCO UNIX入门.rar
SCO UNIX入门.rar




SCO UNIX基本上是由XENIX演化而来的,并在传统UNIX的基础上增加了许多标准化和一致性,尤其是人机界面和通信能力功能强大。本书共分14章,由浅入深地讲述了SCO UNIX的基本知识、安装步骤、环境设置、界面操作,其中对每一种命令行指令的使用方法都有详细的指导;在此基础上还简明扼要地讲述了SCO UNIX系统的基本管理方法,如设备的设定和管理、用户帐户的管理、系统安全的管理、网络通信的管理等。总之,本书可以指导读者顺利地迈过SCO UNIX入门的门槛,并学会一些最基本的概念和操作方法,是SCO UNIX初学者的良师益友,对初次接触SCO UNIX版本的XENIX老手也很有借鉴意义。




SCO UNIX入门.rar下载


QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 21楼 发表于: 2011-10-17
UNIX 系统使用大全4.0.rar


本书详细讲解了UNIX 系统V 的使用方法,内容包括shell基础知识及编程、文件系统及其访问、UNIX通用命令及其操作、UNIX文档编辑、进程管理控制、计算


UNIX 系统使用大全4.0.rar下载
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 22楼 发表于: 2011-10-17
重构-改善既有代码的设计中文版.rar
重构-改善既有代码的设计中文版.rar


编辑推荐
软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。
在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。
当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,与这些沿袭下来的、质量不佳的程序共处,是多么艰难。对象专家运用许多技术来改善既有程序的结构完美性与性能,已有数年之久。




内容简介
Martin Fowler和本书另几位作者清楚揭示了重构过程,他们为面向对象软件开发所做的贡献,难以衡量。本书解释重构的原理(principles)和最佳实践方式(best practices),并指出何时何地你应该开始挖掘你的代码以求改善。本书的核心是一份完整的重构名录(catalog of refactoring),其中每一项都介绍一种经过实证的代码变换手法(code transformation)的动机和技术。某些项目如Extract Method和Move Field看起来可能很浅显,但不要掉以轻心,因为理解这类技术正是有条不紊地进行重构的关键。本书所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口。







重构-改善既有代码的设计中文版.rar下载
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 23楼 发表于: 2011-10-17
精通正则表达式中文版.rar


做为发行量很大的IT开发人员工具参考书出版商,O'Reilly的书往往紧跟开发人员的需求,与时俱进,一版而再版,这本《精通正则表达式》已经是第三版了,看了一下目录:
增加了对Unicode的支持;
增加了不少在新语言环境中的运用介绍: PHP、Java、dotNET等(Ruby没有单独列出一章只是讲原理的时候提到);


利用正则表达式可以方便的解决大量文本高级替换整理工作:从把文章中的华氏度换成摄制度到按照指定公式生成各种统计报表,而最近几年:搜索引擎对于互联网的影响加大,为了更好的伺候搜索引擎蜘蛛和机器人,连SEO的培训中:往往也会增加基于正则表达式的url rewrite一节。所以这里向原作者提个建议:希望在下一版中增加基于Apache的mod_rewrite进行URL rewriting一章,相信会吸引更多的LAMP开发人员。


《精通正则表达式》第三版(中文) 的翻译者是余晟(目前在抓虾工作)。本书发行后,译者会在blog上开辟一个专门的勘误专区吧……


我个人的一些使用感受附后: 最后希望大家支持正版,远离盗版非法电子书下载;


开发人员多少都应该学点正则表达式:
第一次学正则表达式是从《Perl5编程详解》,书里介绍:正则表达式在一些大学是门软件选修课(一个学期),价值1000$美元左右。其实对于软件开发人员来说这门课非常实用:因为正则表达式在各种语言中都有相应的实现,规则通用。即使对于正则表达式并不是你开发工作中非常重要工具的开发人员来说,也还是值得将其中实例章节读一遍的。相信如果你发现一些文本处理问题如果能通过简单的正则表达式来解决的话,还是可以为你节省不少开发程序时间的。尤其是可以不用写多行程序/脚本,用perl在一行命令(oneline / oneliner)就可以解决了。而且,通过对正则表达式的运用,可以让开发人员懂得什么样需求更适合让计算机解决。


对于复杂的表达式注意注释和测试用例的积累:
正则表达式语法灵活多变,一点差别往往会带来很大的差异,所以一定数量的注释还是很重要的,帮助你自己在几个月以后再看代码,可以很快的其他的维护者,保留相应的测试case还是很重要的,是否是单元测试不重要,哪怕代码后面多写几个test() 运行一下也好。



精通正则表达式中文版.rar下载




QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 24楼 发表于: 2011-10-17
人月神话.rar




《人月神话:软件项目管理之道》(英语:The Mythical Man-Month: Essays on Software Engineering)是由IBM System/360系统之父佛瑞德·布鲁克斯所著经典文集,全书讲解软件工程、项目管理相关课题,被誉为软件领域的圣经,内容源于作者布鲁克斯在IBM公司System/360家族和OS/360中的专案管理经验[2]。该书于1975年首次发行(ISBN 0-201-00650-2),并于1995年重新发行纪念版(ISBN 0-201-83595-9)[3],其中新增了对〈没有银弹〉一文的评论和回应,与4个额外的新章节。
目录  [隐藏]
1 内容简介
1.1 焦油坑
1.2 人月神话
1.2.1 人月
1.2.2 Brooks法则
1.3 外科手术团队
1.4 专制、民主与系统设计
1.5 第二系统效应
1.6 意念的传达
1.7 巴别塔为什么失败?
1.7.1 沟通
1.7.2 专案工作手册
1.7.3 组织
1.8 软件需求
2 书目
2.1 二十周年纪念版
3 数据源
3.1 脚注
3.2 参考书籍
4 参见
5 外部来源
[编辑]内容简介


[编辑]焦油坑
跟只为私人使用而单独写出来的组件程序(program)相比,做出软件系统产品(programming systems product)所要付出的代价将是九倍以上。估计产品化(productizing)的代价是三倍,若要对组件从事设计、集成、测试,进而凝聚成为一个系统,则代价也是三倍,而且这方面的成本计算基本是独立的。[2]
“    史前时期最骇人的景象,莫过于一群巨兽在焦油坑里做垂死前的挣扎。不妨闭上眼睛想像一下,你看到了一群恐龙、长毛象、剑齿虎正在奋力挣脱焦油的束缚,但越挣扎,焦油就缠得越紧,就算他再强壮、再利害,最后,都难逃灭顶的命运。过去十年间,大型系统的软件开发工作就像是掉进了焦油坑里……    ”
—佛瑞德·布鲁克斯[4]
软件开发的另一个难题,是从单一程序到软件系统过程中,所造成复杂度的快速上升,期间并需要包含不同的活动与技能,使得软件开发必须面对多样性的挑战。布鲁克斯最早认识到设计程序、开发软件的差别,他以程序与系统、产品的差异,解释两者之间的不同,并以3×3的复杂度加以说明。[5]
[编辑]人月神话
人月神话(英语:The mythical man-month):这部分讲述人力(man)和时间(month)并不体现线性关系。指出以大量人员和较短的时间,并不能缩短软件的开发进度。一窝蜂的作业方式无助于软件生产,且会制造麻烦,产生出更差的软件。向进度落后的专案追加人力,只会使进度更加落后。因为新进的人员需要时间了解整个专案,而增加额外的沟通消耗。当有 N 个人必须在这群人之中进行沟通时(无阶级关系),当 N 增加,其输出 M 将抵消其效益,甚至倒退(最后几天所完成的进度,远不如刚开始几天所完成的进度。像是发现了许多错误)。
团队交流公式:n(n ? 1) / 2
示例:50 个开发人员,就要 50(50 ? 1) / 2 = 1225 个沟通管道
用“人月”来衡量工作规模的大小是危险的,也是一个容易遭到误解的迷思,使用人月的前提必须是在人力和工时可以互换的情况之下:当一份工作因具有连续性的限制而不可切分时,就算投入再多的人力,也不会对时程有所影响,生小孩就是需要九个月,你叫多少个妈一起生都一样,软件工程就是像这样的工作,因为它必须除错,而除错本身就具有连续性的本质。[2]
[编辑]人月
人月(英语:man-month)指的是“一个人要花几个月”才能完成软件开发的单位,通常用来评估一件软件专案的大小。[6]以成本会计(cost accounting)为基础的时程预估技术,使我们误把工作量和专案进度混为一谈,人月是个危险并很容易就遭到误解的迷思(myth),因为它假设人力和工时可以互换。[2]
[编辑]Brooks法则
在一个时程已经落后的软件专案中增加人手,只会让它更加落后。[7]根据Brooks法则,增加人员到一个已经延误的专案里,等于是火上加油。除非你可以把工作区分,让新进人员可在不影响他人工作的状况下有所贡献。
把工作切分给更多人做将造成额外的沟通(communication)代价——训练和相互的交流(intercommunication)。欲增加软件专案的人手,总共必须付出的代价可分为三方面:工作重新切分本身所造成的混乱与额外工作量、新进人员的训练、新增加的相互交流。[2]
[编辑]外科手术团队
在接受相同的训练、同样都是两年资历的情况下,优秀专业程序员的生产力要比差劲的程序员好上十倍。短小精悍团队是最棒的——尽可能用最少的人。两人团队,其中一人当领导者,这通常是最佳的用人方式。以短小精悍团队开发真正大的系统就太慢了。绝大多数大型软件系统的经验显示,使用一堆人蛮干的方式最耗成本、最慢、最没有效率,做出来的系统在概念上也最不完整。
以一位首席程序员为主、类似于外科手术团队的组织提供了一个良方,既可因少数人的决策而兼顾到产品的整体性,又可因多数人的合作与大幅沟通减少而得到全部人的生产力。[2]
[编辑]专制、民主与系统设计
在系统设计时,保有概念整体性(conceptual integrity)是最重要的原则。[2]
功能概念复杂度比(这个比值是为了量测使用便利性,对简单和困难的运用都很有效)才是系统设计的最终测试标准。功能多,不见得是好事。
要达成概念整体性,设计必须出自于一个人的想法,或是极少数人的一致决定。
对大型软件专案(小专案也一样)来说,将架构设计独立于实现之外是取得概念整体性强而有利的方法。
如果系统必须保有概念上的整体性,那么就必须有人来控制这些概念,这就是需要专制的原因,无庸置疑。
许多软件架构、实现、实现的工作都是可以同时进行的。(不论硬件或软件设计,都可以同时进行)
[编辑]第二系统效应
第二系统效应(英语:The second-system effect)就一个人所做过的设计而言,第二个系统是最危险的系统,一般来说,都倾向于过度设计。[2]
当他做第三或之后的系统时,之前的经验会互相印证,以确认出这类系统的一般性特色,而系统彼此之间的不同处,也会帮助他辨别出属于特殊和非通用的部份。除了做些功能上的修饰之外,第二系统效应还有另外一项特征,那就是倾向于将之前已熟悉的技术发挥到淋漓尽致,但却没有留意到,这项技术早就跟目前专案的基本系统假设有冲突而不再适用,OS/360有好多这样的例子。(Windows NT则似乎是1990年代的示例)
对大部份OS/360的设计人员来说,它也是个第二系统,设计成员分别来自1410-7010软盘操作系统、Stretch操作系统、Project Mercury实时系统、给7090用的IBSYS操作系统等等,几乎没有人拥有两个上述系统的发展经验,所以OS/360可称得上是一个最佳的第二系统效应示例。
[编辑]意念的传达
[编辑]巴别塔为什么失败?
[编辑]沟通
[编辑]专案工作手册
手册或书面规格是不可或缺的工具,虽然光靠它是不够的。手册载明的是产品的外部(external)规格,用来描述并制定出用户从外观上将或看到的所有细节,撰写手册便是架构设计师的主要工作。当用户和实现人员的反应不断地显示出设计上难以使用或实现之处,手册就会堕入重新准备、修改的轮回之中。为了造福实现人员,将修改的程度予以量化(quantize)是很重要的——在时程上应该要有载明日期的版本信息。[2]
[编辑]组织
[编辑]软件需求
失败的软件专案经常发生在开发者与用户间对需求认知的误解。开发者抱怨用户说不清楚需求,而用户抱怨开发者误解他们的意思。布鲁克斯认为“软件开发最困难的单一项目,是精确地决定要建造什么。”[8]
[编辑]



人月神话.rar下载


QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 25楼 发表于: 2011-10-17
C++模板元编程技术.rar




本文描述了模板元编程技术的起源、概念和机制,并介绍了模板元编程技术在Blitz++和Loki程序库中的应用。

导言

    1994年,C++标准委员会在圣迭哥举行的一次会议期间Erwin Unruh展示了一段可以产生质数的代码。这段代码的特别之处在于质数产生于编译期而非运行期,在编译器产生的一系列错误信息中间夹杂着从2到某个设定值之间的所有质数:

// Prime number computation by Erwin Unruh
template <int i> struct D { D(void*); operator int(); };

template <int p, int i> struct is_prime {
    enum { prim = (p%i) && is_prime<(i > 2 ? p : 0), i -1> :: prim };
};

template < int i > struct Prime_print {
    Prime_print<i-1> a;
    enum { prim = is_prime<i, i-1>::prim };
    void f() { D<i> d = prim; }
};

struct is_prime<0,0> { enum {prim=1}; };
struct is_prime<0,1> { enum {prim=1}; };
struct Prime_print<2> { enum {prim = 1}; void f() { D<2> d = prim; } };
#ifndef LAST
#define LAST 10
#endif
main () {
    Prime_print<LAST> a;
}

类模板D只有一个参数为void*的构造器,而只有0才能被合法转换为void*。1994年,Erwin Unruh采用Metaware 编译器编译出错信息如下(以及其它一些信息,简短起见,它们被删除了):
| Type `enum{}′ can′t be converted to txpe `D<2>′ (\"primes.cpp\",L2/C25).
| Type `enum{}′ can′t be converted to txpe `D<3>′ (\"primes.cpp\",L2/C25).
| Type `enum{}′ can′t be converted to txpe `D<5>′ (\"primes.cpp\",L2/C25).
| Type `enum{}′ can′t be converted to txpe `D<7>′ (\"primes.cpp\",L2/C25).
如今,上面的代码已经不再是合法的C++程序了。以下是Erwin Unruh亲手给出的修订版,可以在今天符合标准的C++编译器上进行编译:

// Prime number computation by Erwin Unruh

template <int i> struct D { D(void*); operator int(); };

template <int p, int i> struct is_prime {
    enum { prim = (p==2) || (p%i) && is_prime<(i>2?p:0), i-1> :: prim };
};

template <int i> struct Prime_print {
Prime_print<i-1> a;
    enum { prim = is_prime<i, i-1>::prim };
    void f() { D<i> d = prim ? 1 : 0; a.f();}
};

template<> struct is_prime<0,0> { enum {prim=1}; };
template<> struct is_prime<0,1> { enum {prim=1}; };

template<> struct Prime_print<1> {
    enum {prim=0};
    void f() { D<1> d = prim ? 1 : 0; }; [Page]
};

#ifndef LAST
#define LAST 18
#endif

main() {
    Prime_print<LAST> a;
    a.f();
}
在GNU C++ (MinGW Special) 3.2中编译这段程序时,编译器将会给出如下出错信息(以及其它一些信息,简短起见,它们被删除了):
Unruh.cpp:12: initializing argument 1 of `D<i>::D(void*) [with int i = 17]\'
Unruh.cpp:12: initializing argument 1 of `D<i>::D(void*) [with int i = 13]\'
Unruh.cpp:12: initializing argument 1 of `D<i>::D(void*) [with int i = 11]\'
Unruh.cpp:12: initializing argument 1 of `D<i>::D(void*) [with int i = 7]\'
Unruh.cpp:12: initializing argument 1 of `D<i>::D(void*) [with int i = 5]\'
Unruh.cpp:12: initializing argument 1 of `D<i>::D(void*) [with int i = 3]\'
Unruh.cpp:12: initializing argument 1 of `D<i>::D(void*) [with int i = 2]\'
这个例子展示了可以利用模板实例化机制于编译期执行一些计算。这种通过模板实例化而执行的编译期计算技术即被称为模板元编程。



C++模板元编程技术.rar下载
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 26楼 发表于: 2011-10-19
C++ Primer-3rd-Edition中文完美版.rar







C++ Primer的第三版结合了Stanley Lippman的实践经验和Josée Lajoie对于ANSI/ISO标准C++的深入理解。这本指导书的第三版已经被重新改写过,以便更加精确地讲述标准C++的特性和用法。在本书中,对于C++初学者特别有价值的是一些来自真实世界中的程序例子,它们说明了泛型程序(generic program)的设计、面向对象程序的设计、模板的用法,以及使用标准C++进行程序设计的方方面面。而且,本书也在适当的地方讲到了一些习惯用法以及效率指导。



C++ Primer-3rd-Edition中文完美版.rar下载




QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 27楼 发表于: 2011-10-19
C++标准程序库.rar


这本包含最新资料的完整书籍,反映出被ANSI/ISO C++语言标准规格书纳入的C++标准程序库的最新组成。更明确地说,这本书将焦点放在标准模板库身上,检验其中的容器、迭代器、仿函数和算法。读者还可以找到特殊容、字串、数值类别、国际化议题、IOStream。每一个元素都有深刻的呈现,包括其介绍、设计、运用实例、细部解说、陷阱、意想不到的危险,以及相关类别和函数的精确樯记式和定义式。


这本书给我感觉就是既适合初期入门,又适合当字典用


C++标准程序库.rar下载


QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 28楼 发表于: 2011-10-20
SDL高级教程下载
SDL高级教程.rar

SDL是Simple DirectMedia Layer(简易直控媒体层)的缩写。它是一个跨平台的多媒体库,以用于直接控制底层的多媒体硬件的接口。这些多媒体功能包括了音频、键盘和鼠标(事件)、游戏摇杆等。当然,最为重要的是提供了2D图形帧缓冲(framebuffer)的接口,以及为OpenGL与各种操作系统之间提供了统一的标准接口以实现3D图形。从这些属性我们可以看出,SDL基本上可以认为是为以电脑游戏为核心开发的多媒体库。
SDL支持主流的操作系统,包括Windows和Linux。在官方的介绍中,我们可以找到它所支持的其他平台。(SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. )。SDL本身从C语言开发,并且能很好的在C++等高级语言中使用。在官方可以看到SDL所支持的语言很多。(Including Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, Smalltalk, and Tcl. )

SDL在GNU LGPL version 2下发布,这意味着你可以免费的使用。并且可以免费的用于商业软件的制作(只要你直接使用SDL的动态链接库,Windows下的SDL.dll)。如果你将SDL库编译进了自己的二进制代码中,你需要指明你所使用的SDL库的版本以及包括你自己修改的源代码,并说明这些代码的原始出处。这是很宽松的法律,你可以用如此强大的多媒体库完全合法的免费开发商业游戏。





SDL高级教程.rar下载
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 29楼 发表于: 2011-10-28
webkit研究报告.rar


内部教材,包含上下二部,注意保密

一.Webkit介
   WebKit 的前身是 KDE 小的 KHTML。Apple KHTML 发扬光大,推出了装 KHTML 型的WebKit 引擎的浏览器 Safari,得了非常好的反
WebKit 核在手机上的用十分广泛,例如 Google 的手机 Gphone、 Apple 的 iPhone, Nokia’s Series 60 browser 等所使用的 Browser 核引擎,都是基于 WebKit。

浏览器的核引擎,基本上是三分天下:
Trident: IE 以Trident 作为内核引擎。
Gecko: Firefox 是基于 Gecko 开发
WebKit: Safari, Google Chrome 基于 Webkit 开发

WebKit支持功能:
HTML4.0/5.0
CSS1&2
Dom1&2
ECMA262
JS1-6
HTTP/FILE
GIF/JPEG/PNG
XML
SSL3
JVM
FTP
SVG放矢量形(Scalable Vector Graphics)
RSS2.0(RDF Site Summary )







webkit研究报告.rar下载
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
描述
快速回复

您目前还是游客,请 登录注册
如果您在写长篇帖子又不马上发表,建议存为草稿