本书深入探讨了软件设计中的核心问题:如何将复杂的软件系统分解为可以相对独立实现的模块(例如类和方法),从而降低其复杂性并提高开发效率。本书首先介绍了软件设计中的基本问题,即复杂性的本质。其次,讨论了有关如何处理软件设计过程的 哲学 问题,如通用设计的重要性、与《代码整洁之道》中设计哲学的对比,以及如何将重要的东西和不重要的东西区分开等内容。最后,总结了在软件设计过程中应遵循的一系列设计原则,以及一系列识别设计问题的警示信号。 本书适合软件工程师、计算机科学专业的学生、教育者、对软件设计和开发感兴趣的自学者和技术管理者阅读。通过应用本书中的思想,读者可以最大限度地降低大型软件系统的复杂性,从而更快地以更低的成本编写软件,并构建更易于维护和增强的系统。
本书由CCF组织富有程序设计教学经验的钻石教练编写。通过详实的例题,循序渐进地介绍中学生计算机程序设计的各种知识及其应用,内容包括树及其应用、二叉树及其应用、集合与并查集、图及其应用、二分图及其应用、散列表及其应用、排序及其应用、基础算法及其应用、动态程序设计、数学在程序设计中的应用等,旨在普及计算机科学教育,培养中学生的计算思维能力。
《Qt嵌入式开发实战 从串口通信到JSON通信(微课视频版)》针对嵌入式、物联网开发的工程需求,在全面介绍UART接口、RS485接口等硬件接口的工作原理、调试方法的基础上,介绍了Qt跨平台开发的知识,如GUI编程、信号和槽、定时器、事件循环、HTTP和TCP通信等。尤其是着重介绍了网络通信中常用的JSON的原理和cJSON库的使用方法。本书以一个气象站程序为例,对介绍的知识加以应用,同时展示了工程实践中程序迭代升级的过程。 《Qt嵌入式开发实战 从串口通信到JSON通信(微课视频版)》可以分为3部分:第一部分(第1章和第2章)主要介绍硬件接口知识,包括硬件接口(UART、RS485)、通信协议(Modbus)、调试工具(逻辑分析仪、串口调试助手)等的原理和使用方法;第二部分(第3~6章)主要介绍Qt开发的知识,包括GUI程序开发、控件、信号和槽、事件的使用等;第
大模型技术是目前人工智能领域的重要发展方向之一,具有广阔的应用前景和巨大的发展潜力。本书结合当前高等院校创新实践课程,基于大模型应用程序的开发方法,给出可执行实战案例。大模型技术主要开发方向为人机聊天、自动生成代码、旅游图鉴等,本书案例主要包括系统架构、系统流程、开发环境、开发工具、系统实现、功能测试等内容。本书中所述案例多样化,可满足不同层次的人员需求; 同时,本书附赠视频讲解、工程文件、拓展知识、插图素材、程序代码,供读者自我学习和自我提高使用。本书可作为大学信息与通信工程及相关专业的本科生教材,也可作为从事物联网、创新开发和设计的专业技术人员的参考用书。
机器学习是以概率论、统计学、信息论、**化理论、计算理论等为基础的计算机应用理论学科,也是人工智能、数据挖掘等领域的基础学科。《机器学习方法》全面系统地介绍了机器学习的主要方法,共分三篇。篇介绍监督学习的主要方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与**熵模型、支持向量机、Boosting、EM算法、隐马尔可夫模型、条件随机场等;第二篇介绍无监督学习的主要方法,包括聚类、奇异值分解、主成分分析、潜在语义分析、概率潜在语义分析、马尔可夫链蒙特卡罗法、潜在狄利克雷分配、PageRank算法等。第三篇介绍深度学习的主要方法,包括前馈神经网络、卷积神经网络、循环神经网络、序列到序列模型、预训练语言模型、生成对抗网络等。书中每章介绍一两种机器学习方法,详细叙述各个方法的模型、策略和算法。从具
随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代 。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:对于信息消费者,从大量信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统是解决这一矛盾的重要工具。推荐系统的任务是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。
本书系统地讲述了智能现象的发展历史。全书共分为9 章。第1 章介绍本书的写作背景、智能的不同定义、智能现象问题、智能现象新的假说;第2 章介绍宇宙从无到有(物质、能量和空间)、不安分的宇宙、改变以稳定宇宙等内容;第3 章介绍物理学中的智能,包括美丽的物理世界、引力智能、引力和暗能量、熵引力、最小作用量原理、量子隐形传态等内容;第4 章介绍化学中的智能,包括化学发展的简要历程、耗散结构、熵增、最大熵产生;第5 章介绍生物学中的智能,包括生命的定义、生命为什么存在、微生物的智能、植物的智能、动物的智能;第6 章介绍人类的智能,包括大脑中的新皮质、人类特殊的思维方式、关于大脑的理论(贝叶斯大脑假说、高效编码原理、神经达尔文主义、自由能最小原理),以及信息过载与信息茧房;第7 章介绍机器的智能,包括1950
如何量化用户体验对有效提高产品的使用质量至关重要。本书详尽地介绍了如何有效且可靠地收集、分析和呈现典型的用户体验度量数据:操作绩效(正确率等)、用户体验问题(频率和严重程度)、自我报告式的满意度及生理/行为数据(眼动追踪等)。同时对 综合性量化度量数据 等问题进行了专门介绍,而且结合案例等形式对当前与用户体验相关的新内容(如用户体验对NPS的影响)进行了说明。本书内容翔实,是一本值得用户体验从业人员研读的指导性书籍,同时也可以作为相关课程的参考教材。
本书是一本系统讲解管理软件需求分析的书,以实战为主。包括大量案例以及来自工作实践中的经验心得。主要讲述了:需求分析的工作步骤;需求分析的工作内容;如何进行需求调研;如何进行系统规划;如何设计软件;如何设计出好软件;快速原型开发模型;需求文档的撰写;如何应对需求变更;如何成为需求分析高手。本书适合从事需求分析工作的专业人士、希望从事需求分析工作的IT人、希望了解需求分析工作的IT人、计算机相关专业的大学生、管理相关专业的大学生、企事业单位从事管理工作的各级管理者,以及企业信息化管理体系中的关键用户等。
本书系统讲解了树莓派智能系统设计与Python编程,内容涉及传感器接口、物联网开发、 语音、图像、视频等方面的应用。全书共8 章,分别介绍了树莓派的使用与配置过程、Python 程序设计基础知识、树莓派GPIO 与传感器接口、环境参数监测智能小车、树莓派本地服务器构建与Web端监控软件以及树莓派在语音、视觉和深度学习中的典型应用。通过本书的学习,读者可以快速掌握树莓派智能系统的设计与应用。 为便于读者高效学习,快速掌握树莓派智能系统的开发与实践,作者制作了完整的源代码以及典型案例的讲解视频,并且收集、整理了大量学习的资料与工具。 本书适合作为高等院校电子信息类专业学生学习嵌入式系统、人工智能、Python编程语言相关课程的参考书,也可以作为树莓派爱好者的自学用书。
照由浅入深、循序渐进的方式,讲解软件的新特性和操作方法,使读者能够快速掌握SolidWorks软件的设计技巧。 对于SolidWorks软件的基础应用,《SolidWorks 2022完全实战技术手册》内容讲解得非常详细。通过实例和方法的有机统一,使本书内容既有操作上的针对性,也有方法上的普遍性。《SolidWorks 2022完全实战技术手册》图文并茂,讲解深入浅出、繁就简、贴近工程,把众多专业和软件知识点有机地融合到每章的具体内容中。《SolidWorks 2022完全实战技术手册》的体例结构生动而不涩滞,内容编排张驰有度,实例叙述实用而不浮烦,能够开拓读者思路,提高读者阅读兴趣,使其掌握方法,提高对知识综合运用的能力。 通过对《SolidWorks 2022完全实战技术手册》内容的学习、理解和练习,能使读者真正具备SolidWork设计者的水平和素质。《SolidWorks 2022完全实战技术手册》既可
本书针对新一代GUI开发平台MATLAB App Designer(MATLAB R2019b)的应用分两个部分加以详细介绍。部分结合两个综合案例详细介绍用MATLAB App Designer设计App(GUI)的方法与步骤、重点与难点;第二部分以机械工程领域中各种专业案例为基础详细介绍每个App设计的编程解决方法。 本书可作为高职高专及高等院校的机械工程及相近专业的专业课辅助教材,也可作为相关领域工程技术人员进行设计的辅助工具书。
在软件架构中没有哪个决定是轻而易举的。相反,有许多艰难的部分,要么是难题,要么是缺少实践,这迫使你在各种妥协中做出选择。通过本书,你将学会如何批判性地思考分布式体系结构的利弊。 软件架构老兵和实践顾问Neal Ford、Mark Richards、Pramod Sadalage、Zhamak Dehghani讨论了选择适合架构的策略。全书交织着一群虚构的技术专业人员(Sysops Squad)的故事,他们研究了从如何确定服务粒度、管理工作流和编排、管理和解耦合约、管理分布式事务到如何优化可扩展性、弹性和性能等操作特性的一切问题。 本书通过关注常见的问题,提供了一些技术,帮助你在面对架构问题时进行权衡。
在这本书中,作者给出在过程工业中所需要的先进控制技术的概念和术语。这本书是为熟悉传统控制过程却在先进控制领域缺少相关经验的控制工程师编写的。这本书的每一章的结构允许快速了解技术及如何应用。应用大量实例来说明什么是需要处理应用程序。而且,每一章的*段介绍相关技术的数学基础,章末则给出探索性的内容。读者可通过转到本书附带的 web 站点查看车间解决方案。
本书分为两大部分,其中第一部分 基础篇 包括第1~11章,第二部分 进阶篇 包括第12~18章。Unity 3D初学者在学习第一部分后,完全可以制作出属于自己的游戏。但是能做出来不代表做得好,这里的 好 主要是指游戏性能高以及开发难度大。从商业游戏的角度来说,必须做到这两点,所以第二部分主要讲解Unity 3D的性能与原理。除第1章外,书中的每一章都包含丰富的示例和源代码,它们是非常宝贵的实战经验,可以直接应用在实际开发中。
对于刚刚成为软件工程师的新手来说,知道如何编写代码只是成功了一半。你可能很快就会发现,学校并没有教授在现实世界中至关重要的技能和工作中必要的流程。本书恰恰填补了这一环节,它是作者十多年来在大型公司指导初级工程师工作的教程,涵盖软件工程的基础知识和best实践。 本书第1~2 章讲解当你在公司开启你的职业生涯时会发生什么;第3~11 章会扩展你的工作技能,教你如何使用现有代码库、解决和防止技术债、编写生产级软件、管理依赖关系、有效地测试、评审代码、交付软件、处理On-Call 时的事故和构建可演进的架构等;剩余章节涵盖管理能力和职业阶梯的提升等相关内容,例如敏捷计划、与管理者合作以及成长为资深工程师的必经之路。本书中非常重要的一部分内容是教你如何应对糟糕的管理,以及如何调整自己的节奏。 本书内容不仅
《逆向工程核心原理》十分详尽地介绍了代码逆向分析的核心原理。作者在Ahnlab 研究所工作多年,书中不仅包括其以此经验为基础亲自编写的大量代码,还包含了逆向工程研究人员必须了解的各种技术和技巧。彻底理解并切实掌握逆向工程这门技术,就能在众多IT相关领域进行拓展运用,这本《逆向工程核心原理》就是通向逆向工程大门的捷径。 想成为逆向工程研究员的读者或正在从事逆向开发工作的开发人员一定会通过《逆向工程核心原理》获得很大帮助。同时,想成为安全领域专家的人也可从《逆向工程核心原理》轻松起步。
本书重点介绍了基于Qt开发体系结构中面向底层和顶层程序设计的项目研究结果,以一套集成软件层、硬件层、网络层、跨语言层和虚拟服务与虚拟设备层等完整应用程序的开发为例,对Qt平台的相关原理、方法与技巧进行说明。在底层方面,主要研究了Qt在桌面系统底层驱动程序开发的模块结构与特点,并以我国二代*读卡器及SIM 卡读/写卡器为对象,给出系统设计、代码与实例。在顶层方面,重点研究了当前跨平台、跨语言、跨代码的远程程序通信协议,重点讲解了基于C 的Qt应用与基于Java语言的Web应用,其通过第三方远程通信协议进行跨语言级的函数调用,尤其重点介绍了允许二进制通信的Hessian远程通信协议,并给出了相应的解析实例。此外本书还介绍了Qt主要的高级功能模块,包括界面设计、Web网站文件的上传与下载、应用实例检测、外部动态链接库调用、系统托盘管理、网
本书主要讲述如何自己动手制作( DIY )一个微型多旋翼飞行器。书中内容主要分四篇:篇主要介绍飞行器的相关基础知识,让读者对多旋翼飞行器有个感性的认知;第二篇重点介绍飞行器的硬件平台,包括模块详细解说、实物组装、固件下载方法和飞行器的操作说明等;第三篇重点介绍飞行器的软件开发环境、软件各个功能部分的讲解和各个模块部分的连接、飞控系统的核心算法等;第四篇介绍多旋翼飞行器的拓展,控制操作入门和技巧,以及其在不同行业的应用。 本书配套资料里面包含了微型多旋翼飞行器的代码,同时也包含遥控器代码。这些代码均有详细的注释,读者可参考它设计自己的固件,亦可通过书中介绍的方法,将编译后的代码下载到飞行器和遥控器中来体验飞行。 本书主要针对未入门而有强烈意愿DIY的飞行器爱好者和即将参加赛事的大学生朋友
本书是微软DAX语言在商业智能分析、数据建模和数据分析方面的指南。 通过对本书的学习,你将了解如何使用DAX语言进行商业智能分析、数据建模和数据分析;你将掌握从基础表函数到高级代码,以及模型优化的所有内容;你将确切了解在运行DAX表达式时,引擎内部所执行的操作,并利用这些知识编写可以高速运行且健壮的代码。 本书第2版的重点内容包括基于免费的Power BI Desktop来构建和运行示例,帮助你在Power Bl、SQL Server Analysis Services或Excel中充分利用强大的变量(VAR)语法。你想要使用DAX所有的强大功能吗?那么这本未进行任何删减、深入浅出的著作正是你所需要的。 本书适合Excel高级用户、商业智能分析人员、使用DAX和微软分析工具的专业人士。
AI 领域 的 基石王者 ,那些还沉迷于CNN,RNN的工程师被警告: 放弃战斗吧,向Transformer投降! 本书是一本 Transformer 权威的指南,深入探讨了自然语言处理(NLP)领域的关键技术。本书详细介绍了Transformer架构及其在NLP中的创新应用,为读者提供了全面的知识体系和实践经验。作者以通俗易懂的方式解释复杂概念,引导读者逐步掌握深度学习和NLP的核心原理。无论您是NLP研究者、数据科学家、计算机科学学生还是技术创业者,本书都为您提供了深入理解和应用Transformer模型的关键指南。通过本书,读者将掌握构建高性能NLP应用所需的关键技能,助力您在人工智能领域取得更大成就。
全书共25 章,分成三个部分,分别介绍了精益产品开发的原则、方法和实施。原则部分,从精益及敏捷产品开发的目标入手,梳理了敏捷和精益思想的来龙去脉和具体的实践框架,构建了系统和完整的精益产品开发体系。方法部分,以作者在华为、招商银行、平安科技以及数家互联网创业公司的大量成功案例为基础,详细介绍了这些案例背景、应用细节以及背后的原理和方法,构建了坚实、系统和可应用的实践方法体系。实施部分继续以真实案例为基础,总结了完备的精益产品开发实施路径,涵盖了需求管理、过程改进、质量提升、团队建设、DevOps 落地等实施中的重点要素。本书适合所有准备实施或正在实施敏捷和精益方法以及希望改善组织价值交付效率、质量、灵活性以及产品创新能力的团队阅读与参考。
本书介绍了高效的软件设计和编程方法,把精益需求分析、领域驱动设计、面向对象、契约式设计、测试驱动开发、意图导向编程及演进式设计等编程实践融会贯通,深入洞察软件设计本质,展示了一个清晰的程序员编程能力提升路线图。全书共十二章,按照程序员技能提升的顺序,分为品味篇、专业篇和高效篇。 本书适合各种编程语言的一线开发者、大学计算机和软件工程相关专业三年级以上本科生或研究生阅读,也适合专业的软件开发团队作为统一编程范式、提升设计意识和能力的参考书。
每天,Google都要测试和发布数百万个源文件、亿万行的代码。数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行。面对这些看似不可能完成的任务,谷歌是如何测试的呢? 《Google软件测试之道》从内部视角告诉你这个世界上有名气的互联网公司是如何应对21世纪软件测试的独特挑战的。《Google软件测试之道》抓住了Google做测试的本质,抓住了Google测试这个时代**复杂软件的精华。《Google软件测试之道》描述了测试解决方案,揭示了测试架构是如何设计、实现和运行的,介绍了软件测试工程师的角色;讲解了技术测试人员应该具有的技术技能;阐述了测试工程师在产品生命周期中的职责;讲述了测试管理及在Google的测试历史或在主要产品上发挥了重要作用的工程师的访谈,这对那些试图建立类似Google的测试流程或团队的人受益
本书深入浅出地介绍非线性有限元计算软件OpenSees的基本建模与编程的方法,针对初学者设计了一系列循序渐进的算例,介绍编译和添加新材料方法,帮助使用者快速掌握OpenSees用法与编程.