欢迎来到相识电子书!

标签:编程

  • Kotlin in Action

    作者:Dmitry Jemerov / Svetlana Isakova

  • 精通Spring 4.x

    作者:陈雄华 / 林开雄 / 文建国

    Spring 4.0是Spring在积蓄4年后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。Spring 4.0引入了众多Java开发者翘首以盼的基于Groovy Bean的配置、HTML 5/WebSocket支持等新功能,全面支持Java 8.0,最低要求是Java 6.0。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是Java Web应用开发的难度,同时有效提升应用开发的优雅性。本书是在《精通Spring 3.x——企业应用开发详解》的基础上,历时一年的重大调整改版而成的,延续了上一版本“追求深度,注重原理,不停留在技术表面”的写作风格,力求使读者在熟练使用Spring的各项功能的同时透彻理解Spring的内部实现,真正做到知其然并知其所以然。此外,本书重点突出了“实战性”的主题,力求使全书内容体现“从实际项目中来,到实际项目中去”的写作原则。

  • 图解设计模式

    作者:  [日] 结城浩

    原版连续畅销12年、重印25次!

    194张图表 + Java示例代码 = 轻松理解GoF的23种设计模式

    《程序员的数学》《数学女孩》作者结城浩又一力作

    ◆图文并茂

    194张图表(包括57张UML类图)穿插文中,帮助理解各设计模式

    ◆通俗易懂

    用浅显的语言逐一讲解23种设计模式,读完此书会发现GoF书不再晦涩难懂

    ◆专业实用

    编写了Java程序代码来实现设计模式,每章附带练习题和答案,用以熟练掌握设计 模式

    ◆拓展进阶

    必要时对Java语言的功能进行了补充说明,可加深对Java的理解。此外,如果了解C++语言,同样可以轻松理解本书内容

    本书适合以下读者阅读

    •对面向对象开发感兴趣的人

    •对设计模式感兴趣的人(特别是阅读了GoF书但是觉得难以理解的人)

    •所有Java程序员(特别是对抽象类和接口的理解不充分的人)

    本书以浅显易懂的语言逐一说明了GoF的23种设计模式。在讲解过程中,不仅搭配了丰富的图片,而且理论结合实例,用Java语言编写代码实现了设计模式的程序,让程序真正地运行起来,并提供了运用模式解决具体问题的练习题和答案。除此以外,本书在必要时还对Java语言的功能进行补充说明,以加深读者对Java的理解。

  • 一路编程

    作者:史蒂夫·富特 (Steven Foote)

    《一路编程》是一本编程入门书籍,然而,如果以书中所讲内容作为入门标准,估计十有八九的在职程序员都不能算已入门。现代软件开发,已经不仅仅是写出正确的代码这么简单,环境、依赖、构建、版本、测试及文档,每一项都对软件是否成功交付起到至关重要的作用,这些都是每一个程序员在开发软件过程中必备的技能。《一路编程》对于上述的每一种技能都做了简洁而精练的介绍,以满足最基本的日常软件开发。换句话说,《一路编程》实际上是为现代软件开发的入门设下了最基本的门槛。相信每一位本书的读者,不论是即将进入软件行业,还是已经在软件行业工作多年,都会获得收获。

    强烈推荐刚刚或将要成为程序员的人及其朋友们阅读《一路编程》。

  • Go语言实战

    作者:威廉·肯尼迪 (William Kennedy) / 布赖恩·克特森 (Brian Ketelsen) / 埃里克·圣马丁 (Erik St.Martin)

    Go语言结合了底层系统语言的能力以及现代语言的高级特性,旨在降低构建简单、可靠、高效软件的门槛。本书向读者提供一个专注、全面且符合语言习惯的视角。Go语言实战同时关注语言的规范和实现,涉及的内容包括语法、类型系统、并发、管道、测试,以及其他一些主题。

  • Processing编程学习指南(原书第2版)

    作者:[美]丹尼尔希夫曼(Daniel Shiffman)

    在视觉化界面中学习电脑编程的基本原理!

    本书介绍了编程的基本原理,涵盖了创建最前沿的图形应用程序(例如互动艺术、实时视频处理和数据可视化)所需要的基础知识。作为一本实验风格的手册,本书精心挑选了部分高级技术进行详尽解释,可以让图形和网页设计师、艺术家及平面设计师快速熟悉Processing编程环境。

    从算法设计到数据可视化,从计算机视觉到3D图形,在有趣的互动视觉媒体和创意编程的背景之下,本书对面向对象的编程进行了彻底的阐述。此外,读者可以从本书的配套网站(www.learningprocessing.com)下载本书所有的源代码、章节练习以及如下的简短教程:

    基础知识(学习Processing中的简单图形和坐标系统)

    RGB颜色(学习数位色彩的基础知识)

    Eclipse中的Processing(Java开发者在IDE中编写Processing代码)

    第三方库文件(如何安装第三方Processing库文件)

    本书主要特色包括

    对编程经验零要求。本书适用于真正的编程初学者!

    循序渐进的案例、详尽的解释、习题、示例代码,实现学习曲线的最优化。

    Processing的快速上手指南。Processing免费且开源,是那些昂贵、令人生畏的编程语言的最佳替代者。

  • ANTLR 4权威指南

    作者:Terence Parr

    ANTLR是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件。它被广泛应用于学术领域和工业生产实践,是众多语言、工具和框架的基石。Twitter搜索使用ANTLR进行语法分析,每天处理超过20亿次查询;Hadoop生态系统中的Hive、Pig、数据仓库和分析系统所使用的语言都用到了ANTLR;Lex Machina将ANTLR用于分析法律文本;Oracle公司在SQL开发者IDE和迁移工具中使用了ANTLR;NetBeans公司的IDE使用ANTLR来解析C++;Hibernate对象-关系映射框架(ORM)使用ANTLR来处理HQL语言。

    除了这些鼎鼎大名的项目之外,还可以利用ANTLR构建各种各样的实用工具,如配置文件读取器、遗留代码转换器、维基文本渲染器,以及JSON解析器。我编写了一些工具,用于创建数据库的对象-关系映射、描述三维可视化以及在Java源代码中插入性能监控代码。我甚至为一次演讲编写了一个简单的DNA模式匹配程序。

    一门语言的正式描述称为语法(grammar),ANTLR能够为该语言生成一个语法分析器,并自动建立语法分析树——一种描述语法与输入文本匹配关系的数据结构。ANTLR也能够自动生成树的遍历器,这样你就可以访问树中的节点,执行自定义的业务逻辑代码。

    本书既是ANTLR 4的参考手册,也是解决语言识别问题的指南。你会学到如下知识:

    识别语言样例和参考手册中的语法模式,从而编写自定义的语法。

    循序渐进地为从简单的JSON到复杂的R语言编写语法。同时还能学会解决XML和Python中棘手的识别问题。

    基于语法,通过遍历自动生成的语法分析树,实现自己的语言类应用程序。

    在特定的应用领域中,自定义识别过程的错误处理机制和错误报告机制。

    通过在语法中嵌入Java动作(action),对语法分析过程进行完全的掌控。

    本书并非教科书,所有的讨论都是基于实例的,旨在令你巩固所学的知识,并提供语言类应用程序的基本范例。

  • 流畅的Python

    作者:[巴西] Luciano Ramalho

    【技术大咖推荐】

    “很荣幸担任这本优秀图书的技术审校。这本书能帮助很多中级Python程序员掌握这门语言,我也从中学到了相当多的知识!”——Alex Martelli,Python软件基金会成员

    “对于想要扩充知识的中级和高级Python程序员来说,这本书是充满了实用编程技巧的宝藏。”——Daniel Greenfeld和Audrey Roy Greenfeld,Two Scoops of Django作者

    【本书特色】

    本书由奋战在Python开发一线近20年的Luciano Ramalho执笔,Victor Stinner、Alex Martelli等Python大咖担纲技术审稿人,从语言设计层面剖析编程细节,兼顾Python 3和Python 2,告诉你Python中不亲自动手实践就无法理解的语言陷阱成因和解决之道,教你写出风格地道的Python代码。

    ● Python数据模型:理解为什么特殊方法是对象行为一致的关键。

    ● 数据结构:充分利用内置类型,理解Unicode文本和字节二象性。

    ● 把函数视作对象:把Python函数视作一等对象,并了解这一点对流行的设计模式的影响。

    ● 面向对象习惯用法:通过构建类学习引用、可变性、接口、运算符重载和多重继承。

    ● 控制流程:学习使用上下文管理器、生成器、协程,以及通过concurrent.futures和asyncio包实现的并发。

    ● 元编程:理解特性、描述符、类装饰器和元类的工作原理。

    【主要内容】

    本书致力于帮助Python开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、易维护,并且具有地道Python风格的代码。本书尤其深入探讨了Python语言的高级用法,涵盖数据结构、Python风格的对象、并行与并发,以及元编程等不同的方面。

    本书适合中高级Python软件开发人员阅读参考。

    【译者简介】

    安道

    专注于现代计算机技术的自由翻译,译有《Flask Web 开发》《Python 网络编程攻略》《Ruby on Rails 教程》等书。

    个人网站:http://about.ac/。

    吴珂

    现为Airbnb公司软件工程师,所在团队主要负责开发和维护各类可伸缩、高性能服务,并在Airbnb内推广面向服务的系统架构。在分布式系统、云存储服务和跨平台SDK开发,以及大规模数据处理等方面有多年经验。

  • 自己动手写Docker

    作者:陈显鹭 / 王炳燊 / 秦妤嘉

    本书在详细分析Docker所依赖的技术栈的基础上,一步一步地通过代码实例,让读者可以自己循序渐进地用Go语言构建出一个容器的引擎。不同于其他Docker原理介绍或代码剖析的书籍,本书旨在提供给读者一条动手路线,一步一步地实现Docker的隔离性,构建Docker的镜像、容器的生命周期及Docker的网络等。本书涉及的代码都托管在GitHub上,读者可以对照书中的步骤从代码层面学习构建流程,从而精通整个容器技术栈。本书也对目前业界容器技术的方向和实现做了简单介绍,以加深读者对容器生态的认识和理解。

    本书适合对容器技术已经使用过或有一些了解,希望更深层次掌握容器技术原理和最佳实践的读者。

  • Mastering Bitcoin

    作者:Andreas M. Antonopoulos

    Join the technological revolution that’s taking the financial world by storm. Mastering Bitcoin is your guide through the seemingly complex world of bitcoin, providing the knowledge you need to participate in the internet of money. Whether you’re building the next killer app, investing in a startup, or simply curious about the technology, this revised and expanded second edition provides essential detail to get you started.

    Bitcoin, the first successful decentralized digital currency, is still in its early stages and yet it’s already spawned a multi-billion-dollar global economy open to anyone with the knowledge and passion to participate. Mastering Bitcoin provides the knowledge. You simply supply the passion.

    The second edition includes:

    A broad introduction of bitcoin and its underlying blockchain—ideal for non-technical users, investors, and business executives

    An explanation of the technical foundations of bitcoin and cryptographic currencies for developers, engineers, and software and systems architects

    Details of the bitcoin decentralized network, peer-to-peer architecture, transaction lifecycle, and security principles

    New developments such as Segregated Witness, Payment Channels, and Lightning Network

    A deep dive into blockchain applications, including how to combine the building blocks offered by this platform into higher-level applications

    User stories, analogies, examples, and code snippets illustrating key technical concepts

  • Python高性能编程

    作者:【美】 戈雷利克 (Micha Gorelick) / 【美】 欧日沃尔德(Ian Ozsvald)

    本书共有12章,围绕如何进行代码优化和加快实际应用的运行速度进行详细讲解。本书主要包含以下主题:计算机内部结构的背景知识、列表和元组、字典和集合、迭代器和生成器、矩阵和矢量计算、并发、集群和工作队列等。最后,通过一系列真实案例展现了在应用场景中需要注意的问题。

    本书适合初级和中级Python程序员、有一定Python语言基础想要得到进阶和提高的读者阅读。

  • 深入理解并行编程

    作者:[美] Paul E.Mckenney(保罗·E·麦肯尼)

    《深入理解并行编程》首先以霍金提出的两个理论物理限制为引子,解释了多核并行计算兴起的原因,并从硬件的角度阐述并行编程的难题。接着,《深入理解并行编程》以常见的计数器为例,探讨其不同的实现方法及适用场景。在这些实现方法中,除了介绍常见的锁以外,《深入理解并行编程》还重点介绍了RCU的使用及其原理,以及实现RCU的基础:内存屏障。最后,《深入理解并行编程》还介绍了并行软件的验证,以及并行实时计算等内容。

    《深入理解并行编程》适合于对并行编程有兴趣的大学生、研究生,以及需要对项目进行深度性能优化的软硬件工程师,特别值得一提的是,《深入理解并行编程》对操作系统内核工程师也很有价值。

  • 趣学算法

    作者:陈小玉

    本书内容按照算法策略分为7章。

    第1章从算法之美、简单小问题、趣味故事引入算法概念、时间复杂度、空间复杂度的概念和计算方法,以及算法设计的爆炸性增量问题,使读者体验算法的奥妙。

    第2~7章介绍经典算法的设计策略、实战演练、算法分析及优化拓展,分别讲解贪心算法、分治算法、动态规划、回溯法、分支限界法、线性规划和网络流。每一种算法都有4~10个实例,共50个大型实例,包括经典的构造实例和实际应用实例,按照问题分析、算法设计、完美图解、伪代码详解、实战演练、算法解析及优化拓展的流程,讲解清楚且通俗易懂。附录介绍常见的数据结构及算法改进用到的相关知识,包括sort函数、优先队列、邻接表、并查集、四边不等式、排列树、贝尔曼规则、增广路复杂性计算、最大流最小割定理等内容。

    本书可作为程序员的学习用书,也适合从未有过编程经验但又对算法有强烈兴趣的初学者使用,同时也可作为高等院校计算机、数学及相关专业的师生用书和培训学校的教材。

  • 揭秘Java虚拟机

    作者:封亚飞

    《揭秘Java虚拟机:JVM设计原理与实现》从源码角度解读HotSpot的内部实现机制,本书主要包含三大部分——JVM数据结构设计与实现、执行引擎机制及内存分配模型。

    数据结构部分包括Java字节码文件格式、常量池解析、字段解析、方法解析。每一部分都给出详细的源码实现分析,例如字段解析一章,从源码层面详细分析了Java字段重排、字段继承等关键机制。再如方法解析一章,给出了Java多态特性在源码层面的实现方式。《揭秘Java虚拟机:JVM设计原理与实现》通过直接对源代码的分析,从根本上梳理和澄清Java领域中的关键概念和机制。

    执行引擎部分包括Java方法调用机制、栈帧创建机制、指令集架构与解释器实现机制。这一话题是《揭秘Java虚拟机:JVM设计原理与实现》技术含量高的部分,需要读者具备一定的汇编基础。不过千万不要被“汇编”这个词给吓着,其实在作者看来,汇编相比于高级语言而言,语法非常简单,语义也十分清晰。执行引擎部分重点描述Java源代码如何转换为字节码,又如何从字节码转换为机器指令从而能够被物理CPU所执行的技术实现。同时详细分析了Java函数堆栈的创建全过程,在源码分析的过程中,带领读者从本质上理解到底什么是Java函数堆栈和栈帧,以及栈帧内部的详细结构。

    内存分配部分主要包括类型创建与加载、对象实例创建与内存分配,例如new关键字的工作机制,import关键字的作用,再如java.lang.ClassLoader.loadClass()接口的本地实现机制。

    《揭秘Java虚拟机:JVM设计原理与实现》并不是简单地分析源码实现,而是在描述HotSpot内部实现机制的同时,分析了HotSpot如此这般实现的技术必然性。读者在阅读《揭秘Java虚拟机:JVM设计原理与实现》的过程中,将会在很多地方看到作者本人的这种思考。

  • Learn Python 3 the Hard Way

    作者:Zed A. Shaw

    You Will Learn Python 3!

    Zed Shaw has perfected the world’s best system for learning Python 3. Follow it and you will succeed—just like the millions of beginners Zed has taught to date! You bring the discipline, commitment, and persistence; the author supplies everything else.

    In Learn Python 3 the Hard Way, you’ll learn Python by working through 52 brilliantly crafted exercises. Read them. Type their code precisely. (No copying and pasting!) Fix your mistakes. Watch the programs run. As you do, you’ll learn how a computer works; what good programs look like; and how to read, write, and think about code. Zed then teaches you even more in 5+ hours of video where he shows you how to break, fix, and debug your code—live, as he’s doing the exercises.

    Install a complete Python environment Organize and write code Fix and break code Basic mathematics Variables Strings and text Interact with users Work with files Looping and logic Data structures using lists and dictionaries Program design Object-oriented programming Inheritance and composition Modules, classes, and objects Python packaging Automated testing Basic game development Basic web development

    It’ll be hard at first. But soon, you’ll just get it—and that will feel great! This course will reward you for every minute you put into it. Soon, you’ll know one of the world’s most powerful, popular programming languages. You’ll be a Python programmer.

    This Book Is Perfect For

    Total beginners with zero programming experience Junior developers who know one or two languages Returning professionals who haven’t written code in years Seasoned professionals looking for a fast, simple, crash course in Python 3

  • Python高级编程(第二版)

    作者:[波兰] Michał Jaworski / [法] Tarek Ziadé

    Python作为一种高级程序设计语言,凭借其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言之一。

    本书基于Python 3.5版本进行讲解,通过13章的内容,深度揭示了Python编程的高级技巧。本书从Python语言及其社区的现状开始介绍,对Python语法、命名规则、Python包的编写、部署代码、扩展程序开发、管理代码、文档编写、测试开发、代码优化、并发编程、设计模式等重要话题进行了全面系统化的讲解。

    本书适合想要进一步提高自身Python编程技能的读者阅读,也适合对Python编程感兴趣的读者参考学习。全书结合典型且实用的开发案例,可以帮助读者创建高性能的、可靠且可维护的Python应用。

  • Python for Data Analysis

    作者:Wes McKinney

  • 网络多人游戏架构与编程

    作者:格雷泽 (Joshua Glazer) / 马达夫 (Sanjay Madhav)

    本书是一本深入探讨关于网络多人游戏编程的图书。

    全书分为13章,从网络游戏的基本概念、互联网、伯克利套接字、对象序列化、对象复制、网络拓扑和游戏案例、延迟、抖动和可靠性、改进的延迟处理、可扩展性、安全性、真实世界的引擎、玩家服务、云托管专用服务器等方面深入介绍了网络多人游戏开发的知识,既全面又详尽地剖析了众多核心概念。

    本书的多数示例基于C++编写,适合对C++有一定了解的读者阅读。本书既可以作为大学计算机相关专业的指导教程,也可以作为普通读者学习网络游戏编程的参考指南。

  • 从零开始学Python网络爬虫

    作者:罗攀 / 蒋仟

  • 修改软件的艺术

    作者:[美] David Scott Bernstein

    本书会帮你降低构建与维护软件的成本。如果你是软件开发者,将学到一套实践方法以构建易修改的代码,因为在应用当中代码经常需要修改。对于和软件开发者合作的管理者来说,本书会向你展示为何引入这九个基本的实践方法,会使你的团队更加有效地交付软件而不至于让软件演变成遗留代码。