编程
精通JavaScript
Pro JavaScript Techniques Douban
John Resig translator: 江疆 / 陈贤安 publishing house: 人民邮电出版社 2008 - 4
本书是目前最深入的 JavaScript 图书,讲述了现代 JavaScript 的所有知识,展现了这门技术将能给网站建设带来如何丰富的体验。本书言简意赅,扩展了读者视野,并关注于基础且重要的主题——现代 JavaScript 是什么和不是什么,浏览器支持的当前状态,以及需要注意的陷阱等。书中所有概念都来自于现实案例的分析。 本书适合各层次 Web 开发人员阅读。 勘误 http://realazy.org/jspro/erratra
ppk谈JavaScript
PPK on JavaScript Douban
Peter-Paul Koch translator: 淘宝UED publishing house: 人民邮电出版社 2008 - 4
本书全方位介绍了JavaScript,主要讨论了浏览器兼容性、可访问性、底层语法以及与HTML结构层的协同等问题。书中既包括理论性的讲解,又给出了相关的示例脚本以进行进一步阐述。通过8个真实项目示例,介绍了JavaScript核心语言、BOM、事件处理、DOM、修改CSS样式表以及数据检索等内容。 本书适合具有一定网页开发经验的Web开发人员阅读。
Flash ActionScript 3.0 动画高级教程
Douban
Keith Peters translator: 苏金国 / 荆涛 publishing house: 人民邮电出版社 2010 - 1
《Flash ActionScript 3.0 动画高级教程》是介绍Flash 10 ActionScript动画高级技术的经典之作,是作者在这一领域中多年实践经验的结晶。书中不仅涵盖了3D、最新绘图API以及Pixel Bender等Flash 10 ActionScript特性,深入介绍了碰撞检测、转向、寻路等Flash游戏开发技术,还通过实例具体讲解了等角投影和数值积分的基本理论和应用。 《Flash ActionScript 3.0 动画高级教程》内容紧扣实际应用,适合各层次Flash开发人员阅读。
计算的本质
Understanding Computation: From Simple Machines to Impossible Programs Douban
★ 8.7 6 ratings
[英] Tom Stuart translator: 张伟 publishing house: 人民邮电出版社 2014 - 11
《计算的本质:深入剖析程序和计算机》借助Ruby全面介绍计算理论和编程语言的设计。作者注重实用性,不仅尽量抛开复杂难懂的数学符号,而且特别选用简单快捷的编程语言Ruby,在读者熟知的背景知识下,以明晰的可工作代码阐明形式语义、自动机理论,以及通过lambda演算进行函数式编程等计算机科学知识,并为让其自行探索做足准备。 本书适合计算机科学系学生,以及熟知现代编程语言,想要系统地学习计算机科学知识的程序员、软件工程师阅读参考。
程序员的职业素养
The Clean Coder:A Code of Conduct for Professional Programmers Douban Goodreads
★ 9.0 9 ratings
[美国] Robert C·Martin translator: 章显洲 / 余晟 publishing house: 人民邮电出版社 2012 - 9
本书是编程大师Bob 大叔40 余年编程生涯的心得体会, 讲解成为真正专业的程序员需要什么样的态度、原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。 本书适合所有程序员,也可供所有想成为具备职业素养的职场人士参考。
代码本色:用编程模拟自然系统
The Nature of Code: Simulating Natural Systems with Processing Douban
★ 9.6 5 ratings
Daniel Shiffman translator: 周晗彬 publishing house: 人民邮电出版社 2014 - 10
本书介绍了用计算机模拟自然系统涉及的编程策略与技术,涵盖了基本的数学和物理概念,以及可视化地展示模拟结果所需的高级算法。读者将从构建基本的物理引擎开始,一步一步地学习如何创建智能移动的物体和复杂的系统,为进一步探索生成设计奠定基础。相关的知识点包括力、三角、分形、细胞自动机、自组织和遗传算法。本书的示例使用基于Java的开源语言及开发环境Processing编写。本书网站http://www.natureofcode.com)上的示例是在浏览器中通过Processing的JavaScript模式运行的。 作为纽约大学Tisch艺术学院Nature of Code课程主讲老师,Daniel集合了多年开发和教学经验,希望借由此书让大家真正了解如何用代码模拟自然现象。
TCP/IP详解 卷1:协议
TCP/IP ILLustrated Volume 1: The Protocols Douban Goodreads Open Library
★ 8.6 14 ratings
[美国] W·Richard Stevens translator: 范建华 publishing house: 机械工业出版社 2000 - 4 other title: TCP/IP详解 卷1:协议
《TCP/IP详解卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者W.Richard Stevens用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 《TCP/IP详解卷1:协议》适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。
实现领域驱动设计
Implementing Domain-Driven Design Douban
Vaughn Vernon translator: 滕云 publishing house: 电子工业出版社 2014 - 3
领域驱动设计(DDD)是教我们如何做好软件的,同时也是教我们如何更好地使用面向对象技术的。它为我们提供了设计软件的全新视角,同时也给开发者留下了一大难题:如何将领域驱动设计付诸实践?Vaughn Vernon 的这本《实现领域驱动设计》为我们给出了全面的解答。 《实现领域驱动设计》分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则和对一些问题的折中性讨论。《实现领域驱动设计》共分为14 章,在DDD 战略部分,《实现领域驱动设计》向我们讲解了领域、限界上下文、上下文映射图和架构等内容,战术部分包括实体、值对象、领域服务、领域事件、聚合和资源库等内容。一个虚构的案例研究贯穿全书,这对于实例讲解DDD 实现来说非常有用。 《实现领域驱动设计》在DDD 的思想和实现之间建立起了一座桥梁,架构师和程序员均可阅读,同时也可以作为一本DDD 参考书。
冒号课堂
Douban
★ 7.8 11 ratings
郑晖 publishing house: 电子工业出版社 2009 - 10
《冒号课堂》以课堂对话的形式,借六位师生之口讲述编程要义。上篇对编程范式作了入门性的介绍,并对一些流行的编程语言进行了简评;下篇侧重阐发软件设计思想,其中在范式上以OOP为主,在语言上以C++、Java和C#为主。全书寓庄于谐,深入浅出,既可开阔眼界,又能引发思考,值得编程爱好者品读。
领域特定语言
Domain-Specific Languages Douban Goodreads
[美国] Martin Fowler translator: ThoughtWorks中国 publishing house: 机械工业出版社华章公司 2013 - 3
本书是DSL领域的丰碑之作,由世界级软件开发大师和软件开发“教父”Martin Fowler历时多年写作而成,ThoughtWorks中国翻译。全面详尽地讲解了各种DSL及其构造方式,揭示了与编程语言无关的通用原则和模式,阐释了如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用DSL提供有效的决策依据和指导方法。 全书共57章,分为六个部分:第一部分介绍了什么是DSL,DSL的用途,如何实现外部DS和内部DSL,如何生成代码,语言工作台的使用方法;第二部分介绍了各种DSL,分别讲述了语义模型、符号表、语境变量、构造型生成器、宏和通知的工作原理和使用场景;第三部分分别揭示分隔符指导翻译、语法指导翻译、BNF、易于正则表达式表的词法分析器、递归下降法词法分析器、解析器组合子、解析器生成器、树的构建、嵌入式语法翻译、内嵌解释器、外加代码等;第四部分介绍了表达式生成器、函数序列、嵌套函数、方法级联、对象范围、闭包、嵌套闭包、标注、解析数操作、类符号表、文本润色、字面量扩展的工作原理和使用场景;第五部分介绍了适应性模型、决策表、依赖网络、产生式规则系统、状态机等计算模型的工作原理和使用场景;第六部分介绍了基于转换器的代码生成、模板化的生成器、嵌入助手、基于模型的代码生成、无视模型的代码生成和代沟等内容。
算法(第4版)
Algorithms (4/e) Douban
★ 9.5 26 ratings
[美] Robert Sedgewick / [美] Kevin Wayne translator: 谢路云 publishing house: 人民邮电出版社 2012 - 10
本书全面讲述算法和数据结构的必备知识,具有以下几大特色。  算法领域的经典参考书 Sedgewick畅销著作的最新版,反映了经过几十年演化而成的算法核心知识体系  内容全面 全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法  全新修订的代码 全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用  与实际应用相结合 在重要的科学、工程和商业应用环境下探讨算法,给出了算法的实际代码,而非同类著作常用的伪代码  富于智力趣味性 简明扼要的内容,用丰富的视觉元素展示的示例,精心设计的代码,详尽的历史和科学背景知识,各种难度的练习,这一切都将使读者手不释卷  科学的方法 用合适的数学模型精确地讨论算法性能,这些模型是在真实环境中得到验证的  与网络相结合 配套网站algs4.cs.princeton.edu提供了本书内容的摘要及相关的代码、测试数据、编程练习、教学课件等资源
软件调试
Douban Goodreads
张银奎 publishing house: 电子工业出版社 2008 - 6
围绕如何实现高效调试这一主题,本书深入系统地介绍了以调试器为核心的各种软件调试技术。本书共30章,分为6篇。第1篇介绍了软件调试的概况和简要历史。第2篇以英特尔架构(IA)的CPU为例,介绍了计算机系统的硬件核心所提供的调试支持,包括异常、断点指令、单步执行标志、分支监视、JTAG和MCE等。第3篇以Windows操作系统为例,介绍了计算机系统的软件核心中的调试设施,包括内核调试引擎、用户态调试子系统、异常处理、验证器、错误报告、事件追踪、故障转储、硬件错误处理等。第4篇以Visual C/C++编译器为例,介绍了生产软件的主要工具的调试支持,重点讨论了编译期检查、运行期检查及调试符号。第5篇讨论了软件的可调试性,探讨了如何在软件架构设计和软件开发过程中加入调试支持,使软件更容易被调试。在前5篇内容的基础上,第6篇首先介绍了调试器的发展历史、典型功能和实现方法,然后全面介绍了WinDBG调试器,包括它的模块结构、工作模型、使用方法和主要调试功能的实现细节。. 本书是对软件调试技术在过去50年中所取得成就的全面展示,也是对作者本人在软件设计和系统开发第一线奋战10多年的经验总结。本书理论与实践紧密结合,选取了大量具有代表性和普遍意义的技术细节进行讨论,是学习软件调试技术的宝贵资料,适合每一位希望深刻理解软件和自由驾驭软件的人阅读,特别是从事软件开发、测试、支持的技术人员和有关的研究人员。...
调试九法
Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems Douban
David J.Agans translator: 赵俐 publishing house: 人民邮电出版社 2010
硬件缺陷和软件错误是“技术侦探”的劲敌,它们负隅顽抗,见缝插针。本书提出的九条简单实用的规则,适用于任何软件应用程序和硬件系统,可以帮助软硬件调试工程师检测任何bug,不管它们有多么狡猾和隐秘。 作者使用真实示例展示了如何应用简单有效的通用策略来排查各种各样的问题,例如芯片过热、由蛋酒引起的电路短路、触摸屏失真,等等。本书给出了真正能够隔离关键因素、运行测试序列和查找失败原因的技术。 无论你的系统或程序发生了设计错误、构建错误还是使用错误,本书都可以帮助你用正确的方法来思考,使bug自动暴露,进而一网打尽,斩草除根。
格蠹汇编
Douban
张银奎 publishing house: 电子工业出版社 2013 - 3
《格蠹汇编——软件调试案例集锦》以案例形式讨论了使用调试技术解决复杂软件问题的工具和方法。全书共36章,分为四篇。前两篇每章讲述一个有代表性的真实案例,包括从堆里抢救丢失的博客,修复因误杀而瘫痪的系统,徒手战木马,拯救“发疯”的windows7,经典阅读器的经典死锁,拯救挂死的powerpoint,转储分析之双误谜团,是谁动了我的句柄,寻找系统中的“耗电大王”,解救即将被断网的系统,转储分析之系统挂在dpc,sdk安装程序卡壳之谜等。所选案例既有深度,又有较大的广度,从平台角度看有windows、linux和android,从编程语言角度看有c/c++、.net和java,从运行模式看既有内核态,也有用户态,从问题的类型来看,有多种原因导致的崩溃和挂死,也有数据混乱,启动、睡眠或者唤醒失败等。第三篇讨论了调试工具和调试系统的设计方法,包括windows 8中的通过以太网络和usb 3.0进行内核调试的方法,android平台上跨机器调试java应用程序的方法,.net调试模型的缺欠以及clr4重构调试模型的方法,通过amli调试器调试acpi脚本的方法,双机调试特殊进程的方法,以及设计调试设施应该注意的海森伯效应等。第四篇收录了使用调试器探索计算机世界的若干学习笔记,包括在调试器中细品cpu,通过调试器观察和解码堆块结构,透视windows 8的新类型应用以及使用调试器监视启动、睡眠和唤醒三大基本过程等。 《格蠹汇编——软件调试案例集锦》是《软件调试》一书的姊妹篇,延续了《软件调试》的深入严谨风格。但与《软件调试》重在系统介绍调试原理不同,本书重在实践,通过一个个有代表性的真实问题“现身说法”,在软件大背景下介绍调试,通过调试技术解剖软件。本书适合广大程序员、软件测试工程师、软件架构师以及相关专业的高年级学生阅读,也可供信息安全领域的工程师或者研究者参考。
易读代码的艺术
The Art of Readable Code: Simple and Practical Techniques for Writing Better Code Douban
Dustin Boswell / Trevor Foucher publishing house: 东南大学出版社 2012 - 6
本书分析了许多的“糟糕代码”(这些代码有很多是出自于他们自己之手),他们试图厘清为什么这些代码如此糟糕以及如何改进这些代码。他们得出的结论是:你必须写出让他人(这里也包括你自己)花费最少时间能够理解的代码。
程序员的自我修养
Douban
★ 9.1 22 ratings
俞甲子 / 石凡 … publishing house: 电子工业出版社 2009 - 4
这本书主要介绍系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,C/C++运行库的工作原理,以及操作系统提供的系统服务是如何被调用的。每个技术专题都配备了大量图、表和代码实例,力求将复杂的机制以简洁的形式表达出来。本书最后还提供了一个小巧且跨平台的C/C++运行库MiniCRT,综合展示了与运行库相关的各种技术。 对装载、链接和库进行了深入浅出的剖析,并且辅以大量的例子和图表,可以作为计算机软件专业和其他相关专业大学本科高年级学生深入学习系统软件的参考书。同时,还可作为各行业从事软件开发的工程师、研究人员以及其他对系统软件实现机制和技术感兴趣者的自学教材。
构建之法
Douban Goodreads
邹欣 publishing house: 人民邮电出版社 2014 - 9
内容简介: 软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。作者邹欣有长达20年的一线软件开发经验,他利用业余时间在数所高校进行了长达6年的软件工程教学实践,总结出了在16周的时间内让 同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划,并得到高校师生的积极反馈。在此基础上,作者对软件工程的各个知识点和技能要求进行了系统性整理,形成教材。 本书共分17章,对照美国ACM/IEEE2013年新出版的计算机科学教学指导(Computer ScienceCurricula 2013)中的软件工程相关部分,这本教材覆盖了其中大多数Core-Tier1和Core-Tier2的内容。可以说,全书对软件工程内容的覆盖不逊于任何一本现行的教材,同时讲述了业界最新实践方法。 本书评论: 推荐软件工程专业学子阅读,了解软件工程真正内涵,懂得“工程”二字真正含义,知道软件工程和计算机科学的区别。了解之后,就知道为何软件工程是就业含金量较高的行业了。 ——朝红阳(http://weibo.com/u/1794892070)/中山大学软件学院 书中 设想了大量的场景“学”和“习”,并且用了大量的类比,非常生动有趣。这本教材也对软件工程课老师提出了更高的要求;对学生而言,同样面临着要付出怎样的努力才能学到“干货”的选择。 ——鞠小林(http://weibo.com/jukxy)/南通大学软件学院 关于计算机科学与软件工程的差别?这是我们学生问的最多的,这下有解释啦!包括书中谈到的师生关系、软件工程师的职业发展、职业道德等,这些内容我上课时都可以用。 ——牛慧娟/华中科技大学软件学院 面对在软件开发方面经验很少的学生,邹欣老师通过丰富生动的故事和隐喻帮助学生建立软件工程的思维习惯,通过严格扎实的动手训练与考核帮助学生总结归纳自己的“最佳实践经验”。读这本书,软件工程课不再枯燥沉闷,而是变得出乎意料的生动有趣。 ——王忠杰(http://weibo.com/travellingwithme)/哈尔滨工业大学计算机科学与技术学院 读完《构建之法——现代软件工程》,不禁惊叹,软件工程的书还可以这样写!像团队和流程、敏捷流程、需求分析、设计与实现这些章节我看了又看,看完之后不禁拍大腿(书里说的“拍脑门、拍胸脯、拍屁股”的三拍有点不全,还差“拍大腿”):为什么邹欣老师会把原本无趣的问题写得这么吸引人?我深深地感觉到,不会讲故事的软件工程老师不是好老师!这本书给我最大的感受是,作者能把一个个鲜活的例子(或故事)与软件工程的相关问题恰到好处地结合起来,让软件工程的理论和方法更好地落地。 ——王赞(http://weibo.com/scswz)/天津大学软件学院 将对软件工程思想的理解内化为软件工程师的职业习惯,是软件工程教学的核心目标,本书的实验设计恰恰非常有助于这一内化过程。个人项目、两人项目和团队项目由易到难,循序渐进,不断总结。我在教学中借鉴这一思路,从学生较为熟悉的编程训练入手,以范例演示基本编码规范、 No Design时的代码、经过基 本Modularity (also called separation of concerns)设计的代码、writing code to make it reusable on future projects以及一些特殊的接口设计……从编码实践中理解软件工程思想,就会跳出纸上谈兵的框框。 ——孟宁(http://staff.ustc.edu.cn/~mengning/,http://weibo.com/mengning997 ) /中国科技大学软件学院 软件工程在大学是最难讲,也是最容易讲的一门课,容易在这门课涵盖的内容和外延特别丰富,这些内容学生基本没概念,短期也无法落到实处来验证有用没用,所以老师可以大讲特讲,人畜无害;难在你要在学生一片空白(没有很强的代码能力、没有团队概念、没有项目经验)的情况下去让他们懂得这些东西。在我认识的人中,能有丰富的项目经验又愿意花时间在教学实践上,最终能把各种知识理论体系化的人寥寥无几。邹欣老师恰好这几点都具备。快速翻完整本书,最大的感受是这本书出版得恰逢其时,传统的软件工程教材早就该翻新了! ——徐亚波(http://ss.sysu.edu.cn/~xyb,http://weibo.com/arber)/中山大学软件学院
卓有成效的程序员
The Productive Programmer Douban
★ 8.0 6 ratings
Neal Ford translator: 熊节 publishing house: 机械工业出版社 2009 - 3
《卓有成效的程序员》就是讲述如何在开发软件的过程中变得更加高效。同时,《卓有成效的程序员》的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,Windows(多个版本),Mac OS X以及 *-nix (Unix或者Linux)。 《卓有成效的程序员》讨论的是程序员个体的生产力,而不是团队的生产力问题,所以它不会涉及方法论(好吧,可能总会在这里或那里谈论到一些,但肯定不会深入讨论)。同时《卓有成效的程序员》也不会讨论生产力对整个团队的影响。我的使命,是让作为个体的程序员通过掌握恰当的工具和思想变得更加高效。
现代操作系统(第3版)
Modern Operating Systems Douban
[美国] Andrew S·Tanenbaum translator: 陈向群 / 马洪兵 publishing house: 机械工业出版社 2009 - 7
本书是操作系统领域的经典之作,与第2版相比,增加了关于Linux、Windows Vista和Symbian操作系统的详细介绍。书中集中讨论了操作系统的基本原理,包括进程、线程、存储管理、文件系统、输入/输出、死锁等,同时还包含了有关计算机安全、多媒体操作系统、掌上计算机操作系统、微内核、多核处理机上的虚拟机以及操作系统设计等方面的内容。此外,还在第2版的基础上对部分习题进行了增删,更有助于读者学习和对知识的理解及掌握。 本书适合作为高等院校计算机专业操作系统课程教材,也是设计、开发操作系统的重要参考书。 Tanenbaum教授作为三个操作系统的设计师或联合设计师,具有长期设计开发操作系统的经验,从而把其对理论的深入理解和具体实践融入书中,使本书成为操作系统领域的经典之作。 在本书第3版中,作者深入讨论了许多主题,包括:进程、线程、存储管理、文件系统、I/O、死锁、接口设计、多媒体、性能权衡,以及有关操作系统设计的最新趋势。书中不仅涵盖了现代操作系统的原理和实践,而且特别关注了Linux操作系统、Windows Vista操作系统、嵌入式操作系统、实时操作系统以及多媒体操作系统。 本书特色: ● 涉及Windows Vista以及最新的Linux/UNIX操作系统。 ● 用一整章(第12章)的篇幅对用于移动设备的Symbian操作系统进行分析。 ● 涵盖更多、更新的安全方面的内容。 ● 重新组织内容,尽早论述关键抽象概念。 ● 给出与未来操作系统发展有关的新研究成果。 ● 更新和增加了编程练习。 ● 在线操作系统练习(http://www.prenhall.com/tanenbaum/details.html)采用主流Windows操作系统以及开源工具。 ● 包括操作系统模拟练习。
软件随想录
More Joel on Software Douban
★ 8.5 26 ratings
Joel Spolsky translator: 阮一峰 publishing house: 人民邮电出版社 2009
本书是一部关于软件技术、人才、创业和企业管理的随想文集,作者以诙谐幽默的笔触将自己在软件行业的亲身感悟娓娓道来,观点新颖独特,内容简洁实用。全书分为36讲,每一讲都是一个独立的专题。 本书从不同侧面满足了软件开发人员、设计人员、管理人员及从事软件相关工作的人员的学习与工作需要。