架构整洁之道:优秀设计或多余,有效设计最可取

人们经常谈论优秀设计和糟糕设计。你的设计属于哪一种?

有很多软件开发团队的设计从来经不起思考。他们采用一种我称之为“任务板挪卡” 的方法来代替设计。团队有一个开发任务清单,比如 Scrum 产品待办列表,其中的任务被张贴在“任务板”上,然后他们可以将一张便利贴从“任务板”上的“待办”泳道移动到“进行中”泳道,这就是“任务板挪卡”。

产品经理提出待办项(任务),然后来一次“任务板挪卡”,这便构成了关于设计的全部“真知灼见”,剩下的就交给程序员大神们去疯狂输出代码。很少有团队会这样做,如果真的这样做了,业务就会为这些不存在的设计付出最高昂的代价。

这种情况常常是因为团队必须按照苛刻得近乎残忍的时间表去发布软件,管理层只会使用 Scrum 控制交付节奏,却对它最重要的信条之一:知识获取 (Knowledge Acquisition) ,视而不见。

架构整洁之道:优秀设计或多余,有效设计最可取

 

在我独立进行咨询和培训的经历中,经常会遇到相同的情境。软件项目如履薄冰,所有团队成员都在努力地维护着系统稳定,每天面对着代码和数据打补丁。以下是我发现的一些潜在问题,有趣的是,DDD可以帮助团队轻而易举地避免其中的一部分问题。我先从高层次的业务问题开始,然后再讨论技术相关的问题:

  • 软件开发被视为成本中心而非利润中心。这通常是因为从业务的视角来看计算机和软件技术是必要的消耗而不是战略优势的重要来源(不幸的是,在根深蒂固的商业文化下,这种观念不太可能被转变)。
  • 开发人员热衷于技术并通过技术手段解决问题,而不是深入思考和设计,这会导致他们孜孜不倦地追逐技术上的新潮流。
  • 过于重视数据库,大多数解决方案的讨论都是围绕数据库和数据模型,而不是业务流程和运作方式。
  • 对于根据业务目标命名的对象和操作,开发人员没有给予应有的重视,这导致他们交付的软件和业务所拥有的心智模型之间产生巨大的分歧。
  • 上面的问题一般是业务协作不顺畅而导致的。业务干系人常常浪费大把时间闭门造车以实现各种无人问津的需求,或者只有一小部分能被开发人员采用。
  • 频繁而又要求精准的项目估算会占用大量的时间和精力,导致软件交付延期。开发人员使用“任务板挪卡”而非考虑周详的设计导致他们造出了一个个“大泥球”,而不是业务驱动下恰当的分离模型。
  • 开发人员在用户界面和持久层组件中构建业务逻辑。此外,开发人员也经常会在业务逻辑当中执行持久化操作。
  • 数据库查询会时常出现中断、延迟、死锁等问题,阻碍用户执行时间敏感型的业务操作。
  • 项目中存在错误的抽象级别,表现为开发人员试图借助过度概括的方案满足所有当下以及臆想出来的未来需求,而不是解决实际而又具体的业务诉求。
  • 在紧耦合服务群中,当一个服务执行操作时,该服务直接调用另一个服务并引发一个对等操作。这种耦合会经常破坏业务流程和未达成一致的数据,更别提这样的系统会有多难维护了。

架构整洁之道:优秀设计或多余,有效设计最可取

 

这一切都似乎发生在“设计无法带来低成本的软件”的观念下。而这时常是出于商业上的简单考虑,软件开发人员并不知道还有其他更好的选择。“软件正在蚕食整个世界”,对你而言重要的是,软件不但可以蚕食你的利润,也可以提供一场利润盛宴。

你一定要明白,臆想出来的“不做设计能省钱”的观念简直是一个谬论,它已经巧妙地愚弄了那些不思考周详设计而只会对软件交付施压的人们。这是因为设计仍然会从每个开发人员的脑海流淌到在键盘上不断敲打着代码的指尖之中,这些设计并不需要来自其他地方的输入,包括业务。以下这句话可以很好地总结这种现象:

关于设计是否必要或是否负担得起的问题根本都没有问到点上:设计是不可或缺的。除了优秀设计就是糟糕设计,根本不存在“不做设计”一说。

尽管 Martin 先生的这句评论并非专门针对软件设计,但这同样适用于我们的技艺,考虑周详的设计同样无可取代。在刚才的情景中,如果一个项目由五名开发人员参与,那么“不做设计”将会产生五种不同的设计。也就是说,在没有任何真正领域专家的协助下,你开发出来的软件将会混杂着五种不同的、虚构出来的、对业务语言的诠释。

架构整洁之道:优秀设计或多余,有效设计最可取

 

事实上:无论承认与否,我们都是在构建模型。

这就好比修建道路。一些历史悠久的道路最开始是跑马车的,经过岁月的碾压最终变得年久失修。为了满足少数人的需要,它们被加入了不明所以的转弯和岔路,并被改造得迂回曲折。在某个时刻,它们会被铲平并且会被重新建设,为的是让越来越多的旅客感到舒适。这些将就凑合的道路到现在还有人路过,不是因为它们设计良好,而仅仅是因为它们存在着而已。如今很少有人能够了解行走在这些道路上别扭不堪的原因。而现代道路都会依据人口、环境以及可预测的流量来规划和设计。两种类型的道路都会被建模。一种模型只是做了最基本、最简单的思考,另一种则最大程度地发挥了聪明才智。软件建模也可以从这两种角度出发。

如果你担心周详的设计会带来高昂的软件开发成本,那么设想一下,将来为了维护甚至修缮一套糟糕设计的软件就需要付出更为昂贵的代价。当我们把软件作为你的公司与其他公司之间的差异,并依靠它带来可观的竞争优势时,尤其如此。

“有效(Effective)”一词和“优秀(Good)”意义相近,它能更准确地表达我们应该在软件设计中努力追求的目标:“有效设计”(Effective Design)。有效设计可以满足商业组织希望借助软件超越竞争者的诉求。它可以驱动企业去思考哪些核心业务必须成为其竞争力,还可以指引构建正确软件模型的方向。

Scurm 中的知识获取是通过不断的试验及协作学习完成的,这被称为“知识付费”(Essential Scrum)。知识永远都不是免费的,但在《领域驱动设计精粹》中,我将提供一些方法帮你更快地获取它们。

如果你对有效设计的影响仍心存疑虑,别忘了那位曾洞察其重要性的人:

绝大部分人错误地认为设计只关乎外观。人们只理解了表象——将这个盒子递给设计师,告诉他们:“把它变得好看一些!”这不是我们对设计的理解。设计并不仅仅是感观,设计也是产品的工作方式。 ——乔布斯

软件开发中,有效设计最为重要。如果只有一个选择,那么我首推有效设计。


本文节选自《领域驱动设计精粹》(Domain-Driven DesignDistilled)一书。

本书适用于对快速学习DDD核心概念和主要工具,表面上看最主要的读者是软件架构师和开发者,因为他们是在项目中实践 DDD的人,也跟容易发现DDD的美妙之处。然而,本书同样可以帮助高管、领域专家、经理人、业务分析师、信息架构师和测试人员快速理解这一主题并认识到其独特价值。阅读原文将带你领略DDD大师Vernon的这部新作,它必将成为国内众多团队快速引入和落地DDD的绝佳指导。

该名家名著现已全面上市,可在京东了解更多:https://item.jd.com/12447082.html。

相关推荐

涵盖从Java 5到Java 11所有重要特性,让Java学习不再难!

曾经,网络上流传着这样一套视频,无数学员通过这套视频学会了Java,进入了软件开发领域~~这套视频就是“Java无难事”。如今,为了方便大家更好地学习,也跟上当前Java发展更新的步伐,作者基于之前的视频内容,做了更新和完善,在广度和深度上进行了扩展,并继承“让Java学习再也不是难事”的思想,推出了新书《Java无难事》。—— 从Java5到Java11 ——Java,这门编程语言界的常青树,凭借着简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 ,深受程

博文视点(北京)官方博客 5039

离开大厂为什么会“返贫”?比《逆行人生》更真实~~

近期热播的电影《逆行人生》讲述了曾经的互联网大厂中层高志垒,因意气用事成为了“家里蹲”,却没想到人生从此“开入逆行道”的故事!电影播出后陷入巨大争议,不少人认为这部电影在消费苦难,刻意把一个人的生活拍得那么无辜、受害~~一个高设定的中产家庭真的能落魄到这种地步吗?抛开电影中主角的具体经历,在现实中,确实有不少离开大厂“返贫”的怪现象!那么,大厂“返贫”到底有哪些不为人知的底层逻辑呢?《大厂之外》作者刘飞老师就此采访了互联网行业的“老炮儿”、见证过很多离开大厂盲目折腾的真实案例的沈浩翔老师,让我们一

博文视点(北京)官方博客 1273

首部顶级AI科学家创作的纯正科幻小说,一个元宇宙和AI时代的全新科学幻想!

自2023 年起,深度学习和大模型的浪潮,终于超脱学院里形而上的争论,展示了它大规模改变现实世界的可能性,而改变的方式,可能和我们的想象完全不同。在这个新的时代中,每个个体的“独一无二”不再是与生俱来的,而是需要把握先机,以极大的勇气去开辟的。当平静的生活被诡谲的彗星所打破,当艰难的抉择关系到人类的命运,当虚拟世界成为最后的避风港,在无解的阳谋之下,顶尖的头脑们如何破局?在此背景下,很多事情都会发生变化,人的价值体系和价值评判方式,人和人之间的互动模式,人和人之间的相互关系,都将产生巨大的改变。

博文视点(北京)官方博客 1375

如何构建一个大模型?看完你就知道了!

第 7 章和第 8 章围绕大语言模型的应用和评估开展介绍,包括将大语言模型与外部工具和知 识源进行连接的 LangChain 框架、大语言模型在智能代理及多模态大模型等方面的研究和应用情 况,以及传统的语言模型评估方式、针对大语言模型使用的各类评估方法。例如:提示词:复旦大学有几个校区?强化学习(Reinforcement Learning,RL)阶段根据数十万用户给出的提示词,利用前一阶段训练的奖励模型,给出 SFT 模型对用户提示词补全结果的质量评估,并与语言模型建模目标综合得到更好的效果。

博文视点(北京)官方博客 2052

爆火的无人驾驶萝卜快跑,背后有哪些隐忧?

就在不久前的上海世界人工智能大会上,澳大利亚科学院院士、新南威尔士大学教授托比·沃尔什,在出席“人工智能新进展与社会科学的未来”论坛时指出,要深入研究人工智能发展给人类带来的影响,尤其是在就业方面,并不是所有工作人工智能都做得比人类好,在谋划未来、创意工作和提供情绪价值等方面,人类具有不可取代的优势。不得不说,现在的人工智能技术,特别是那些超大的智能模型,简直就是坐上了火箭,嗖嗖地往前冲,对经济、社会还有咱们的日常生活,影响大得不得了!人工智能的发展必然会带来生产力的提升,对劳动力的替代也是必然的。

博文视点(北京)官方博客 2029

人类警惕!AI是个大骗子!

幸运的是,医学界拒绝了辛顿的建议,继续培训新的放射科医生。我认为,如果你是一名放射科医生,你就像那只已经跑到悬崖边缘的郊狼,因为还没有往下看,所以它没有意识到脚下已经没有路了。书中从图灵的梦想开始,谈到人机共存的未来,娓娓道来,深刻且生动有趣。从关于人工智能中的“人工”这一讨论中,我们可以得出一个最终结论,那就是在人类智能中的“人”可能是我们与我们正在制造的能力越来越强的人工制品的机器之间最重要的区别。我对那些人,尤其是从事人工智能和道德规范工作的员工表示同情, 他们似乎受到了不成比例的影响。

博文视点(北京)官方博客 1466

大模型时代的基础架构,大模型算力中心建设指南重磅来袭!

在这个例子中,成本为100元的T恤是最畅销商品,成本为80元的T恤是高毛利商品,它们的区别在于前者内在的原料价值创造了最畅销商品,带来了更高的性价比,而后者外在的思想价值创造了高毛利商品。这类商品不会有很强的需求和很大的销售量,但毛利率很高。在最畅销商品和高毛利商品的“挡拆”战术中,一旦客户与最畅销商品发生接触,就是高毛利商品赚取利润的最佳时机,因为客户会将二者进行比较。最畅销商品和高毛利商品并不是两类单独的商品,即新奇商品、流行商品、基本商品和专业化商品中的任何一个都同时包含最畅销商品和高毛利商品。

博文视点(北京)官方博客 1374

程序员“计算机之子“的职场反思

Winter 是我认识的最有传奇性,也最有趣的程序员之一。他在前端工程师领域颇有知名度,是 JavaScript 专家,主要的作品是 Weex 框架。如果在搜索引擎中搜 Winter,会出来一个看似没头没脑的“计算机之子”的称呼。这是因为他的生日是 10 月 24 日,正好是“程序员节”(1024 是 2 的 10 次方)。Winter 从小就用机器码编程了,那个年代还是用打孔纸的。从哈尔滨工程大学毕业后,他加入微软亚洲研究院,后来加入过 “人才辈出”的盛大创新院,又在 2012 年加入了阿里巴巴,职

博文视点(北京)官方博客 1961

红队实战宝典之内网渗透测试

本书是以内网攻防中红队的视角编写的,从内网的基础攻击原理出发,讲解红队的攻击思路和主流渗透测试工具的使用方法,旨在帮助安全行业从业人员建立和完善技术知识体系,掌握完整的后渗透流程和攻击手段。由于本书的编写初衷是为具有一定基础的渗透测试工程师和红队人员梳理常用技巧,所以,本书主要通过命令和工具介绍各种内网渗透测试方法,同时分析了一部分工具的工作原理。一场真实的、有目的的网络攻击,通常包括对业务的控制、修改和对数据的获取等,而对业务的攻击,一般都是通过本书介绍的方法拿到权限后展开的。

博文视点(北京)官方博客 1802

端午节,来看看这本应景的“龙舟书”吧!

如果你曾经尝试过使用AI工具,但是始终没有找到能够助力自己工作生活的地方,或者只停留于简单的问答,于是就慢慢放下了,那么这本书或许可以帮你看见使用AI工具的真正魅力,让你掌握ChatGPT的高阶玩法,看到它的更多应用场景,真正让它成为为自己赋能的AI助手!比如第四章的编程提效部分,或许你会用AI生成片段代码,但通过龙舟书的案例,你会了解到如何用AI实现一个模块、甚至实现项目级开发的操作逻辑和具体方法。在23年3月,我们也成立了自己的AI社群"AI俱乐部",也是在这个时期,我们全公司都加入了AI赛道!

博文视点(北京)官方博客 1065

100倍增长的背后:华为IPD实施20年

不仅有严谨的理论和方法阐述,更大量剖析了经典商业公司产品的成功案例,阐述了他们成功的背后逻辑是如何反应了IPD的本质,同时也基于大家司空见惯的日常商业案例进行了分析,让读者更容易理解IPD关于产品的业务本质和商业经营的核心。华为坚持IPD变革20多年,不仅构建了产品研发领域的世界级竞争力、更是开启了从此持续变革的序幕,培养了一大批熟知变革方法的干部队伍和企业文化,让华为尝到了变革的甜头,从此华为就开始不断革自己的命、直到今天也未有停止过。华为创始人任正非说过:华为没有成功、只有成长和对常识的遵守。

博文视点(北京)官方博客 1528

被众多AI大佬看好的具身智能到底是什么?它凭什么成为下一个AI浪潮?

通过比较智能体和具身智能,我们不仅能够更好地理解具身智能的独特性和价值,而且看到了一个全新的视角:智能是如何通过与环境的互动来发展和适应的。具身智能理论让我们想起人类自身的特性,我们的智能不仅来源于大脑的思维过程,还深深根植于我们的身体及我们与外部世界的交互。具身智能的核心观点是,认知和智能行为是大脑、身体、环境相互作用的结果,体现了智能体通过物理互动来学习和适应环境的能力。感知与交互:智能体的感知和交互很有规律,而具身智能喜欢与环境实时互动,它的感知和行为是在不断变化的环境中进行的。

博文视点(北京)官方博客 2516

数字经济 + 人工智能最大的商业机会不是在互联网上……

因为,今天中国农业已经不仅仅涉及单一的种养殖的事情了,还涉及农业组织、土壤问题、种业研发、种植技术、植保技术、采收技术、品控技术、深加工、营销及IP 打造、全渠道运营、物流供应链、文化赋能、一二三产融合、产业资本、政策配套等,同时还涉及农村产业结构、返乡创业、农民老龄化、新农人培养、产业转型升级等。(2) 家庭农场带动的一二三产融合模式 :城市周边的乡村,是很难实现规模化的农业的,如果单靠第一产业,很难支撑农业的发展,稳定种地农民的心,要一二三产融合发展,才能在同一片土地上,实现不同商业模式的收益。

博文视点(北京)官方博客 1447

亿级流量下通用的高并发架构设计

Proxy收到业务服务的数据库操作请求后,根据请求中的SQL语句进行归类,将属于写操作的请求(如insert/delete/update语句)转发到数据库Master,将属于读操作的请求(如select语句)转发到数据库任意一个Slave,完成读/写分离的路由。数据库承受的高并发请求压力,主要来自读请求。我们可以把数据库按照读/写请求分成专门负责处理写请求的数据库(写库)和专门负责处理读请求的数据库(读库),让所有的写请求都落到写库,写库将写请求处理后的最新数据同步到读库,所有的读请求都从读库中读取数据。

博文视点(北京)官方博客 1617

豆瓣8.7分,30000人都在阅读的量化用户体验实操书全面更新!

这些示例中的行为、态度和情感都是可以被度量的。来自不同专业和领域的关注如何提高用户体验的人将会从本书获益,包括可用性和用户体验专业人员、交互设计师、信息架构师、服务设计师、产品设计师、Web 设计师和开发人员、软件开发人员、平面设计师,以及市场营销和市场研究专业人员,还有项目和产品经理等。这本书适用于任何对改进不同类型产品或服务的用户体验感兴趣的人,无论这些产品是消费类产品、计算机系统、应用程序、网站、服务,还是其他任何类型的物品,只要是人使用的产品,就可以度量与使用该产品有关的用户体验。

博文视点(北京)官方博客 1249

一本书了解AI的下一个风口:AI Agent

随着技术的飞速发展,我们正站在一个新的转折点上,AI Agent(AI智能体,简称智能体)作为AI技术发展的新风口,正逐渐揭开神秘面纱,预示着一个全新的智能时代到来。它们将不再是被动的执行者,而是我们生活中的主动参与者,可以理解我们的语言,预测我们的需求,并在多个任务中提供个性化的帮助。智能体将不再是单一功能的应用程序,而是能够跨平台、跨任务的智能伙伴,可以根据我们的需求和偏好,提供更精准和更高效的帮助。我们需要制定相应的法律法规,确保智能体技术的发展在伦理和法律的框架内进行,并加强监管,保护用户的权益。

博文视点(北京)官方博客 1142

一本书精通推荐算法,轻松搞定入门、面试、进阶

精通推荐算法:核心模块+经典模型+代码详解》一书主要介绍推荐算法技术,覆盖召回、粗排、精排和重排等模块,目的是让读者熟悉推荐算法的全部链路,加深体系化理解,并掌握关键技术细节。它能帮助你掌握推荐算法的整体架构、每个核心模块的知识框架,以及一些工作必备的经典模型,同时,能帮助你深入理解它们的出发点和具体实现方案,在实际工作中融会贯通。同时,推荐系统链路很长,包括召回、粗排、精排和重排等诸多模块,如何掌握整体架构,并深入每个模块理解其细节,就成为一件困难且重要的事。(3)模型经典,代表性强。

博文视点(北京)官方博客 1310

一本书了解AI的下一个风口:AI Agent

随着技术的飞速发展,我们正站在一个新的转折点上,AI Agent(AI智能体,简称智能体)作为AI技术发展的新风口,正逐渐揭开神秘面纱,预示着一个全新的智能时代到来。它们将不再是被动的执行者,而是我们生活中的主动参与者,可以理解我们的语言,预测我们的需求,并在多个任务中提供个性化的帮助。智能体将不再是单一功能的应用程序,而是能够跨平台、跨任务的智能伙伴,可以根据我们的需求和偏好,提供更精准和更高效的帮助。我们需要制定相应的法律法规,确保智能体技术的发展在伦理和法律的框架内进行,并加强监管,保护用户的权益。

博文视点(北京)官方博客 1181

野心、梦想与科幻——浅谈外星殖民与软件工程

这本书完美融合价值和创新的软件架构选择,旨在让业务决策者和技术团队成员学会通过协作来清晰地理解自身在战略层面面临的问题,并确定理想的架构制定方法,无论该方法是分布式微服务、模块化良好的单体,还是介于两者之间的粗粒度服务。软件架构专家Vaughn Vernon和Tomasz Jaskuła展示了如何基于需求和目标做出平衡的架构决策,而非盲目跟风,从而聚焦于价值和创新,交付更具可演进性的系统,并避免代价高昂的错误。考虑到新的交付机制和收入模式,现有的产品可能是创新的催化剂,能够带来比昨天更大的价值。

博文视点(北京)官方博客 1688

万众期待,催更5年,《码农翻身2》强势来袭!!!

再比如,对于“编程语言的巅峰”这一节,如果你对基本的数组、条件分支、函数都不了解,就无法领略汇编语言的厉害之处。现在《码农翻身2》终于来了,之所以拖了这么长的时间,主要是因为中间“插播”了另外一本书——《半小时漫画计算机》,该书使用纯漫画的方式来讲解计算机基础知识,这对我来说是一个全新的尝试,花费了我不少的时间和精力。所以,我在写文章的时候也有意把枯燥乏味的技术包装一下,变成好玩有趣的故事,在故事中让主人公不断遇到问题,不断制造悬念,吸引大家看下去,不知不觉就把技术掌握了。

博文视点(北京)官方博客 1942

【干货来了】大语言模型训练优化秘籍

由于一次模型训练过程通常包含多轮,因此,初始数据预热占用的同步时间在整个训练过程中的占比很低,而且本地缓存不受节点数量增加的影响,可以保证每个节点具有同等的吞吐性能。这样做效率更高,性能可提升数倍。不同的分布式并行技术对通信带宽的要求不同,因此,针对不同的硬件环境,需要选择最适合的分布式并行方案,并针对不同的数据量和模型特点做针对性的优化,从而达到最好的通信效率。还有一些需要关注的 I/O 问题,如训练数据量比较大,通常有几 TB∼几百 TB,这对存储的要求比较高,既需要大存储容量,又需要高吞吐性能。

博文视点(北京)官方博客 1632

从《繁花》看图数据库的关联力!

据艾瑞咨询《2022年中国知识图谱行业研究报告》,知识图谱是二维链接的图结构而非行或列的表结构,需要以图数据的形式描述并存储,该方式能直接反映知识图谱的内部结构,有利于知识查询,并且结合图计算算法能够实现知识的深度挖掘与推理。在此背景下,图技术领域专家张晨博士基于近十多年来在图数据库技术领域的研究和实践经验,牵头编写了《图数据库:理论与实践》,为图技术爱好者提供一本即具备领域概括性、又具有专业深度、还兼顾了业务实操性的领域知识与实践手册。在市场上,尚未出现一本能够帮助图数据库爱好者从入门到精通的实践手册。

博文视点(北京)官方博客 1079

大模型的智慧之源:图技术的崛起

以创邻科技针对信用卡场景打造的智能问答平台为例,该平台通过图技术和通用大模型的协同工作,优化大模型框架的逻辑推理能力的同时拓展了其原始知识边界,让生成式回答的灵活开放性与精确性并存。在处理复杂的推理和问答任务,特别是涉及多个变量和条件的情况时,图技术可以将问题抽象为图结构,并利用图算法进行分析,有效解决复杂问题,弥补大型语言模型推理能力的不足,实现更广泛的应用和发展。与大模型相比,图技术能够更好地处理复杂的逻辑关系和多种数据结构,更全面地分析和理解数据之间的关系,提高推理和决策的准确性。

博文视点(北京)官方博客 767

Go 首次冲进前八!曾两次夺得年度编程语言,也曾跌至百名开外 | TIOBE 2 月榜单发布

本书基于Go 1.20版本编写,对Go语言的语法和使用方法进行了详尽的介绍,包括基础语法、数组、切片、映射、函数、类型、包与依赖管理、接口、反射、并发编程、泛型、测试、常用标准库和第三方库的基本原理和使用方法,并通过最佳实践案例详细讲解使用过程中遇到的常见问题和解决方法,以期帮助读者读者更好地理解Go语言的语法特性和应用技巧。想要用Go语言写出优质的软件,不仅要了解Go语言的语法,还需要对Go语言的特性、软件的通用编写方法、软件项目的组织方法、并发程序设计、软件测试、软件性能优化等方面都有一定的了解。

博文视点(北京)官方博客 1543

2024年了,是谁还在学C++11?(没错,是我)

它融合了令全球无数程序员为之迷醉的C++大师Stanley B. Lippman的丰富实践经验,注入了C++标准委员会原负责人Josée Lajoie 对C++标准的深入理解,再结合上C++ 先驱Barbara E. Moo在 C++教学方面的真知灼见,经历了语言缔造者与常青藤名校数版迭代,才锻造出了这样一本每一页都在闪闪发光的C++学习头牌!但无论如何,学习 C++11 仍然是一个有价值的投资,可以提升你的 C++编程技能,并为你在 C++领域的发展打下坚实的基础。

博文视点(北京)官方博客 1697

大模型竞速下半场,探索大模型应用的奥秘

虽然搭建Chatbot的产品方法论并没有因为以ChatGPT 为代表的大模型的出现发生本质的变化,但是在一些技术落地的实现路径中,新的技术对旧的技术确实有了一定程度的替换。只有冷静地看待人工智能的发展,理解技术周期性的变化并持续拥抱最新的技术,我们才能抓住真正的机会,做出人们期待的产品。与出版本书第1版时的情形非常相似,如今,大家对ChatGPT有和Chatbot一样巨大的误区,认为人工智能是一个纯粹的技术工程,被各种技术术语影响,忽略了商业应用中产品设计和对用户需求的理解实际上是更为重要的事实。

博文视点(北京)官方博客 1190

云联接:揭开SD-WAN神秘面纱,颠覆你对网络的认知!

如今,尽管 SD-WAN 技术在业内仍未有系统、标准的定义,但未来 WAN 传输将是软件定义的这一观点已成为业内共识:只有在应用识别能力、隧道加密能力、动态优化能力、应用可视化能力和零信任构架五大能力的支持下,一个具有商业化价值的 SD-WAN 基础服务架构体系才能形成。云联接,即世间万物中无处不在的联系、联接和联动,它是 SD-WAN 的形式化表述,包含了 SD-WAN 技术的丰富能力,是展现未来网络形态的理念。当然,不同行业的不同企业网络特性各有不同,SD-WAN的应用场景也可能大相径庭。

博文视点(北京)官方博客 856

RAG:让大语言模型拥有特定的专属知识

值得注意的是,在进行检索之前,对数据的处理也非常重要。可以发现,虽然大语言模型有上下文推理能力,但由于大语言模型存在“知识过期”和“细分领域的幻觉”这两个限制,且它会尽可能地尝试回答所有的问题,因此只是单纯地使用大语言模型是没有办法解决所有问题的,RAG正是在这个背景下应运而生的。RAG技术在Chatbot中的应用极大地提高了回应的相关性和准确性,使得处理复杂查询成为可能,并显著增强了个性化与上下文理解的能力,为用户提供了更丰富、更自然、更个性化的交互体验,推动了Chatbot技术的发展。

博文视点(北京)官方博客 2362

AI加持,openEuler打造数字基础设施全场景操作系统

通过在openEuler中引入的异构内核管理,可以在CPU和NPU通过共享页表的方式实现统一编址,使得双方可以互用内存,达成内存“透明”扩容、超分,这样可以提升推理场景吞吐量提升50%,并极大的简化内存管理的需求成本,以往多套内存接口简化为一套,异构驱动代码也能从万行下降到百行。通用的配置语言,也可以用于打造开箱即用的定制能力,支持任意YAML字段定制,适配众多格式的上游软件,而且OS支持分层定制,通过EulerMaker和EulerTest构建面向多场景的软件。“崛起数字时代,引领数智未来。

博文视点(北京)官方博客 1574

基于大语言模型LangChain框架:知识库问答系统实践

ChatGPT 所取得的巨大成功,使得越来越多的开发者希望利用 OpenAI 提供的 API 或私有化模型开发基于大语言模型的应用程序。然而,即使大语言模型的调用相对简单,仍需要完成大量的定制开发工作,包括 API 集成、交互逻辑、数据存储等。为了解决这个问题,从 2022 年开始,多家机构和个人陆续推出了大量开源项目,帮助开发者快速创建基于大语言模型的端到端应用程序或流程,其中较为著名的是 LangChain 框架。

博文视点(北京)官方博客 4716
上一篇: 如何成为一名糟糕的大数据平台工程师
下一篇: 将Java 应用容器化改造并迁移到Kubernetes 平台
博文视点
博文视点 企业官方账号 企业官方账号 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄20年 6882粉丝 2132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值