编程
啊哈!算法 豆瓣
作者: 啊哈磊 人民邮电出版社 2014 - 6
这不过是一本有趣的算法书而已。和别的算法书比较,如果硬要说它有什么特点的话,那就是你能看懂它。
这是一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,
通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松的小故事或是在玩一把趣味解谜
游戏,在轻松愉悦中便掌握算法精髓,感受算法之美。
本书中涉及到的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及到的算法有排序、枚举、
深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种最短路径算法、两种最小生成树算法、
割点与割边算法、二分图的最大匹配算法等。
网名啊哈磊。
曾在中科院玩过单片机。武汉大学历史上第一位以本科生身份加入MSRA(微软亚洲研究院)的小伙伴,在机器学习组从事搜索引擎方面的研究。
发表国际会议论文一篇(IEEE)。
全国青少年信息学奥林匹克金牌教练。
超萌超简洁的C语言编译器——“啊哈C编译器”作者。
2013年我的著作,有趣的编程科普书《啊哈C!》出版。
网址:www.ahalei.com
微博:weibo.com/ahalei
非常喜欢小朋友,每天都过得都非常开心。
至于为什么叫“啊哈磊”,因为我觉得这是一个很喜庆的名字。
2021年10月2日 在读
看了《麦克老师讲算法》的Floyd和Dijkstra,就是找这本书的思路讲的,很直观易懂。再用leetcode或SPOJ来加深理解各类算法的应用。挺推荐的,就是书中说会出2,到现在已经7年了都没出。
编程 计算机科学 算法 科普
The Architecture Of Open Source Applications, Vol. 2 Goodreads 豆瓣
作者: Amy Brown lulu.com 2012 - 5
Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes.
Our goal is to change that. In these two books, the authors of four dozen open source applications explain how their software is structured, and why. What are each program's major components? How do they interact? And what did their builders learn during their development? In answering these questions, the contributors to these books provide unique insights into how they think.
If you are a junior developer, and want to learn how your more experienced colleagues think, these books are the place to start. If you are an intermediate or senior developer, and want to see how your peers have solved hard design problems, these books can help you too.
Testing Java Microservice 豆瓣
作者: Alex Soto Bueno / Andy Gumbrecht Manning Publications 2018 - 9
Summary
Testing Java Microservices teaches you to implement unit and integration tests for microservice systems running on the JVM. You'll work with a microservice environment built using Java EE, WildFly Swarm, and Docker. You'll learn how to increase your test coverage and productivity, and gain confidence that your system will work as you expect.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the Technology
Microservice applications present special testing challenges. Even simple services need to handle unpredictable loads, and distributed message-based designs pose unique security and performance concerns. These challenges increase when you throw in asynchronous communication and containers.
About the Book
Testing Java Microservices teaches you to implement unit and integration tests for microservice systems running on the JVM. You'll work with a microservice environment built using Java EE, WildFly Swarm, and Docker. You'll advance from writing simple unit tests for individual services to more-advanced practices like chaos or integration tests. As you move towards a continuous-delivery pipeline, you'll also master live system testing using technologies like the Arquillian, Wiremock, and Mockito frameworks, along with techniques like contract testing and over-the-wire service virtualization. Master these microservice-specific practices and tools and you'll greatly increase your test coverage and productivity, and gain confidence that your system will work as you expect.
What's Inside
Test automation
Integration testing microservice systems
Testing container-centric systems
Service virtualization
DOOM启世录 豆瓣 Goodreads
Masters of DOOM: How Two Guys Created an Empire and Transformed Pop Culture
9.2 (12 个评分) 作者: [美] David Kushner 译者: 孙振南 电子工业出版社 2015 - 10
本书忠实详尽地讲述了两个天才游戏玩家如何走上游戏之路,如何制作出影响力极大的游戏作品——DOOM和Quake,以及他们为何在最辉煌的时候分道扬镳。
本书是一部游戏领域的传记,不同的读者能从中得到不同的体验:游戏制作的背景内幕、光环之中的趣闻轶事、年少创业的梦想豪情、奋斗途中的汗水艰辛,亦或是那成名之后的势易情迁、独辟蹊径的商业模式、天下为公的黑客精神。
Just for Fun 豆瓣 谷歌图书 Goodreads
8.7 (9 个评分) 作者: Linus Torvalds / David Diamond HarperBusiness 2002 - 6
This is the story of Linus Torvalds, the maverick Finnish computer genius who invented the powerful LINUX operating system. As well as being free, LINUX is more powerful and stable than anything that Microsoft can offer, thus making Torvalds Bill Gates' number one enemy. Today, LINUX is exploding on to the market, and its creator is household. Linus Torvalds is already a folk hero within the technolgy world, often mobbed at trade shows and forever asked to give interviews by the media. But Torvalds is a most unlikely celebrity: a family man, he lives in a cramped house in Santa Clara with his wife, Tove, a Finnish karate champion, and their two daughters. He claims to this day that he invented LINUX "just for fun". --This text refers to an out of print or unavailable edition of this title.
图解密码技术 豆瓣
暗号技術入門 秘密の国のアリス
9.0 (6 个评分) 作者: [日] 结城浩 译者: 周自恒 人民邮电出版社 2014
本书以图配文的形式,详细讲解了6种最重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。
第一部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括ECB、CBC、CFB、OFB、CTR)、公钥、混合密码系统。第二部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第三部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技术在现实生活中的应用。
Competitive Programming 3 豆瓣
Competitive Programming
作者: Steven Halim lulu 2013 - 5
This is the third edition of Competitive Programming book.
This is the A5 paperback version. This is the intended version for typical audience, i.e. young programmers of age 15-25. If you need a larger 8.25 * 10.75 inch version (about the size of A4, or 2 x A5), please go to: http://www.lulu.com/shop/steven-halim/competitive-programming-3-hardcover/hardcover/product-21031840.html
A much more detailed information about this book is available at: https://cpbook.net
2018年1月3日 在读
开本很赞(字小且边距窄), 每个算法都有C++代码(配了comment), 很适合配合LeetCode刷题, 前提是同时复习CLRS.
C++ Algorithms ICPC 计算机科学 编程
Inside the C++ Object Model 豆瓣 Goodreads
Inside the C++ Object Model
作者: [美] Stanley B·Lippman Addison-Wesley Professional 1996 - 5
Inside the C++ Object Model focuses on the underlying mechanisms that support object-oriented programming within C++: constructor semantics, temporary generation, support for encapsulation, inheritance, and "the virtuals"--virtual functions and virtual inheritance. This book shows how your understanding the underlying implementation models can help you code more efficiently and with greater confidence. Lippman dispells the misinformation and myths about the overhead and complexity associated with C++, while pointing out areas in which costs and trade offs, sometimes hidden, do exist. He then explains how the various implementation models arose, points out areas in which they are likely to evolve, and why they are what they are. He covers the semantic implications of the C++ object model and how that model affects your programs. Highlights *Explores the program behavior implicit in the C++ Object Model's support of object-oriented programming. *Explains the basic implementation of the object-oriented features and the trade offs implicit in those features. *Examines the impact on performance in terms of program transformation.* Provides abundant program examples, diagrams, and performance measurements to relate object-oriented concepts to the underlying object model. If you are a C++ programmer who desires a fuller understanding of what is going on "under the hood," then Inside the C++ Object Model is for you! Get a value-added service! Try out all the examples from this book at www.codesaw.com. CodeSaw is a free online learning tool that allows you to experiment with live code from your book right in your browser. 0201834545B11102003
NoSQL Distilled 豆瓣 Goodreads
作者: Pramod J. Sadalage / Martin Fowler Addison-Wesley Professional 2012 - 8
The need to handle increasingly larger data volumes is one factor driving the adoption of a new class of nonrelational "NoSQL" databases. Advocates of NoSQL databases claim they can be used to build systems that are more performant, scale better, and are easier to program. NoSQL Distilled is a concise but thorough introduction to this rapidly emerging technology. Pramod J. Sadalage and Martin Fowler explain how NoSQL databases work and the ways that they may be a superior alternative to a traditional RDBMS. The authors provide a fast-paced guide to the concepts you need to know in order to evaluate whether NoSQL databases are right for your needs and, if so, which technologies you should explore further. The first part of the book concentrates on core concepts, including schemaless data models, aggregates, new distribution models, the CAP theorem, and map-reduce. In the second part, the authors explore architectural and design issues associated with implementing NoSQL. They also present realistic use cases that demonstrate NoSQL databases at work and feature representative examples using Riak, MongoDB, Cassandra, and Neo4j. In addition, by drawing on Pramod Sadalage's pioneering work, NoSQL Distilled shows how to implement evolutionary design with schema migration: an essential technique for applying NoSQL databases. The book concludes by describing how NoSQL is ushering in a new age of Polyglot Persistence, where multiple data-storage worlds coexist, and architects can choose the technology best optimized for each type of data access.
C++ Primer 豆瓣
作者: Stanley B. Lippman / Josée Lajoie Addison Wesley 2012 - 8
Bestselling Programming Tutorial and Reference Completely Rewritten for the New C++11 Standard
Now fully updated and recast for the newly released C++11 standard, this authoritative and comprehensive introduction to C++ will help you to learn the language fast, and to use it in modern, highly effective ways. Highlighting today’s best practices, the authors show how to use both the core language and its standard library to write code that is more efficient, readable, and powerful.
C++ Primer, Fifth Edition, introduces the C++ standard library from the outset, drawing on its common functions and facilities to help you write useful programs without first having to master every language detail. Examples take advantage of the library to explain language features and demonstrate how to make the best use of them. A proven tutorial for those new to C++, the authors’ authoritative discussion of core C++ concepts and techniques also make the book a valuable resource for experienced programmers, especially those eager to see C++11 enhancements illuminated.
Start Fast and Achieve More
* Learn how to use the C++11 Standard Library and new language features to quickly build robust programs, and get comfortable with high-level programming
* Learn through examples that illuminate today’s best coding styles and program design techniques
* Understand the “rationale behind the rules”: why C++11 works as it does
* Use the extensive cross-references to help you connect related concepts and insights
* Benefit from up-to-date learning aids and exercises that emphasize key points, help you to avoid pitfalls, promote good practices, and reinforce what you’ve learned
Access the source code for the extended examples as it becomes available at informit.com/title/0321714113.
2017年8月6日 在读
没C++之父的那本好
C++ 编程
Linux多线程服务端编程 豆瓣 Goodreads
作者: 陈硕 电子工业出版社 2013 - 1
本书主要讲述采用现代C++ 在x86-64 Linux 上编写多线程TCP 网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。这是在Linux 下以native 语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序。本书以muduo 网络库为例,讲解这种编程模型的使用方法及注意事项。
本书的宗旨是贵精不贵多。掌握两种基本的同步原语就可以满足各种多线程同步的功能需求,还能写出更易用的同步设施。掌握一种进程间通信方式和一种多线程网络编程模型就足以应对日常开发任务,编写运行于公司内网环境的分布式服务统。
深入理解Java虚拟机(第2版) 豆瓣 Goodreads
9.2 (12 个评分) 作者: 周志明 机械工业出版社 2013 - 9
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》内容简介:第1版两年内印刷近10次,4家网上书店的评论近4?000条,98%以上的评论全部为5星级的好评,是整个Java图书领域公认的经典著作和超级畅销书,繁体版在台湾也十分受欢迎。第2版在第1版的基础上做了很大的改进:根据最新的JDK 1.7对全书内容进行了全面的升级和补充;增加了大量处理各种常见JVM问题的技巧和最佳实践;增加了若干与生产环境相结合的实战案例;对第1版中的错误和不足之处的修正;等等。第2版不仅技术更新、内容更丰富,而且实战性更强。
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。
第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解书中后面内容有重要帮助。
第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见虚拟机监控与故障处理工具的原理和使用方法。
第三部分分析了虚拟机的执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎。
第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果;
第五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构和操作;原子性、可见性和有序性在Java内存模型中的体现;先行发生原则的规则和使用;线程在Java语言中的实现原理;虚拟机实现高效并发所做的一系列锁优化措施。
揭秘Java虚拟机 豆瓣
作者: 封亚飞 2017 - 7
《揭秘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设计原理与实现》的过程中,将会在很多地方看到作者本人的这种思考。