本书深入探讨了软件设计中的核心问题:如何将复杂的软件系统分解为可以相对独立实现的模块(例如类和方法),从而降低其复杂性并提高开发效率。本书首先介绍了软件设计中的基本问题,即复杂性的本质。其次,讨论了有关如何处理软件设计过程的 哲学 问题,如通用设计的重要性、与《代码整洁之道》中设计哲学的对比,以及如何将重要的东西和不重要的东西区分开等内容。最后,总结了在软件设计过程中应遵循的一系列设计原则,以及一系列识别设计问题的警示信号。 本书适合软件工程师、计算机科学专业的学生、教育者、对软件设计和开发感兴趣的自学者和技术管理者阅读。通过应用本书中的思想,读者可以最大限度地降低大型软件系统的复杂性,从而更快地以更低的成本编写软件,并构建更易于维护和增强的系统。
你知道你不想重新发明轮子,因此你指望设计模式能帮上忙 那些面对相同软件设计问题的人所学到的教训。有了设计模式,你就可以借助他人的实践和经验,把时间花在一些更有挑战性、更有趣的事情上。本书展示了重要的模式;何时使用、为什么使用这些模式;如何在自己的设计中应用这些模式;模式所基于的面向对象设计原则。无数开发人员通过这本书提升了面向对象设计技能,来加入他们的队伍吧。
对于刚刚成为软件工程师的新手来说,知道如何编写代码只是成功了一半。你可能很快就会发现,学校并没有教授在现实世界中至关重要的技能和工作中必要的流程。本书恰恰填补了这一环节,它是作者十多年来在大型公司指导初级工程师工作的教程,涵盖软件工程的基础知识和best实践。 本书第1~2 章讲解当你在公司开启你的职业生涯时会发生什么;第3~11 章会扩展你的工作技能,教你如何使用现有代码库、解决和防止技术债、编写生产级软件、管理依赖关系、有效地测试、评审代码、交付软件、处理On-Call 时的事故和构建可演进的架构等;剩余章节涵盖管理能力和职业阶梯的提升等相关内容,例如敏捷计划、与管理者合作以及成长为资深工程师的必经之路。本书中非常重要的一部分内容是教你如何应对糟糕的管理,以及如何调整自己的节奏。 本书内容不仅
本书全面介绍产品的设计与开发方法,涉及顾客需求识别、功能设计、原型化设计、工业设计、服务设计等一系列过程,将市场营销、设计和制造融合为一套结构化产品开发方法,从真实工业实践的视角帮助读者了解产品开发的工作内容、方法、工具以及团队中的不同角色。书中每章都使用不同的产品实例进行方法阐释,同时附有练习和参考资源。 本书既可作为从事产品设计与开发的工程设计人员和项目管理人员的实践指南,也适合作为产品设计和项目管理等相关专业的辅助教材。 主要特点: (1)知识体系完整、系统 本书涵盖了产品设计与开发过程中涉及的方方面面,本书有两个主线:一个主线是研发项目生命期主线;另一个主线是研发各阶段都会用到的支撑性方法和工具。 (2)采用结构化的方法进行阐述,通俗易懂 本书强调采用结构化的方法解决问题
本书以目前流行的大语言模型ChatGPT为基础,用丰富的案例演示ChatGPT在软件测试中的赋能作用。本书主要介绍如何用ChatGPT生成需求规格说明书、测试计划、功能测试用例、自动化测试用例、接口测试用例、测试数据和性能测试用例,以及?ChatGPT?在分析测试结果、辅助?CI(Continuous Integration,持续集成)、生成测试总结报告和职业发展中的应用等。 本书内容通俗易懂,案例丰富,涵盖软件测试的功能测试、性能测试、接口测试和自动化测试等。通过阅读本书,读者可以借助大语言模型(简称大模型)提高测试效率和研发效率,提升测试工作质量。本书适合软件测试人员、项目管理人员、研发人员及关注软件效能提升的相关人员阅读,也适合希望借助大语言模型提升工作效率的技术人员阅读。
本书共分10章,首先介绍了汽车电子控制系统以及AUTOSAR 规范的基本概念;之后以AUTOSAR方法论为线索,通过示例开发过程介绍,全面展现了基于AUTOSAR工具链完成符合AUTOSAR规范的车用控制器软件开发的具体流程与方法;*后,剖析了AUTOSAR对道路车辆功能安全ISO 26262标准的支持情况,并对AUTOSAR 与信息安全以及Adaptive AUTOSAR平台进行了介绍。本书以通俗易懂的语言和形象的图解展现了AUTOSAR中一些复杂的概念问题,精心设计的示例亦旨在以开发者的视角深度剖析AUTOSAR方法论的具体实施过程。本书可作为汽车电子相关专业高年级本科生和研究生的参考书,也可作为汽车电子行业软件工程师学习参考的资料。
大模型技术是目前人工智能领域的重要发展方向之一,具有广阔的应用前景和巨大的发展潜力。本书结合当前高等院校创新实践课程,基于大模型应用程序的开发方法,给出可执行实战案例。大模型技术主要开发方向为人机聊天、自动生成代码、旅游图鉴等,本书案例主要包括系统架构、系统流程、开发环境、开发工具、系统实现、功能测试等内容。本书中所述案例多样化,可满足不同层次的人员需求; 同时,本书附赠视频讲解、工程文件、拓展知识、插图素材、程序代码,供读者自我学习和自我提高使用。本书可作为大学信息与通信工程及相关专业的本科生教材,也可作为从事物联网、创新开发和设计的专业技术人员的参考用书。
随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代 。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:对于信息消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统是解决这一矛盾的重要工具。推荐系统的任务是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
《WTF Solidity智能合约教程(入门篇)》内容源自GitHub上发布的“WTF Solidity教程”,丰富且实用,用通俗易懂的语言描述Solidity的基础知识,通过实例和代码示例,深入浅出地介绍Solidity编程的关键概念,以及智能合约的优化、安全等高级主题,让读者能够编写出更安全、更高效的智能合约。
本书以一个Kubernetes工程师的视角,全面系统地介绍Kubernetes常见的知识点、企业应用实践及运维管理方法。本书共分18章,第1、2章介绍如何快速搭建高可用的Kubernetes集群;第3~7章介绍Docker的基础和镜像的制作优化,以及Kubernetes的基础概念(Master、Node和Pod)、核心调度资源(Deployment、StatefulSet、DaemonSet、CronJob)、服务发布(Service和Ingress)和配置管理(ConfigMap和Secret)。第8~11章主要介绍Kubernetes的持久化存储、动态存储、CSI、高级调度(容忍、污点和亲和力)、服务质量、权限管理、Kubernetes资源配额管理。第12、13章主要介绍云原生存储、中间件容器化、Operator和Helm的使用。第14~16章主要介绍针对Kubernetes的日志收集(EFK)、监控告警(Prometheus和Grafana)、生产级服务发布Ingress的使用。第17章主要介绍基于Kubernetes、Jenkins、Harbor、GitLab等工具建设生产级的DevOps平台
每天,Google都要测试和发布数百万个源文件、亿万行的代码。数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行。面对这些看似不可能完成的任务,谷歌是如何测试的呢? 《Google软件测试之道》从内部视角告诉你这个世界上有名气的互联网公司是如何应对21世纪软件测试的独特挑战的。《Google软件测试之道》抓住了Google做测试的本质,抓住了Google测试这个时代**复杂软件的精华。《Google软件测试之道》描述了测试解决方案,揭示了测试架构是如何设计、实现和运行的,介绍了软件测试工程师的角色;讲解了技术测试人员应该具有的技术技能;阐述了测试工程师在产品生命周期中的职责;讲述了测试管理及在Google的测试历史或在主要产品上发挥了重要作用的工程师的访谈,这对那些试图建立类似Google的测试流程或团队的人受益
本书分为软件基础入门与应用实例两大部分,全书共计17章节。1~11章节为软件基础入门,其内容以热仿真工作流程、建立模型、网格划分、求解计算、结果处理、优化设计和仿真模型校核为主。12~17章节为软件应用实例部分,其内容主要由BGA封装芯片、户外通信机柜、数据中心、智能手机、服务器六个应用实例组成。本书内容丰富、讲解详尽,在介绍FloTHERM软件的同时,也注重相关背景原理的阐述和软件实际应用的注意事项。其中软件基础内容多来自作者的多年积累和整理。仿真模型的校准作为热仿真分析的重中之重,本书中也进行了细致的阐述。应用实例内容涵盖软件不同的应用领域,对于软件使用者而言,具有很强的实际指导意义。本书可以作为电子设备热仿真工作者、热设计工程师和FloTHERM软件使用者的自学教材和参考书,同时也可以作为高等院校学
《MATLAB数学建模从入门到精通》结合案例,系统介绍了使用 MATLAB 进行数学建模的相关知识和方法论。 《MATLAB数学建模从入门到精通》分为 11 章,主要包括走进数学建模的世界、函数极值与规划模型、微分方程与差分模型、数据处理的基本策略、权重生成与评价模型、复杂网络与图论模型、时间序列与投资模型、机器学习与统计模型、进化计算与群体智能、其他数学建模知识、数学建模竞赛中的一些基本能力。 《MATLAB数学建模从入门到精通》内容通俗易懂,适合刚刚接触数学建模的大中专院校学生和其他数学建模爱好者阅读,也适合作为相关组织和培训机构的教材和参考用书。
全书共25 章,分成三个部分,分别介绍了精益产品开发的原则、方法和实施。原则部分,从精益及敏捷产品开发的目标入手,梳理了敏捷和精益思想的来龙去脉和具体的实践框架,构建了系统和完整的精益产品开发体系。方法部分,以作者在华为、招商银行、平安科技以及数家互联网创业公司的大量成功案例为基础,详细介绍了这些案例背景、应用细节以及背后的原理和方法,构建了坚实、系统和可应用的实践方法体系。实施部分继续以真实案例为基础,总结了完备的精益产品开发实施路径,涵盖了需求管理、过程改进、质量提升、团队建设、DevOps 落地等实施中的重点要素。本书适合所有准备实施或正在实施敏捷和精益方法以及希望改善组织价值交付效率、质量、灵活性以及产品创新能力的团队阅读与参考。
本书系统地讲述了智能现象的发展历史。全书共分为9 章。第1 章介绍本书的写作背景、智能的不同定义、智能现象问题、智能现象新的假说;第2 章介绍宇宙从无到有(物质、能量和空间)、不安分的宇宙、改变以稳定宇宙等内容;第3 章介绍物理学中的智能,包括美丽的物理世界、引力智能、引力和暗能量、熵引力、最小作用量原理、量子隐形传态等内容;第4 章介绍化学中的智能,包括化学发展的简要历程、耗散结构、熵增、最大熵产生;第5 章介绍生物学中的智能,包括生命的定义、生命为什么存在、微生物的智能、植物的智能、动物的智能;第6 章介绍人类的智能,包括大脑中的新皮质、人类特殊的思维方式、关于大脑的理论(贝叶斯大脑假说、高效编码原理、神经达尔文主义、自由能最小原理),以及信息过载与信息茧房;第7 章介绍机器的智能,包括1950
本书以步骤图解和视频微课等方式展现了用Blender软件进行三维造型设计的相关知识和技能,主要内容包括:Blender与3D打印的基础入门,Blender与3D打印的进阶内容,Blender与3D打印的高阶内容。每个案例均配有相应的教学视频,方便读者自学和培训。通过对本书的学习,读者不仅可以精准掌握Blender的核心造物功能,包括三维设计、渲染、骨骼绑定、动画等,还可以了解3D打印的操作流程。
通过本书你将了解到如何使用、部署和维护Apache Spark开源集群计算框架。本书由Spark的创始人所撰写,重点介绍Spark*版本的新功能和新特点。本书将Spark功能分解为若干独立主题来进行全面介绍。 本书的主要内容有: 大数据技术和Spark概述。 通过实例学习DataFrame、SQL、Dataset等Spark的核心API。 了解Spark的低级API实现,包括RDD以及SQL和DataFrame的执行过程。 了解Spark如何在集群上运行。 Spark集群和应用程序的调试、监控、和调优。 学习Spark强大的流处理引擎 结构化流处理。 学习MLlib并了解如何应用它解决包括分类、推荐,以及其他多种实际问题。
本书深入浅出地介绍非线性有限元计算软件OpenSees的基本建模与编程的方法,针对初学者设计了一系列循序渐进的算例,介绍编译和添加新材料方法,帮助使用者快速掌握OpenSees用法与编程.
本书作为一本详细讲解信创产品测试的图书,从信创产品的基础开始讲起,逐步贯通测试技术、测试方法论和测试案例分析。全面融合理论、实践与案例分享的方式,详细讲解如何对信创产品进行检验检测,如何提高信创产品的适配能力和产品质量。 本书共分为三个部分10个章节:第一部分为技术篇,详细介绍了信创的发展史和生态布局等内容,整个篇章以解读信创测试的团体标准和国家标准为突破口,从信创产品的测试基础要求、适配迁移能力、功能、性能效率、可靠性、安全性、兼容性、环境试验等方面进行一一的指导与测试实践,详细讲解如何对信创产品进行测试测评。第二部分为方法论,主要介绍了两款测试方法论(一款是基于业务场景的测试设计方法论,另一款是基于任务驱动的测试设计方法论),指导读者对信创产品从一个更高层次上,进行测试分
本书主要分享作者在多年软件测试从业中积累的关于性能测试、分析诊断与调优的技巧以及实战经验,使读者在性能测试、分析诊断与调优能力上有进一步的提升。 本书分为8章,首先从性能测试的基础理论开始介绍,包括性能测试的基本概念、常见的性能指标、性能测试流程等,接着会介绍Linux和Windows服务器的性能指标监控和性能分析技巧、Web中间件和应用中间件的常见性能诊断调优方法、Java应用程序的性能分析诊断调优技巧、MySQL数据库以及安卓APP的常见性能分析诊断方式,*后会结合LoadRunner、JMeter等常见性能测试工具以及结合HTTP、RPC等常见的传输协议一起来剖析真实的性能测试分析调优案例。 本书适合性能测试初学者、测试工程师、测试经理、研发经理、技术经理作为技术参考书,也适合高等院校与培训学校软件测试相关专业的师生作为教学参考书。
《JSP Servlet Tomcat应用开发从零始学(第3版)》全面系统地介绍JSP Servlet Tomcat开发中涉及的相关技术要点和实战技巧。《JSP Servlet Tomcat应用开发从零始学(第3版)》内容讲解循序渐进,结合丰富的示例使零基础的读者能够熟练掌握JSP Servlet Tomcat的应用开发和部署。《JSP Servlet Tomcat应用开发从零始学(第3版)》配套示例代码、PPT课件、作者答疑服务。 《JSP Servlet Tomcat应用开发从零始学(第3版)》共17章。第1~7章为Java Web基础开发,内容包括搭建Java Web开发环境、JSP基础语法、JSP内置对象、Servlet技术、请求与响应、会话管理、Servlet进阶API、过滤器、监听器等;第8~15章为Java Web高级开发,内容包括MySQL 8数据库开发、JSP与Java Bean、EL标签、JSTL标签库、自定义标签、JDBC详解、XML概述、资源国际化等;第16~17章为Java Web实战,分别讲解两个典型的系统,即家校通门户网站(JSP
本书共分为五部分,部分全面讲述了面向对象程序设计的6大原则;第二部分深入浅出地阐述了23种设计模式,将这23种设计模式与我们耳熟能详的历史故事结合在了一起,趣味性极强;第三部分对各种彼此之间有关联的设计模式进行了分析和比较;第四部分讲解了设计模式的混编;第五部分是附录提供了一份设计模式彩图手册。
虚拟化技术是云计算的底层支撑技术之一。作为已经纳入到Linux内核的虚拟化解决方案,KVM虚拟化近年来发展迅猛,是很多公共云供应商默认的虚拟机管理程序。对于IT从业者来讲,掌握一些KVM虚拟化知识是很有必要的。 本书是《虚拟化KVM进阶实战》姊妹篇,共有6章。针对初学者,先从虚拟化基本概念及KVM原理讲起,然后通过全动手的实验学习KVM的安装、虚拟机创建、虚拟机的日常管理、虚拟网络的管理、虚拟存储的管理。 KVM虚拟化其实是Linux、KVM、QEMU和libvirt等很多开源技术的组合,对于初学者来讲学习曲线比较陡。本书将这些技术融会贯通,是作者多年讲授KVM虚拟化实战课程经验的结晶,可以使学习者快速入门并为后续的企业级应用打下基础。