本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。本书适合大学计算机专业的学生、研究生及相关人员参考。 本书中涉及的设计模式并不描述新的或未经证实的设计,我们只收录那些在不同系统中多次使用过的成功设计。
《Cucumber:行为驱动开发指南》的两位作者是Matt Wynne和AslakHelles?y,前者是Cucumber最有经验的用户和贡献者之一,后者是Cucumber的创始人,因此,《Cucumber:行为驱动开发指南》是一本指南,它会提供使用Cucumber所需的知识,让你和你的团队自信地开启Cucumber之旅。尽管Cucumber诞生于Ruby社区,但你可以用它测试几乎所有系统,从简单的shell或Perl脚本,到使用PHP、Java或任何其他平台编写的Web应用。 书中将展示如何用一组清晰、可执行且团队中任何人都能读懂的规格说明来表达用户那些天马行空的想法。你将学会如何将这些示例提供给Cucumber,并让它指导你的开发过程。《Cucumber:行为驱动开发指南》的部分会提供Cucumber入门所需的知识,引导你从Cucumber的核心特性起步,通过Cucumber的GherkinDSL,使用自然语言来描述客户想要的系统行为,然后带你编写Ruby代码来解释这些自
软件工程是软件研发与维护的工程方法学。本书较好地体现了软件工程的实用性,有较完整的软件工程知识体系,有对工程概念、规则的生动说明,有与工程实践相适应的基于软件生存周期的内容编排,有基于案例的工程方法应用。全书共三个部分16章内容。部分工程基础含两章内容,是对软件工程概念方法、软件工程项目管理的常识性介绍;第二部分工程过程含7章内容,涉及软件工程过程模式,并以软件生存周期为线索,对软件研发全过程进行了说明;第三部分工程方法含7章内容,有基于案例的工程方法说明,涉及主流的结构化工程方法、面向对象工程方法、数据库工程方法,并介绍了敏捷工程等一些非主流方法,第16章则是一个较完整的面向对象工程案例,基于UML建模,并已通过C++、java进行工程创建。本书语言精简、通俗易懂、便于自学,而且教学资源较
计算广告是一项新兴的研究课题,它涉及大规模搜索和文本分析、信息获取、统计模型、机器学习、分类、优化以及微观经济学等诸多领域的知识。本书从实践出发,系统地介绍计算广告的产品、问题、系统和算法,并且从工业界的视角对这一领域具体技术的深入剖析。 《计算广告:互联网商业变现的市场与技术》立足于广告市场的根本问题,从计算广告各个阶段所遇到的市场挑战出发,以广告系统业务形态的需求和变化为主线,依次介绍合约广告系统、竞价广告系统、程序化交易市场等重要课题,并对计算广告涉及的关键技术和算法做深入的探讨。 无论是互联网公司商业化部门的产品技术人员,还是对个性化系统、大数据变现或交易有兴趣的产品技术人员,传统企业互联网化进程的决策者,传统广告业务的从业者,互联网创业者,计算机相关专业研究
本书作者具有丰富的分布式服务框架、平台中间件的架构设计和实践经验,主导设计的华为分布式服务框架已经在全球数十个国家成功商用。书中依托工作实践,从分布式服务框架的架构设计原理到实践经验总结,涵盖了服务化架构演进、订阅发布、路由策略、集群容错和服务治理等多个专题,全方位剖析服务框架的设计原则和原理,结合大量实践案例与读者分享作者对分布式服务框架设计和运维的体会。同时,对基于Docker部署微服务以及基于微服务架构开发、部署和运维业务系统进行了详细介绍。
《Paxos到Zookeeper 分布式一致性原理与实践》从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议。同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。全书共8章,分为五部分:前一部分(章)主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID、CAP和BASE等经典分布式理论;第二部分(第2~4章)介绍了2PC、3PC和Paxos三种分布式一致性协议,并着重讲解了ZooKeeper中使用的一致性协议——ZAB协议;第三部分(第5~6章)介绍了ZooKeeper的使用方法,包括客户端API的使用以及对ZooKeeper服务的部署与运
全面讲解如何构建稳定可靠的软件 《软件工程入门经典》揭秘专业开发人员为设计和构建稳定、可靠、高效软件所运用的软件工程技术和方法。本书通俗易懂,在大量案例的引导下,演示适用于任何编程语言的重要概念和技术;即使你目前不具有编程、开发和管理经验,同样可以阅读和学习本书。每章末尾附有精选习题,以测试你对知识的理解程度,引导你悟透主要概念。本书全面介绍了瀑布、生鱼片、敏捷、RAD、Scrum、看板和极限编程等各种开发方法所涉及的基本任务。主要内容 详述软件工程概念 阐释参与软件工程项目的团队成员的角色和职责 指出软件工程项目都必须经历哪些重要阶段才能开发出功能的可靠应用程序 详述主流软件开发方法及其处理重要开发任务的不同方式 提供从每章主要知识点引申的习题 附有详明的软件工程术语表
本书是一本实用的教程,使读者可以按照书中所说的方法,通过多个阶段的演进,来迭代式地构建出软件的架构。书中指出了各种架构工件的运用方式,使人可以把这些清晰、简明、精准而且易懂的工件,恰到好处地运用在实际的应用场景之中。本书简单、明确、易于理解、便于描述,而且足够实用,能够加以执行。可给IT工作者和软件工程专业的学生带来较大的帮助,使他们明白怎样对软件系统进行架构。
本书汇集了以Mesos为核心的新一代数据中心操作系统的很好实践,全面展示了Mesos集群对数据中心资源管理的集成高效性,和对应用部署和计划任务创建扩容操作的便捷性的优点。 基于Apache Mesos开源项目和Mesosphere公司的开创性工作,作者由浅到深地介绍了Mesos数据中心操作系统下各个相关组件和主流的计算框架,主要内容包括:1.构建你的靠前个Mesos集群:Mesos+Docker+Zookeeper2.管理Mesos集群:任务调度,资源管理以及日志3.使用主流计算框架部署容器化应用:Mesosphere公司的Marathon+Chronos以及Apache Aurora4.以python为例,自开发计算框架在每个部分,Roger Ignazio都给出了:关键原理及组件组成、安装部署过程、注意事项、日志和诊断方法等很好实践,并结合相关实例、研究成果和附加资源进行阐述。每个部分的内容组织都着力于条理清晰的、系统的展现Mesos集群的优点。作者对
本书按照电气项目的设计流程和特点,讲述了EPLAN Electric P8电气CAE绘图及管理软件的主要功能和特点。内容上既描述了广大电气工程师所习惯的“面向图形的设计方法”,又强调了现代工程所推崇的“面向对象的设计方法”。本书从电气项目的规划入手,介绍了项目结构分析和定义,项目创建,原理图和其他类型图纸绘制,符号的插入和元器件的选型,自动化系统常用的PLC设计,项目逻辑错误的检查,自动生成项目所需的各类工程报表,以及便于主数据和标准化管理的宏项目。这些内容的介绍能引导读者清晰地理解EPLAN Electric P8软件的设计思想,数据结构,功能和特性;能教会读者应用先进的电气工程设计理念和方法,快速设计原理图,生成表格文件,管理工程项目;能让读者快速掌握应用软件的技能和技巧,少走弯路,减少设计时间,从而提高生产力。 本教程结
《基于Selenium 2的自动化测试从入门到精通》向开发人员和测试人员展示了如何使用Selenium进行Web自动化测试。《基于Selenium 2的自动化测试从入门到精通》从自动化测试的特点娓娓道来,引出了主角Selenium;介绍了Selenium IDE的使用;讲述了获取页面元素和定位页面元素的多种方式;讲解了WebDriver与Selenium RC的区别、WebDriver的架构和设计理念;阐述了WebDriver的部署、基本使用方法、对HTML5特性的支持,以及如何迁移已有的Selenium RC代码到Selenium WebDriver的解决方案;展示了在嵌入式系统中使用Selenium进行自动化测试的方法,涵盖Android、iOS和Raspberry Pi等;此外,《基于Selenium 2的自动化测试从入门到精通》还描述了Selenium Grid的架构和部署方法;最后介绍了Selenium周边的测试工具和套件。无论从深度还是广度上,《基于Selenium 2的自动化测试从入门到精通》为开发人员和测试人员
n 《程序员的数学思维修炼(趣味解读)》是一本专门为程序员而写的数学书,介绍了程序设计中常用的数学知识。本书门槛不高,不需要读者精通很多高深的数学知识,只需要读者具备基本的四则运算、乘方等数学基础知识和日常生活中的基本逻辑判断能力即可。本书拒绝枯燥乏味的讲解,而是代之以轻松活泼的风格。书中列举了大量读者都很熟悉,而且非常有趣的数学实例,并结合程序设计的思维和算法加以剖析,可以训练读者的数学思维能力和程序设计能力,进而拓宽读者的视野,增强职场竞争力。 《程序员的数学思维修炼(趣味解读)》共11章,分别介绍了数据的表示、神奇的素数、递归、排列组合、用余数进行数据分组、概率、复利、数理逻辑、推理、几何图形构造、统筹规划等程序设计中常用的数学知识,从而引导读者深入理解编程中的数学方
详述用于估算和计划任何敏捷项目的行之有效的技巧 《敏捷软件开发实践估算与计划 为对敏捷项目进行估算和计划提供了紧贴实用的指导方针。在本书中,敏捷联盟联合创始人Mike Cohn讨论了敏捷估算与计划背后的哲学思想,并通过列举现实世界的例子和项目案例具体展示了如何完成工作。本书是你开发工具箱中必不可少的敏捷估算“利器”。 本书清晰地阐述了相关概念,并引导读者逐步找到下列问题的答案:将构建什么产品?产品规模多大?需要在何时完成?到那时我们到底能完成多少?你首先会认识到的计划由哪些要素组成,接着会了解到如何才能使计划敏捷化。 采用本书中讲述的方法,你将获得敏捷估算工具,帮助你从始至终保持敏捷、节省时间、充分利用资源并且完成更多工作。本书要点如下: 为什么传统的指令性计划会失败而敏捷计划会取得成功 如何
如何量化用户体验对有效提高产品的使用质量至关重要。本书详尽地介绍了如何有效且可靠地收集、 分析和呈现典型的用户体验度量数据:操作绩效(正确率等)、用户体验问题(频率和严重程度)、自我报告式的满意度及生理/行为数据(眼动追踪等)。同时对“综合性量化度量数据”等问题进行了专门介绍,而且结合案例等形式对当前与用户体验相关的新内容(如用户体验对NPS 的影响)进行了说明。
Jeff Atwood于2004年创办CodingHorror博客,记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近10万人次的访问量,读者纷纷参与评论,各种观点与智慧在那里不断激情碰撞。 《高效能程序员的修炼》是CodingHorror博客中精华文章的集合。全书分为12章,涉及迈入职业门槛、高效能编程、应聘和招聘、团队协作、高效工作环境、用户体验、安全问题、测试、社区管理、营销广告、人生思考等话题。作者选取的话题,无一不是程序员职业生涯中的痛点。其中,“程序员的八种境界”、“程序员的《权利法案》”、“结交混世魔猴”等文章早已脍炙人口,在程序员圈子里广为流传。 《高效能程序员的修炼》的写作风格风趣幽默,且充满理解和关怀,适合从新手到老手的各个阶段的程序员阅读,也适合即将成为程序员的计算机和相关专
本书正文共13章,章是概述,第2章至第8章顺序讲述软件生命周期各阶段的任务、过程、结构化方法和工具,第9章至2章分别讲述面向对象方法学引论、面向对象分析、面向对象设计和面向对象实现,3章介绍软件项目管理。
在软件领域,很少能有像《人月神话》一样具有深远影响力和不衰的著作。Brooks 博士为人们管理复杂项目提供了洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践。本书内容来自Brooks 博士在IBM 公司SYSTEM /360 家族和OS /360 中的项目管理经验,该项目堪称软件开发项目管理的典范。该书英文原版一经面世,即引起业内人士的强烈反响,后又译为德、法、日、俄、中、韩等多种文字,全球销售数百万册。确立了其在行业内的经典地位。 在《人月神话》次出版40 年后的今天,我们重新整理了Brooks 博士的经典内容,并将软件开发领域先行者们对《人月神话》中的实践及系统理论的使用经验和心得集结成册免费赠与大家共享,更使本书成为从业者的经典之一。 本书读者包括:软件开发人员、软件项目经理、系统分析师等IT 从业者。
本书共分10章,首先介绍了汽车电子控制系统以及AUTOSAR规范的基本概念;之后以AUTOSAR方法论为线索,通过示例开发过程介绍,全面展现了基于AUTOSAR工具链完成符合AUTOSAR规范的车用控制器软件开发的具体流程与方法;很后,剖析了AUTOSAR对道路车辆功能安全ISO26262标准的支持情况,并对AUTOSAR与信息安全以及AdaptiveAUTOSAR平台进行了介绍。本书以通俗易懂的语言和形象的图解展现了AUTOSAR中一些复杂的概念问题,精心设计的示例亦旨在以开发者的视角深度剖析AUTOSAR方法论的具体实施过程。 本书可作为汽车电子相关专业高年级本科生和研究生的参考书,也可作为汽车电子行业软件工程师学习参考的资料。
本书综合作者自己遇到的实际问题,以及其他开发人员咨询的问题,总结出一套巧妙运用正则表达式的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三部分:靠前部分主要讲解正则表达式的基础知识,涵盖了正则表达式中常见的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到常用语言.NET、Java、JavaScript、PHP、Python、Ruby、Objective-C、Golang中,在详细介绍了在这些语言中正则表达式的具体用法之外,还辨析了版本之间的细微差异。本书既可以作为专门的学习用书,也可以作为备查的参考手册。
《软件需求开发实践:基于模型驱动的需求开发过程》全面闸述需求开发的三个阶段:需求捕获、需求分析、需求管理的工作过程和内容,并区别OLTP(交易)、OLAP(分析)两大类不同的需求分别给出相应的工作模板。《软件需求开发实践:基于模型驱动的需求开发过程》内容分为概念和理念、过程及方法、模板三个主要部分,包括基本理论,需求开发的过程、模板的应用、横型的搭建,针对分析建模进行剖析,闸述与面向对象分析、设计的关系。《软件需求开发实践:基于模型驱动的需求开发过程》还针对项目实施的具体情况给出裁剪指导,闸述基于横型的需求管理,给出一个需求开发文档的实例片段。 《软件需求开发实践:基于模型驱动的需求开发过程》既面向需求工作人员也面向设计人员。读者如果有面向对象分析的基础,对《软件需求开发实践:基于
《学术中国·院士系列:软件定义网络核心原理与应用实践》分为核心原理和应用实践两大部分,对软件定义网络(SDN)技术进行了全面剖析和深入解读。一、首先阐述了SDN的设计思想与体系架构,详细分析了软件定义网络的控制转发分离和可编程性两个突出属性,其次介绍了以OpenFlow为代表的SDN南向接口协议,以及北向和东向接口协议,接下来根据SDN的层次化架构,依次介绍了SDN数据平面、控制平面以及SDN应用案例,梳理总结了SDN标准化进展以及学术发展情况。二、着重讲述SDN应用实践,从系统架构、代码解析等方面详细介绍了虚拟交换机、开源控制器、仿真测试实验工具的基本知识,并结合模拟网络环境搭建、虚拟网络设备部署、实际业务开发等具体应用实践场景,深入讲解了利用SDN技术进行创新研发的过程。 《学术中国·院士系列:软件定义网络核心原理与