"编程"丛书包含的书籍

设计模式可 复用面向对 象软件基础

所有结构良好的面向对象软件体系结构中都包含了许多模式。实际上,当我评估一个面向对 象系统的质量时,所使用的方法之一就是要判断系统的设计者是否强调了对象之间的公共协同关 系。在系统开发阶段强调这种机制的优势在于,它能使所生成的系统体系结构更加精巧、简洁和 易于理解,其程度远远超过了未使用模式的体系结构。 模式在构造复杂系统时的重要性早已在其他领域中被认可。特别地,Christopher Alexander 和他的同事们可能最先将模式语言(pattern language)应用于城市建筑领域,他的思想和其他 人的贡献已经根植于面向对象软件界。简而言之,软件领域中的设计模式为开发人员提供了一种 使用专家设计经验的有效途径。 在本书中,Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides介绍了设计模式 的原理,并且对这些设计模式进行了分类描述。因此,该书做出了两个重要的贡献:首先,它展 示了模式在建造复杂系统过程中所处的角色;其次,它为如何引用一组精心设计的模式提供了一 个实用方法,以帮助实际开发者针对特定应用问题使用适当的模式进行设计。 我曾荣幸地有机会与本书的部分作者一同进行体系结构设计工作,从他们身上我学到了许多 东西,并相信通过阅读该书你同样也会受益匪浅。

STL源码剖析简体中

身为C++标准库最重要的组成部分,STL(标准模板库)不仅是一个可复用组件库,而且是一个包罗算法与数据结构的软件框架(framework)。“框架”这个词,本身就 。 有庞大、稳定、完整而可扩展的涵义。软件框架,则是用一行行精细准确的源码,构造个庞大、稳定、完整而可扩展的软件架构。稍有软件开发经验的人都知道,要做到这些,谈何容易!STL在1994 年走人C++标准,使得原本即将推出的C++标准延迟4年问世而无怨无悔,并为之对内容做巨幅改进。而今STL不仅为千千万万C++程序员所日常运用,而且获得极高的学术赞誉,成为一个典范、一种境界。作为一个软件框架,STL所取得的成功,实在可以用“辉煌”来形容,其所内涵的软件思想和技术经验,更是无比的深厚与精致。 学习编程的人都知道,阅读、剖析名家代码乃是提高水平的捷径。源码之前,了无秘密。大师们的缜密思维、经验结晶、技术思路、独到风格,都原原本本体现在源码之中。在你仔细推敲之中,迷惑不解之时,恍然大悟之际,你的经验、思维、视野、知识乃至技术品位都会获得快速的成长。特别是面对STL这样优秀而普遍的作品,无论你是为了满足作为程序员第二天性的求知欲,还是在日常工作中解决实际问题,总有一天,你会打开一个叫做或者的头文件,想把STL背后的秘密看个究竟.英文里有一个常用短语,叫做“under the hood”,钻进魔术师的帐篷,屏住呼吸,瞪大眼睛,把那些奇妙的魔法看个通透,让自己的理解和技艺获得巨幅的提升,这种诱惑,任何一个程序员都无法抵挡!

UNIX环境高级编程 中文第三版 扫描版

作为UNIX 环境编程方面的经典著作,由著名技术专家W.Richard Stevens撰写的AdvancedProgramming in the UNIX® Environment 自 1992 年出版以来,受到专家和读者的普遍欢迎。由 StephenA.Rago作为共同作者,根据新的系统和规范进行了更新,2005年出版了第2版。2013年由Rago更新到了第3版,涵盖了70多个最新版POSIX.1标准的新增接口,删除了STREAMS相关接口的内容,并将使用的典型平台更新为Solaris10、Darwin10.8.0、FressBSD8.0和Ubuntu12.04。 目前UNIX版本不断涌现,例如广为使用的苹果MacOSX和iOS使用开源类UNIX操作系统Darwin,谷歌的Android采用Linux作为操作系统内核。尽管UNIX编程环境和C程序设计语言的标准化方面已经有不少工作,但系统接口不断增加,例如SingleUNIXSpecification第1版(SUSv1)1994年出版时大约包含了1170个接口(也被称为Spec1170),到2010年发布第4版时 (SUSv4),已经包括1833个接口。虽然系统调用接口和库函数可参见《UNIX程序员手册》第2、 3部分,但“手册中没有给出实例及基本原理,而这些正是本书所要讲述的内容”(第1版前言)。本书精选了常用的400多个系统调用和库函数,这些接口基本是UNIX系统软件的核心功能,涵盖了UNIX/Linux系统编程的方方面面。本书通过简明完整的例子来说明其用途,不仅仅说明了其基本用法,还反映了不同平台之间细微差异,有助于读者对整个编程环境有全面深入的了解。在翻译本书的过程中,译者也是收益良多,同时,一些经典的案例已经用于大学课堂教学和编程实践中。

Git权威指南

本书是Git领域的集大成之作,是一本关于Git的百科全书,在广度、深度和实战性上让同类作品望尘莫及。作者是国内顶尖的版本控制专家和咨询顾问之一,本书得到了Git官方维护者JunioCHamano和ITeye创始人范凯(Robbin)先生等数位专家的高度认可和极力推荐,权威性毋庸置疑。 全书一共9篇,共41章和4个附录,内容儿乎涵盖了Git的所有方面。第I篇介绍了版本控制工具的演变历史、Git 的各种优点,以及它在3种主流操作系统中的安装与配置。第2篇和第3篇既是本书的基础,又是本书的核心,不仅介绍了Git 的操作和使用,而且还讲解了Git的原理。第2篇详细讲解了个,人用户如何使用Git,包括Git初始化、日常操作、暂存区、对象、重置、检出、恢复进度、历史变更、克隆、库管理等:第3篇详细讲解了Git协议和团队如何使用Git,包括Git支持的协议、冲突解决、里程碑、分支、远程版本库和补丁文件交互等。第4篇全面介绍了Git的协同模型,即它在实际工作中的使用模式,包括各种经典的Git协同模型、Topgit协同模型、子模组协同模型、子树合并、Android多版本库协同、Git与SVN协同模型等。第5篇介绍了Git服务器的架设,首先讲解了HTTP协议、Git 协议、SSH 协议的使用,然后讲解了Gitolite、Gitosis、 Gerrit 等服务器的架设方法,最后还讲解了Git版本库的托管。第6篇介绍了版本库的迁移,包括如何从CVS、SVN、Hg等版本库迁移到Git,以及Git版本库整理等方面的内容。第7篇讲解了Git的其他应用,包括etckeeper、Gistore 等的安装、配置和使用,以及补丁中的二进制文件和云存储等内容。第8篇介绍了Git的跨平台操作,以及它的钩子和模板、稀疏检出和浅克隆、嫁接和替换等重要特性。第9篇是附录,详细给出了Git 的命令索引以及CVS、SVN 和Hg与Git的比较与命令对照,方便读者查阅。

算法导论中文版

学习编程有几年了,感觉走了不少弯路,而不少的学弟学妹又在重蹈我当初的覆辙,不免有些痛心。最近在网 上也看了许多前辈们的经验建议,再结合自己的学习经历在这里谈谈基础的重要性,希望帮助大家少走些弯 路。 什么是基础呢?就是要把我们大学所学的离散数学,算法与数据结构,操作系统,计算机体系结构,编译原理 等课程学好,对计算机的体系,CPU本身,操作系统内核,系统平台,面向对象编程,程序的性能等要有深层次的掌握。 初学者可能体会不到这些基础的重要性,学习jsp,donet,mfc,vb的朋友甚至会对这些嗤之以鼻,但是一开始没学 好基础就去学jsp或donet会产生很坏的影响,而且陷入其中不能自拔。 我上大二的时候还对编程没什么概念,就上了门C++也不知道能干什么,老师说MFC也不知道是什么东西, 看别的同学在学asp.net就跟着学了,然后就了解到.net,j2ee,php是什么了,就觉得软件开发就是用这些了,而上 的那些专业课又与我们学的sqlserver啊,css啊,ajax啊,毫无关系,就感慨啊,还不如回家自学去就为一个文凭吗? 还不如去培训,浪费这么多钱.于是天天基本上没去上什么课,天天就在做网站,几个学期就做了三个网站。感觉做 这些网站就是学到些技巧,没什么进步,这些技巧就好比别人的名字,告诉你你就知道了,网上也都可以搜到。那时 候就觉得把.net学好就行了,搞j2ee的比较难,搞api编程就别想了,操作系统更是望尘莫及了。后来随着学习 的深入和看了网上许多前辈们的建议才对这些基础的重要性有所体会。

Github | Docker | Library | Project