• SRE:Google运维解密
    大型软件系统生命周期的绝大部分都处于“使用”阶段,而非“设计”或“实现”阶段。那么为什么我们却总是认为软件工程应该首要关注设计和实现呢?在《SRE:Google运维解密》中,Google SRE的关键成员解释了他们是如何对软件进行生命周期的整体性关注的,以及为什么这样做能够帮助Google成功地构建、部署、监控和运维世界上现存最大的软件系统。通过阅读《SRE:Google运维解密》,读者可以学习到Google工程师在提高系统部署规模、改进可靠性和资源利用效率方面的指导思想与具体实践——这些都是可以立即直接应用的宝贵经验。 任何一个想要创建、扩展大规模集成系统的人都应该阅读《SRE:Google运维解密》。《SRE:Google运维解密》针对如何构建一个可长期维护的系统提供了非常宝贵的实践经验。 (美)贝特西·拜尔(Betsy Beyer)是Google纽约负责SRE的一名技术文档作家。她之前曾为遍布全球的Google数据中心与Mountain View硬件运维团队编写文档。在搬到纽约之前,Betsy是Stanford大学技术性写作课程的讲师。她曾经学习国际关系与英文文学,并在Stanford和Tulane获得学历。
  • 大话设计模式
    本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解GoF(设计模式的经典名著——Design Patterns: Elements of Reusable Object-Oriented Software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者Erich Gamma、Richard Helm、Ralph Johnson,以及John Vlissides,这四人常被称为Gang of Four,即四人组,简称GoF)总结的23个设计模式。本书共分为29章。其中,第1、3、4、5章着重讲解了面向对象的意义、好处以及几个重要的设计原则;第2章,以及第6到第28章详细讲解了23个设计模式;第29章是对设计模式的全面总结。附录部分是通过一个例子的演变为初学者介绍了面向对象的基本概念。本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?以达到不但授之以“鱼”,还授之以“渔”的目的。引导读者体会设计演变过程中蕴藏的大智慧。 程杰:高级软件工程师 & 高级培训讲师。从事软件开发一线工作近八年时间。曾在申银万国证券公司、上海杨浦区政府、朝华集团下属网游公司、香港晨兴集团等多行业项目开发中担任主程及项目负责人,有丰富的大中型软件开发经验,以及多年的软件设计与项目管理经验。曾任加拿大慧桥培训中心金牌讲师,主持.NET高级软件工程师的培训工作;早年从事高中数学教学工作,曾在江苏常州重点高中任教时获得过市教学一等奖,这些教学和培训经历让作者对如何以易懂的语言讲解艰深的技术知识有了深刻的理解。
  • Java并发编程实战
    本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。 本书适合Java程序开发人员阅读。 本书作者都是Java Community Process JSR 166专家组(并发工具)的主要成员,并在其他很多JCP专家组里任职。Brian Goetz有20多年的软件咨询行业经验,并著有至少75篇关于Java开发的文章。Tim Peierls是“现代多处理器”的典范,他在BoxPop.biz、唱片艺术和戏剧表演方面也颇有研究。Joseph Bowbeer是一个Java ME专家,他对并发编程的兴趣始于Apollo计算机时代。David Holmes是《The Java Programming Language》一书的合著者,任职于Sun公司。Joshua Bloch是Google公司的首席Java架构师,《Effective Java》一书的作者,并参与著作了《Java Puzzlers》。Doug Lea是《Concurrent Programming》一书的作者,纽约州立大学Oswego分校的计算机科学教授。
  • 上瘾
    ·为什么我们会习惯性地点开某个App? ·这种使用习惯到底是如何养成的? ·为什么有些产品能让我们戒不掉,而其他的产品却不行? ·是否有什么秘诀能让用户对你的产品形成使用习惯,欲罢不能? 《上瘾》揭示了很多让用户形成使用习惯,甚至“上瘾”的互联网产品服务背后的基本设计原理,告诉你怎样打造一款让用户欲罢不能的产品。作者根据自己多年的研究、咨询及实际经验,提出了新颖而实用的“上瘾模型”(Hook Model),即通过四个方面来养成用户的使用习惯。通过连续的“上瘾循环”,让用户成为“回头客”,进而实现循环消费的终极目标,而不是依赖高昂的广告投入或泛滥粗暴的信息传播。 尼尔·埃亚尔(Nir Eyal),曾在斯坦福大学商学院与Hasso Plattner研究所任教,并有多篇技术、心理学及商业文章在《哈佛商业评论》《大西洋月刊》、TechCrunch网站和《今日心理学》等媒体上发表。 瑞安·胡佛(Ryan Hoover),曾任撰稿人,长期为《福布斯》《快公司》等媒体撰稿,Product Hunt公司创始人。
  • 项目百态
    本书介绍了软件项目行为的86个模式,基本上概括了软件项目生命周期的方方面面,揭示了软件项目最常遇到的困境,反省了行业内种种不良习惯和做法。六位作者均来自一个开发咨询的管理团队Atlantic Systems Guild,长期以来为众多软件公司的经理人提供专业的咨询服务。他们浓缩了成百上千个项目管理的案例,通过本书中一个个模式展现出来。每个模式都以生动形象的插图开始,另外还加上一些趣闻和真实事件。 本书适合所有软件项目的管理者阅读,也适合有志于成为软件管理者的人参考。 这些组织里面的人不会从战略层次上思考问题,只是按照紧迫程度来完成工作。除非“忙乱指数”非常高,否则它通常都会被忽略——尽管它很有可能会带来显著的长期优势。人们会一直对其不闻不问,直到它突然(绝对出乎意料地)变得非常紧迫。“玩的就是心跳”分子相信最好的工作方式不是先谋而后动,而是竭力追赶时间。 Tom Demarco 软件工程领域权威,软件团队管理圣经《人件》作者,IEEE会士,1986年Warnier奖得主,1999年Stevens奖得主,大西洋系统行会负责人。曾任职贝尔实验室,是结构化分析与设计的创始人。 Peter Hruschka 嵌入式实时系统设计和分析专家,用于系统架构文档的ARC42模板开发者,大西洋系统行会负责人。 Tim Lister 软件团队管理圣经《人件》作者,风险管理理论的狂热爱好者。大西洋系统行会负责人。 金明,Thought Works高级咨询师,Info Q资深编辑,SCJP,系统分析师。在企业应用开发领域拥有多年项目开发经验,专注于敏捷原则与方法的理论实践和指导咨询。是敏捷和精益方法与思想的坚定追随者。目前主要关注于大型企业的敏捷咨询、Java/EE、Scala、REST、Web Service以及HTML5。多次在软件开发者社区的活动中发表演讲。译著有《软件开发沉思录——Thought Works文集》、《卓有成效的程序员》等。同时在《程序员》和Info Q上发表过多篇论文。
  • 编程之美
    这本书收集了约60道算法和程序设计题目,这些题目大部分在近年的笔试、面试中出现过,或者是被微软员工热烈讨论过。作者试图从书中各种有趣的问题出发,引导读者发现问题,分析问题,解决问题,寻找更优的解法。本书的内容分为下面几个部分: (1)游戏之乐:从游戏和其他有趣问题出发,化繁为简,分析总结。 (2)数字之魅:编程的过程实际上就是和数字及字符打交道的过程。这一部分收集了一些好玩的对数字进行处理的题目。 (3)结构之法:汇集了常见的对字符串、链表、队列,以及树等进行操作的题目。 (4)数学之趣:列举了一些不需要写具体程序的数学问题,锻炼读者的抽象思维能力。 书中还讲述了面试的各种小故事,告诉读者微软需要什么样的技术人才,重视什么样的能力,如何甄别人才。回答读者关于IT业面试,招聘,职业发展的疑问。这本书的很多题目会出现在IT 行业的各种笔试、面试中,但这本书更深层的意义在于引导读者思考,和读者共享思考之乐,编程之美。 《编程之美》由下面几位作者协同完成,如果把这本书的写作比作一个软件项目,它有下面的各个阶段,每个阶段则有不同的目标和角色。 1. 构想阶段:邹欣。 2. 计划阶段:邹欣、刘铁锋、莫瑜。 3. 实现阶段/里程碑(一):上述全部人员,加上李东、张晓、陈远、高霖(负责封面设计)。 4. 实现阶段/里程碑(二):上述全部人员,加上梁举、胡睿。 5. 稳定阶段:上述全部人员,加上博文视点的编辑们。 6. 发布阶段:邹欣、刘铁锋和博文视点的编辑们。
  • 淘宝技术这十年
    有熠熠生辉的技术变迁 ,有饱含智慧的产品演进,有叱咤风云的牛人生涯,有令人捧腹的圈内趣事。 无论你是程序员、架构师、产品经理还是运维人员,甚至只要你身处IT圈,这本书都有无穷无尽的看点,让你大呼过瘾之余,深受启发,进而陷入沉思,不由开始细数自己所在公司的技术发展历程…… 《淘宝技术这十年》内容简介:任何网站的发展都不是一蹴而就的。它在发展过程中会遇到各种各样的问题和业务带来的压力。正是这些问题和压力推动着技术的进步和发展,而技术的发展反过来又会促进业务的更大提升。如今淘宝网的流量排名已是全球前15名、国内前3名,其系统服务器也从一台发展到万台以上。 《淘宝技术这十年》从工程师的角度讲述淘宝这个超大规模互联网系统的成长历程,及其所有主动和被动的技术变革的前因后果。书中有幕后故事、产品经验、架构演进、技术启蒙,也有大牛成长、业内八卦、失败案例、励志故事。《淘宝技术这十年》文风流畅,有技术人员特有的幽默感;内容积极正面,有现场感,全部是作者亲身经历。 子柳:本名赵超,2004年加入淘宝网,取花名子柳。历任开发工程师、项目经理、产品经理、测试经理,2009年随着淘宝系统的大规模重构和人才的迅速扩张,创办了“淘宝技术大学”,培养内外部工程师众多,人称“校长”。2011年将培训中的内容写成文章发表,遂一发不可收拾,总结了淘宝十年的技术之路,乃成本书。
  • 图解HTTP
    本书对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。本书的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过本书快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书均有介绍。 本书适合Web开发工程师,以及对HTTP协议感兴趣的各层次读者。 作者简介 上野 宣 OWASP 日本分会会长,TRICORDER株式会社董事长。 主要从事安全咨询、风险评估、信息安全教育等工作。著有《今晚我们一起学习邮件协议》(今夜わかるメールプロトコル)、《今晚我们一起学习TCP/IP》(今夜わかるTCP/IP)、《今晚我们一起学习HTTP》(今夜わかるHTTP)。担任The Tangled Web:A Guide to Securing Modern Web Application日文版的审校工作。 译者简介 于均良 上海交通大学硕士,高级软件工程师,马拉松跑者,四点网创始人。
  • 程序员的三门课
    我们都有一个共同的梦想——成为更棒的程序员,但是如何做?如何学习和精进自己的技术?如何做业务分析和架构设计?如何做技术管理?本书就广大程序员都很关注的问题提供一些思路和方法。 本书内容分为三大篇:第1篇介绍程序员的技能成长路径,介绍如何通过学习来加速成长,并讲解非常重要的业务分析和设计知识;第2篇详细介绍了架构修炼中的必备架构思维模式、架构设计过程,还通过真实案例剖析了架构设计的核心要素及关注点,以及如何通过架构设计来把控质量和风险;第3篇总结了做技术管理的诀窍,揭秘如何从准备做技术管理到实现自我管理再到实现团队管理。 本书适用于即将或者正在从事IT相关开发工作,却不知如何提升自己,希望通过适当的学习方法精进技术的初级程序员;也适用于具备一定架构设计经验,想进一步系统化提升架构设计能力的中级程序员;以及有一定技术积累,想从事技术管理却不知如何着手的高级程序员。 于君泽,某互联网公司技术专家,在分布式系统架构设计、高并发系统设计、领域建模、研发管理、内建质量等方面有较多心得,乐于交流和分享,曾创立技术社群“中生代技术”。维护技术公众号“技术琐话”。 李伟山,现任某人工智能公司技术总监,江湖人称“山哥”,在分布式系统架构设计、高并发系统设计、系统稳定性保障等方面积累了丰富的实践经验,擅于利用数据分析解决实际问题,对新技术有浓厚的兴趣,乐于分享。个人技术公众号:技术方舟。 张洪亮,网名Hollis,知名技术博主,个人技术博客(http://www.hollischuang.com)阅读量达数百万。90后程序员,2015年毕业于哈尔滨理工大学,现任某互联网公司技术专家,专注于Java研发、技术架构及程序员的成长等方面。个人技术公众号:Hollis。 彭首長,熊猫优福联合创始人,聚美优品前技术总监。在团队管理、领域设计、分布式架构、高并发设计、IoT架构等方面有丰富的实践经验,擅长行业分析,对新技术高度敏感,热衷于技术实践且乐于分享。 刘朋,高绩效团队教练,教练型领导,中生代技术社区联合创始人,北京大学理学学士、工学硕士。现就职于中国移动(成都)5G产业研究院,曾任诺基亚通信(成都)有限公司研发经理。在敏捷实践、高绩效团队教练技术、技术团队管理等方面积累了丰富的经验,并总结出一套特别适合程序员突破自身瓶颈、快速成长的领导力模式
  • 高性能JavaScript
    如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。本书揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM交互、页面生存周期等。雅虎的前端工程师Nicholas C.Zakas和其他五位JavaScript专家介绍了页面代码加载的最佳方法和编程技巧,来帮助你编写更为高效和快速的代码。你还会了解到构建和部署文件到生产环境的最佳实践,以及有助于定位线上问题的工具。 Nicholas C.Zakas,是一位软件工程师,专注于用户界面设计以及用JavaScript,动态HTML,CSS,XML和XSLT实现Web应用。他目前就职于Yahoo!首页小组,职位为首席前端工程师。他同时也是YUI(Yahoo!用户界面类库)的代码贡献者,作品有Cookie工具集,Profiler和YUI Test。