软件工程
面向对象分析与设计 豆瓣
作者: Grady Booch 出版社: 中国电力出版社 2003
本书是UML的创始人Grady Booch的代表作之一,也是此领域公认的不可替代的权威著作,在推动面向对象技术走向现实应用的过程中发挥了重要的作用,曾获得《Software Development》杂志的Jolt图书大奖。本书吸收了众多项目的丰富经验,从概念、方法和应用三个角度全面深入论述了面向对象技术及其表示法。作者以大量C++语言实现的实例,阐明了各种基本概念,解释了面向对象的分析与设计方法,并展示了这些方法不同领域卓有成效的应用。全书论述既深刻又浅显易懂,对于高等院校的学生,本书是一本好的教材,对于工程技术人员,本书是一本好的参考书。
面向对象分析与设计 豆瓣
Object-Oriented Analysis and Design with Applications
作者: Grady Booch / Robert A. Maksimchuk 译者: 王海鹏 / 潘加宇 出版社: 人民邮电出版社 2009 - 8
《面向对象分析与设计(第3版)》是UML创始人Grady Booch的代表作之一,书中介绍的概念都基于牢固的理论基础。同时,《面向对象分析与设计(第3版)》又是一本注重实效的书,面向架构师和软件开发者等软件工程实践者的实际需要。《面向对象分析与设计(第3版)》通过大量例子说明了基本概念,解释了方法,并展示了在不同领域的成功应用。全书分为理论和应用两部分。理论部分深刻剖析了面向对象分析与设计(OOAD)的概念和方法。应用部分连续列出了5个不同类型、不同领域的应用,描述如何从初始阶段到移交阶段将OOAD理论和方法应用到项目中。应用部分所涉及的领域包括系统架构、数据获取、密码分析、控制系统和Web开发,还给出了一些关于重要问题的有效建议,包括分类、实现策略和高性价比的项目管理。书中的表示法采用最新的UML 2.0,因此《面向对象分析与设计(第3版)》是学习UML 2.0不可多得的参考书。《面向对象分析与设计(第3版)》作者基于长期丰富的经验,提出了改进的对象开发方法,用于解决系统和软件开发者面临的复杂问题,非常适合实际系统和软件的开发者、系统分析师或构架师、项目经理阅读。《面向对象分析与设计(第3版)》主要阐述了软件开发的方法,也可以作为高等院校软件工程和高级编程课程的教材使用。
图解服务器端网络架构 豆瓣
インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門
作者: [日] 宫田宽士 译者: 曾薇薇 出版社: 人民邮电出版社 2015 - 4
本书以图配文,详细说明了服务器端网络架构的基础技术和设计要点。基础设计是服务器端网络架构最重要的一个阶段。本书就立足于基础设计的设计细分项目,详细介绍各细分项目的相关技术和设计要点。全书共分为5章,分别讲述进行物理设计、逻辑设计、安全设计和负载均衡设计、高可用性设计以及管理设计时所必需的技术和设计要点。
流畅的Python 豆瓣
Fluent Python
9.6 (17 个评分) 作者: [巴西] Luciano Ramalho 译者: 安道 / 吴珂 出版社: 人民邮电出版社 2017 - 5
【技术大咖推荐】
“很荣幸担任这本优秀图书的技术审校。这本书能帮助很多中级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开发,以及大规模数据处理等方面有多年经验。
Learning Chaos Engineering 豆瓣
作者: Russ Miles 出版社: O'Reilly Media 2019 - 8
Learn why, when, and how to create real-world, practical chaos engineering experiments through Game Days and automation. With this practical book, software developers and system administrators will learn how to become chaos engineers. You'll learn ways to approach and adopt the discipline, how to prepare for and conduct successful chaos experiments manually, and how to work towards Continuous Chaos through automation.
On the surface, Chaos Engineering can look like a deceptively simple set of practices, but the devil is in the details. This book helps you adopt the mindset of Chaos Engineering, successfully plan and learn from Game Days, and finally learn the tools for automation and collaboration necessary to scale out and mature your own organization’s Chaos Engineering capability.
系统架构 豆瓣
System Architecture: Strategy and Product Development for Complex Systems
作者: 爱德华·克劳利(Edward Crawley) / 布鲁斯·卡梅隆(Bruce Cameron) 译者: 爱飞翔 出版社: 机械工业出版社 2017 - 1
本书由系统架构领域3位领军人物亲笔撰写,该领域资深专家Norman R. Augustine作序推荐,Amazon全五星评价。
全书共分四部分。
第一部分(第1~3章)的重点是引出系统架构。第1章通过一些范例来展示架构理念,指出良好的架构,并给出本书的概要;第2章列出进行系统分析必备的思路;第3章给出分析系统架构所用的思维模式。
第二部分(第4~8章)着重对架构进行分析。第4章讨论系统的形式;第5章讨论系统的功能;第6章讲解形式与功能之间的映射,并以此给出系统架构的定义;第7章研究如何从独立于解决方案的功能陈述中衍生出系统;第8章演示怎样把这些概念汇聚成一套架构。
第三部分(第9~13章)讲解如何为复杂的系统定义架构。第9章从任务和可交付成果这两方面来概述架构师的职责;第10章探讨如何把组织机构方面的接口当成在架构中减少歧义的契机;第11章讲述如何用系统化的方式来捕获利益相关者的需求,并把它们转换成系统目标;第12章提出一些能够帮助架构师更有创意地构思并选择概念的手段;第13章讲述在开发系统时管理复杂度的一些办法。
第四部分(第14~16章)探寻帮助架构师做决策的各种计算方法及工具所具备的潜力。第14章把系统架构的过程当成一种决策制定的过程来进行讲解;第15章讲解如何对架构权衡空间中的信息进行综合;第16章演示怎样把架构决策编码成一套模型,使计算机可以根据该模型自动生成权衡空间并对其进行探索。
系统化思维导论(银年纪念版) 豆瓣
An Introduction to General Systems Thinking
作者: [美] 杰拉尔德·温伯格 译者: 张佐 / 万起光 出版社: 清华大学出版社 2003 - 1
在计算机领域,一部永恒的经典著作,其特点是它在出版5年后依然值得一读。如果书中的内容在首次出版25年后依然是正确的,那么它绝对是一部非凡的巨著。这一标准适用于《系统化思维导论》这本书。本书关注的不仅限于计算机领域,它更多关注的是人们思考的内容,以及如何去思考这些内容。
七周七语言 豆瓣
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages
8.8 (19 个评分) 作者: [美] Bruce A. Tate 译者: 巨成 / 戴玮 出版社: 人民邮电出版社 2012 - 5
从计算机发展史早期的Cobol、Fortran到后来的C、Java,编程语言的家族不断壮大。除了这些广为人知的语言外,还涌现了Erlang、Ruby等后起之秀,它们虽被喻为小众语言,但因其独特性也吸引了为数不少的追随者。
Bruce A. Tate是软件行业的一名老兵,他有一个宏伟目标:用一本书的篇幅切中要害地探索七种不同的语言。本书就是他的成果。书中介绍了Ruby、Io、Prolog、Scala、Erlang、Clojure和Haskell这七种语言,关注每一门语言的精髓和特性,重点解决如下问题:这门语言的类型模型是什么,编程范式是什么,如何与其交互,有哪些决策构造和核心数据结构,有哪些独特的核心特性。
在这个飞速发展的信息时代,程序员仅仅掌握甚至精通一门语言是远远不够的。了解多门语言蕴涵的思维方式,在编码中互相借鉴,再挑出一两门对自己口味的语言深入学习,这些已经成为在软件行业中安身立命之本。从这个意义上说,每个程序员都应该看看这本书。
Pro Git 豆瓣 Goodreads
Pro Git
8.9 (26 个评分) 作者: Scott Chacon 出版社: Apress 2009 - 8
Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects.
* A book by Git experts to turn you into a Git expert
* Introduces the world of distributed version control
* Shows how to build a Git development workflow
What you’ll learn
* Use Git as a programmer or a project leader.
* Become a fluent Git user.
* Use distributed features of Git to the full.
* Acquire the ability to insert Git in the development workflow.
* Migrate programming projects from other SCMs to Git.
* Learn how to extend Git.
This book is for all open source developers: you are bound to encounter it somewhere in the course of your working life. Proprietary software developers will appreciate Git’s enormous scalability, since it is used for the Linux project, which comprises thousands of developers and testers.
捉虫日记 豆瓣
A Bug Hunter's Diary: A Guided Tour Through the Wilds of Software Security
作者: [德] Tobias Klein 译者: 张伸 出版社: 人民邮电出版社 2012 - 9
本书从实践角度介绍安全漏洞,描述了作者在过去几年里怎样发现漏洞、怎样利用漏洞来攻击以及开发商如何修复漏洞,旨在为开发人员提醒,为漏洞研究领域的工作人员提供工作思路。
用TCP/IP进行网际互连(第三卷) 豆瓣
出版社: 电子工业出版社 2008 - 10
《用TCP/IP进行网际互连:客户-服务器编程与应用(Linux/POSIX套接字版)(第3卷)》是关于计算机网络的经典教材,是目前美国大多数大学所开设的计算机网络课程的主要参考书。目前国内外能见到的各种关于TCP/IP的书籍,其主要内容都参考了《用TCP/IP进行网际互连:客户:服务器编程与应用(Linux/POSIX套接字版)(第3卷)》。该书的特点是强调原理,概念准确,深入浅出,内容丰富新颖。全书共分为三卷。第三卷主要讨论应用软件如何使用TCP/IP,重点研究了客户-服务器范例,并考察了分布式程序中的客户和服务器,举例说明了各种设计,讨论了应用网关和遂道技术。