新书推荐

剑指Offer

《剑指Offer——名企面试官精讲典型编程题(纪念版)》是为纪念本书英文版全球发行而推出的特殊版本,在原版基础上新增大量本书英文版中的精选题目,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。全书分为8章,主要包括面试流程:讨论面试每一环节需要注意的问题;面试需要的基础知识:从编程语言、数据结构及算法三方面总结程序员面试知识点;高质量代码:讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量代码除完成基本功能外,还能考虑特殊情况并对非法输入进行合理处理;解题思路:总结编程面试中解决难题的有效思考模式,如在面试中遇到复杂难题,应聘者可利用画图、举例和分解这3种方法将其化繁为简,先形成清晰思路再动手编程;优化时间和空间效率:读者将学会优化时间效率及空间换时间的常用算法,从而在面试中找到最优解;面试必备能力:总结应聘者如何充分表现学习和沟通能力,并通过具体面试题讨论如何培养知识迁移、抽象建模和发散思维能力;综合面试案例:总结哪些面试举动是不良行为,而哪些表现又是面试官所期待的行为;英文版面试题增补,优选久经欧美知名企业面试考验的经典题目,帮助国内读者开阔视野、增补技能。

《剑指Offer——名企面试官精讲典型编程题(纪念版)》适合即将走向工作岗位的大学生阅读,也适合作为正在应聘软件行业的相关就业人员和计算机爱好者的参考书。

算法之美

《算法之美——隐匿在数据结构背后的原理(C++版)》围绕算法与数据结构这个话题,循序渐进、深入浅出地介绍了现代计算机技术中常用的40 余个经典算法,以及回溯法、分治法、贪婪法和动态规划等算法设计思想。在此过程中,《算法之美——隐匿在数据结构背后的原理(C++版)》也系统地讲解了链表(包括单向链表、单向循环链表和双向循环链表)、栈、队列(包括普通队列和优先级队列)、树(包括二叉树、哈夫曼树、堆、红黑树、AVL 树和字典树)、图、集合(包括不相交集)与字典等常用数据结构。同时,通过对22 个经典问题(包括约瑟夫环问题、汉诺塔问题、八皇后问题和骑士周游问题等)的讲解,逐步揭开隐匿在数据结构背后的算法原理,力图帮助读者夯实知识储备,激活思维技巧,并最终冲破阻碍编程能力提升的重重藩篱。

《算法之美——隐匿在数据结构背后的原理(C++版)》适合作为大专院校相关专业学生研习算法与数据结构知识的课外参考书。对有意参加信息学竞赛的读者,本书亦有很强的参考价值。此外,鉴于算法与数据结构在求职过程中常常被视为考察重点,所以就临近毕业的学生或其他欲从事IT 行业的求职者而言,阅读《算法之美——隐匿在数据结构背后的原理(C++版)》也将对面试备考大有裨益。

编程珠玑(第2版•修订版)

历史上最伟大的计算机科学著作之一

融深邃思想、实战技术与趣味轶事于一炉的奇书

带你真正领略计算机科学之美

多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。

在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。

本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。

书评

“《编程珠玑》是对我职业生涯早期影响最大的书之一,其中的许多真知灼见多年之后仍然使我受益匪浅。”

——Steve McConnell,软件工程大师,IEEE Software前主编,《代码大全》作者

现代操作系统(原书第4版)

Andrew S. Tanenbaum教授编写的教材《现代操作系统》现在已经是第4版了。第4版在保持原有特色的基础上,又增添了许多新的内容,反映了当代操作系统的发展与动向,并不断地与时俱进。

对比第3版,第4版有很多变化。一些是教材中多处可见的细微变化,一些是就某一功能或机制增加了对最新技术的介绍,如增加了futex同步原语、读–复制–更新(Read-Copy-Update)机制以及6级RAID的内容。另外一些则是重大变化,例如:用Windows 8替换了Vista的内容;用相当大的篇幅介绍了移动终端应用最广泛、发展最快的Android,以替换原来Symbian的内容;增加了新的一章,介绍目前最流行的虚拟化和云技术,其中还包括典型案例VMware。很多章节在内容安排上也有较大的改动,例如:第8章对多处理机系统的内容进行了大幅更新;第9章对安全的内容进行了大量修改和重新组织,增加了对缺陷代码、恶意软件进行探查和防御的新内容,对于空指针引用和缓冲区溢出等攻击行为提出了更详细的应对方法,并从攻击路径入手,详细论述了包含金丝雀(canary)保护、不执行(NX)位以及地址空间随机化在内的防御机制。最后的参考文献也进行了更新,收录了本书第3版推出后发表的新论文。大部分章节最后的相关研究部分都完全重写了,以反映最新的操作系统研究成果。

本教材还增添了一名合著者—来自阿姆斯特丹自由大学的 Herbert Bos教授,他是一名全方位的系统专家,尤其擅长安全和UNIX方面。

Tanenbaum教授的教材还有一个特点,就是丰富的、引发思考的习题。所有章节后面都附有大量的习题,完成这些习题很不容易,需要花费很长时间,在深入理解操作系统精髓的基础上才能作答。这些习题很灵活,并且与实际系统相结合,既考核对基本概念、工作原理的理解,又考核实际动手能力。

Tanenbaum教授的教材是需要细细阅读的,字里行间体现了他对设计与实现操作系统的各种技术的深入思考。正因为Tanenbaum教授自己设计开发了一个小型、真实的操作系统MINIX,所以通过他在教材中的讲述,读者可以了解实现操作系统时应该考虑哪些问题、注重哪些细节。

设计模式之禅(第2版)

本书是设计模式领域公认的3本经典著作之一,“极具趣味,容易理解,但讲解又极为严谨和透彻”是本书的写作风格和方法的最大特点。第1版2010年出版,畅销至今,广受好评,是该领域的里程碑著作。深刻解读6大设计原则和28种设计模式的准确定义、应用方法和最佳实践,全方位比较各种同类模式之间的异同,详细讲解将不同的模式组合使用的方法。第2版在第1版的基础上有两方面的改进,一方面结合读者的意见和建议对原有内容中的瑕疵进行了修正和完善,另一方面增加了4种新的设计模式,希望这一版能为广大程序员们奉上一场更加完美的设计模式盛宴!

全书共38章,分为五部分:第一部分(第1~6章),以一种全新的视角对面向对象程序设计的6大原则进行了深刻解读,旨在让读者能更深刻且准确地理解这些原则,为后面的学习打下基础;第二部分(第7~29章)通过大量生动的案例讲解和分析了23种最常用的设计模式,并进行了扩展讲解,通俗易懂,趣味性极强而又紧扣模式的核心;第三部分(第30~33章)对同类型和相关联的模式进行了深入分析和比较,旨在阐明各种设计模式之间的差别以及它们的理想应用场景;第四部分(第34~36章)探讨了如何在实际开发中将各种设计模式混合起来使用,以发挥设计模式的最大效用;第五部分(第37~38章)是本书的扩展篇,首先从实现的角度对MVC框架的原理进行了深入分析,然后讲解了5种新的设计模式的原理、意图和最佳实践。本书最后附有一份精美的设计模式彩图,可以裁剪,便于参考。

家庭、私有制和国家的起源

自《马克思恩格斯全集》、《列宁全集》、《马克思恩格斯选集》、《列宁选集》问世以来,广大读者迫切要求出版马列著作的单行本。这反映了他们学习马克思列宁主义的强烈愿望和对马列著作的不同需要。为此,我们决定编辑出版一套马列著作的系列书,定名为《马克思列宁主义文库》。本文库收编马克思列宁主义经典作家的重要著作,以单行本形式陆续出版。这些著作凡可独立成书者,则一文一书;有些重要文章和书信则按专题编成文集;有些著作还设有附录,收编作者本人的有关论著和与本书直接有关的材料。为帮助读者学习和研究,在每书正文之后附有“注释”和“人名索引”,有些著作还附有“名目索引”。译文和资料均以新版全集、选集为准。有些著作尚无新版者,则按新版要求重新校订译文,编写资料。这套文库与全集、选集相配合,可适应广大读者的不同需要。理论工作者,教学和宣传工作者,各级干部,大专院校学生和其他读者均可从这套文库中选择自己所需要的著作,也可系统收藏。我们期望这套文库的出版能推动全国马克思主义的学习和研究,有助于广大干部用马克思主义的立场、观点和方法研究和解决社会主义现代化建设中的新问题,促进社会主义物质文明和精神文明的建设。

共产党宣言

《共产党宣言》是马克思和恩格斯为世界上第一个共产党组织——共产主义者同盟撰写的纲领。《宣者》写于1847年12月至1848年1月,并于1848年2月在伦敦第一次用德文发表。《共产党宣言》是科学社会主义的最伟大的纲领性文献,它的问世标志着马克思主义的诞生。150多年来,《共产党宣言》的光辉思想一直指导着全世界工人阶段和劳动人民的解放事业,并深刻地启迪、教育和鼓舞着全世界一切为人类进步事业而斗争的们。《共产党宣言》从发表到本纪初,已经被译成全世界各种主要文字出版,它的思想影响遍及全球的每一个角落。1920月8日,由陈望道翻译的《共产党宣言》第一中文本在我国出版,此后,陆续有十几个版本问世。1998年,为纪念《共产党宣言》发表150周年,中央编译出版社出版了《共产堂宣言》纪念版。在新世纪新阶段,我国马克思主义理论研究和建设事业正以崭新的面貌不断向前推进,为适应广大读者的需要,我们决定再版《共产党宣言》纪念版。

1998年出版的《共产党宣言》纪念版收入了《共产党宣言》正文以及作者在不同时期撰写的七篇序言,此外收入了该书最早的德文本影印版、各种文字版本的部分封面,以及我国著名国画大师蒋兆和创作的马克思肖像和恩格斯肖像。这次再版时保留了纪念版的全部内容,只对注释进行了审核和修订,并对封面做了重新设计。

NoSQL数据库入门与实践(基于MongoDB、Redis)

在大数据爆发的短短几年中,NoSQL成为处理大数据必须掌握的热门的核心技术之一。《NoSQL数据库入门与实践(基于MongoDB、Redis)》正是在这种情况下应运而生,该书结合MongoDB、Redis和测试工具等全面介绍NoSQL数据库技术、NoSQL精粹,是一本NoSQL数据库入门图书,也是NoSQL初学者了解NoSQL技术全貌的图书。全书包括3部分,其中NoSQL基础部分包括:初识NoSQL、TRDB与NoSQL的技术比较、NoSQL数据存储模式。NoSQL实践部分分别介绍了文档数据库MongoDB和键值数据库Redis入门及提高知识,并通过两个电商平台综合案例详细介绍了MongoDB和Redis在实现不同业务(如日志存储、商品评论、订单信息记录、点击量存储、商品推荐、购物车、记录浏览商品行为等)功能模块开发过程中的具体应用。NoSQL提高部分介绍了大数据环境下MongoDB和Redis在操作速度和数据存储方面的优化方法和处理技术,以及对NoSQL产品实际业务应用的选择及部署和NoSQL辅助工具的应用。既可以让读者学好NoSQL基础知识,掌握NoSQL数据库技术,具备代码实战水平,又能培养读者系统性考虑问题的能力,对有较高要求的读者还给出了深入学习的方向和核心内容。

《NoSQL数据库入门与实践(基于MongoDB、Redis)》一书除纸质介绍外,前8章还提供了视频讲解,手机扫描二维码即可观看,并提供全书的源代码,方便读者快速学习。

《NoSQL数据库入门与实践(基于MongoDB、Redis)》一书语言通俗易懂,内容由浅入深,非常适合想全面了解NoSQL知识的高校学生、教师及相关IT工程师参考学习,也适合所有对NoSQL数据库感兴趣的技术人员阅读。

Spring Boot 企业级应用开发实战

内容简介:

本书围绕如何整合以目前最新的 Spring Boot 2 版本为核心的技术栈,来实现一个完整的企业级博客系统而展开。读者可以通过学习构建这个博客系统的整个过程,来达到设计和实现一个企业级 Java EE 应用开发的目的。该博客系统是一个类似于 WordPress 的专注于博客功能的博客平台,支持多用户访问和使用。该博客系统所涉及的相关技术有 Spring Boot、Spring、Spring MVC、Spring Security 、Spring Data、Hibernate、Gradle、Bootstrap、jQuery、HTML5、JavaScript、CSS、Thymeleaf、MySQL、H2、Elasticsearch、MongoDB 等,技术点较为丰富,内容富有前瞻性。

本书面向实战,除了给出基本的原理外,会辅以大量的案例和源码,利于读者理论联系实践。全书对于技术讲解的安排,是按照渐进式的教学方式来进行的。按照学习的难度,大致可以分为实战入门阶段、实战进阶阶段、实战高级阶段三个部分,内容包括Spring Boot 概述、Spring 框架核心概念、Spring MVC 及常用MediaType、集成 Thymeleaf、数据持久化、全文搜索、架构设计与分层、集成Bootstrap、博客系统的需求分析与设计、集成Spring Security、博客系统的整体框架实现、用户管理实现、角色管理实现、权限管理实现、文件服务器实现、博客管理实现、评论管理实现、点赞管理实现、分类管理实现、标签管理实现、首页搜索实现等。

本书主要面向的用户是 Java 开发者,以及对 Spring Boot 及企业级开发感兴趣并有一定了解的读者。

写作背景:

对于 Spring Boot 知识的整理归纳,最早是在笔者的第一本书《分布式系统常用技术及案例分析》 的微服务章节中,作为微服务的技术实现方式来展开的。由于篇幅限制,当时讲解的案例深度和广度也 比较有限。其后,笔者又在 GitHub 上,以开源方式撰写了《Spring Boot 教程》系列课程 ,为网友们提 供了更加丰富的使用案例。在 2017 年年初,笔者应邀给慕课网做了一个关于 Spring Boot 实战的系列视频课程 。视频课程上线后受到了广大的 Spring Boot 技术爱好者的关注,课程的内容也引发了热烈的反响。很多该课程的学员,通过学习该课程,不但技术能力提高了,而且在如何采用新技术来实现企业级应用上有了更深刻的理解,最重要的是提升了自己在市场上的价值。

鉴于 Spring Boot 技术人才在社会上的需求依然很旺盛,而市面上有关 Spring Boot 学习资料,大多 停留在“Hello World”级别的案例,缺乏使用 Spring Boot 来构建完整企业级应用实战的能力。故笔者将以往系列课程中的技术做了总结和归纳,采用目前最新的 Spring Boot 2 技术来重新编写了整个教学案例,整理成书,希望能够弥补 Spring Boot 在实战方面的空白,使广大 Spring Boot 爱好者都能受益。

Github | Docker | Library | Project