- 博客(73)
- 收藏
- 关注

原创 Manus AI Agent 技术解读:架构、机制与竞品对比
在分析股票相关性的案例中,Manus 调用了雅虎财经API获取股票历史数据,并进行数据清洗、相关系数计算和可视化,把三支科技股三年来的联动关系用图表和详尽文字说明呈现出来,简直就像一个尽职的金融分析师完成了全部工作。这种模块化、多Agent分工的架构,能够发挥各模型所长,避免单一模型在某些任务上的弱点。Monica.im 的创始团队在 AI 助手领域有深厚积累,此前推出的 Monica AI 浏览器插件整合了 GPT-4、Claude 3 等多个模型,为全球超过千万用户提供服务,并实现盈利。
2025-03-07 10:56:56
4664

原创 手脑革命:中国AI黑马Manus如何用‘数字员工’引爆千亿市场?
Manus是由中国团队研发的全球首款通用型AI Agent(自主智能体),其名称源自拉丁语“Mens et Manus”(意为“手脑并用”),核心能力在于自主思考、任务分解与全流程执行,而非仅停留在建议生成阶段。作为一个能够自主决策并执行任务的 AI 代理,Manus 为我们展示了人工智能技术的无限潜力,未来的人工智能应用将不再是简单的工具,而是更为智能、独立的助理。Manus的爆发标志着AI从“辅助工具”向“生产力中枢”的跨越。未来,人与AI的关系将从“主仆”转向“协作伙伴”,而这场变革,才刚刚开始。
2025-03-06 13:11:14
3145

原创 使用VS Code远程开发OpenAI API
由于OpenAI的API在国内不可用,我们要针对API进行开发困难比较大。如果你有一个能使用OpenAI API的Linux服务器,我们可以方便地使用VS Code的远程开发功能来解决这个问题。
2025-02-24 10:41:01
1341

原创 使用PHP 调用Deepseek API
本文将介绍如何通过 PHP 调用 Deepseek API,并通过简易代码展示如何与 Deepseek 的 AI 模型进行交互,帮助开发者更好地在自己的项目中应用这一强大的工具。我们将提供一个基本的 PHP 示例,帮助你快速了解如何通过 Deepseek API 进行调用。
2025-02-12 16:41:02
1259
原创 27.访问者模式
访问者模式(Visitor Pattern) 通过在不改变对象结构的前提下,向对象添加新的操作,实现了操作与数据结构的分离。该模式适用于需要对一组对象执行多种不同操作,并且希望在不修改对象结构的情况下,轻松地添加新操作的场景。通过将操作封装到访问者类中,访问者模式提升了系统的灵活性和可扩展性,同时也带来了类数量的增加和对元素类的修改敏感性等挑战。
2025-06-11 09:40:15
497
原创 24.解释器模式:思考与解读
解释器模式就像是你有一个自定义的语言规则,程序通过理解这些规则来解析输入并做出反应。比如,你可以用解释器模式来解析数学表达式(如“3 + 5 - 2”),让程序根据规则执行加法和减法,并返回最终的结果。
2025-06-09 12:17:43
921
原创 23.访问者模式:思考与解读
访问者模式是一种行为型设计模式,用于在不修改对象结构的前提下扩展其操作功能。该模式通过将操作封装到独立的访问者对象中,实现了对象结构与操作的解耦。核心组件包括访问者接口、具体访问者、元素接口和具体元素类。典型应用场景包括处理复杂对象结构(如账单系统、动物园管理系统)时需添加新操作的情况。访问者模式的优点在于提高系统扩展性和灵活性,但可能导致访问者类数量膨胀。通过Python代码示例展示了如何实现账单系统的访问者模式,验证了该模式在添加新操作(如计算总额)时无需修改原有类结构的优势。
2025-06-05 09:50:05
867
原创 22.代理模式:思考与解读
摘要:本文深入解析了代理设计模式,通过一个图片加载系统的示例展示了如何通过代理对象控制对真实对象的访问。代理模式包含主题接口、真实主题和代理三个核心角色,能在不修改原对象的情况下实现延迟加载、权限控制等功能。文章详细讲解了Python实现过程,包括定义接口、创建真实图片类和代理类,并分析了代理模式的优缺点。代理适用于需要控制对象访问的场景,但过度使用会增加系统复杂度。该模式有效解耦了客户端与目标对象,提高了系统灵活性和性能。
2025-05-28 13:46:37
1118
原创 21.享元模式:思考与解读
本文深入解析了享元设计模式,该模式通过共享对象内部不可变状态来优化内存使用,特别适用于需要处理大量相似对象的场景。文章首先提出问题:如何避免重复创建相似对象导致的内存浪费,进而引出享元模式的解决方案。核心在于将对象状态区分为可共享的内部状态(如颜色、形状)和不可共享的外部状态(如位置),通过享元工厂管理共享对象,确保相同特征的对象只创建一次。通过图形编辑系统的Python示例,详细展示了享元接口、具体享元类及享元工厂的实现过程,并分析了该模式的优缺点:能显著节省内存但可能增加客户端复杂度。
2025-05-26 12:11:56
1026
原创 20.迭代器模式:思考与解读
迭代器模式是一种行为型设计模式,旨在提供一种统一的方式来遍历不同的数据结构,而无需暴露集合的内部实现。该模式通过将遍历逻辑封装在迭代器对象中,使得集合的实现与遍历操作解耦,从而提高了代码的灵活性和可扩展性。迭代器模式的核心角色包括迭代器接口、具体迭代器、聚合类接口和具体聚合类。通过定义统一的迭代器接口,不同类型的集合可以使用相同的遍历方法,简化了代码并增强了可维护性。
2025-05-22 10:17:24
813
原创 19.备忘录模式:思考与解读
备忘录模式是一种行为型设计模式,旨在保存对象的内部状态,并在需要时恢复到之前的状态。该模式通过三个核心角色实现:发起人(Originator)负责创建和恢复状态,备忘录(Memento)保存状态,管理者(Caretaker)负责存储和检索备忘录。备忘录模式特别适用于需要频繁保存和恢复状态的场景,如文本编辑器的撤销功能或游戏中的存档功能。其优点在于封装了对象状态,简化了状态管理,并支持撤销和重做操作。然而,该模式可能导致内存开销增加,特别是在状态保存频繁的情况下。因此,在实际应用中需权衡其优缺点,选择合适的设
2025-05-19 10:05:23
935
原创 18.中介者模式:思考与解读
中介者模式是一种行为型设计模式,旨在简化多个对象之间的复杂交互。通过引入一个中介者对象,将对象间的通信集中管理,避免了对象之间的直接依赖,从而降低了系统的复杂性。中介者模式的核心角色包括中介者接口、具体中介者类和同事类。中介者模式适用于需要管理多个对象复杂交互的场景,如聊天室系统、GUI组件事件处理等。其优点包括解耦对象、简化交互逻辑和提高系统可维护性,但也可能导致中介者类过于复杂,成为系统瓶颈。通过合理使用中介者模式,可以有效提升系统的灵活性和扩展性。
2025-05-15 09:33:57
823
原创 17.责任链模式:思考与解读
文章探讨了人工智能在医疗领域的应用及其潜在影响。随着技术的进步,AI在疾病诊断、治疗方案制定和患者管理等方面展现出显著优势。通过分析大量医疗数据,AI能够提供更精准的诊断结果,并协助医生制定个性化治疗方案。此外,AI在药物研发和临床试验中也发挥了重要作用,加速了新药的开发进程。然而,文章也指出,AI在医疗中的应用仍面临诸多挑战,如数据隐私、伦理问题以及技术可靠性等。未来,随着技术的不断完善和法规的健全,AI有望在医疗领域发挥更大的作用,提升医疗服务的效率和质量。
2025-05-13 15:40:49
1039
原创 16.状态模式:思考与解读
假设你有一个对象,它的行为会随着状态的变化而变化。你是如何实现这些变化的?是通过在一个方法中增加大量的if条件判断来处理不同的状态,还是使用其他方式来管理这些状态?你是否觉得,过多的条件判断会导致代码的复杂性增加?passOrderStateself.state = NewOrderState() # 初始状态为新订单状态模式的核心思想是:对象的行为会根据其内部状态的变化而变化。换句话说,状态模式让对象在不改变其类的情况下,根据状态的不同做出不同的反应。
2025-05-07 09:53:56
911
原创 15.命令模式:思考与解读
原文地址:外观模式:思考与解读 更多内容请关注:7.深入思考与解读设计模式在软件开发中,尤其是当系统涉及多个请求、操作或任务时,你是否遇到过这样的情况:每个操作都有自己的执行逻辑,且这些操作可能会在不同的时刻被调用?你是否曾经感到,这样的操作代码耦合在一起,难以管理和扩展?如何让这些操作可以独立于调用者和执行者而进行管理和扩展?命令模式正是为了解决这个问题而设计的。它通过将请求封装成对象,使得你可以将请求的发送者和接收者解耦,从而更加灵活地控制请求的执行。你是否觉得,这种封装请求和操作解耦的设计模式能够提
2025-05-06 10:28:33
1234
原创 14.外观模式:思考与解读
假设你在使用一个复杂的库或框架,涉及到许多不同的类和方法。如果每次都需要调用多个类和方法,是否会导致你的代码变得臃肿和难以维护?你是否考虑过,通过提供一个简单的接口来封装这些复杂操作,是否能提高代码的可读性和易用性?外观模式的核心思想是:为复杂的子系统提供一个统一的接口,使得客户端通过这个接口与系统进行交互。这样,客户端无需了解系统内部的复杂细节,只需要调用外观提供的简单方法即可。通俗地讲,外观模式就像是你在使用一个智能家居系统。
2025-04-29 10:32:33
1088
原创 13.组合模式:思考与解读
假设你正在开发一个文件管理系统,其中有文件夹和文件。每个文件夹可能包含其他文件夹和文件。你是如何组织这些对象的?是否每次都需要分别处理文件和文件夹,分别使用不同的逻辑?在组合模式中,通常有三个主要角色:抽象组件(Component):定义所有节点的公共接口,让叶子节点和容器节点有统一的操作方式。叶子节点(Leaf):实际的对象,没有子节点,执行具体的操作。容器节点(Composite):有子节点的对象,可以包含其他叶子节点或容器节点。
2025-04-27 10:23:36
581
原创 12.桥接模式:思考与解读
假设你有多个功能模块,它们每个都需要支持不同的平台。如果每个功能模块都直接嵌入对平台的支持代码,是否会导致代码重复且难以维护?你是否考虑过将平台的特定实现部分与功能模块解耦,使得两者可以独立变化?# 实现部分接口passDrawingAPI接口定义了平台相关的绘图操作。你是否理解,为什么将平台特定的绘图操作抽象成接口,让不同平台的实现变得更加独立和灵活?passself.x = xself.y = y桥接模式的核心思想是将一个对象的抽象部分和它的实现部分分开,分别处理。
2025-04-24 10:49:42
966
原创 11.原型模式:思考与解读
通常,当我们需要创建新对象时,我们会通过构造函数初始化对象的各个属性。然而,如果对象的构建过程非常复杂,是否每次都需要重复这套步骤?在这种情况下,是否存在一种方法可以通过“复制”现有的对象来创建新对象,而无需重复初始化过程?# 定义原型接口passclone()原型模式的核心思想是,通过复制一个现有的对象来创建新的对象,而不是重新创建一个全新的对象。原型模式通常用于需要大量对象,且这些对象的创建开销较大的情况。通过克隆现有对象,可以节省对象创建的时间和资源。
2025-04-24 09:21:59
1001
原创 10.建造者模式:思考与解读
假设你正在创建一个复杂对象,这个对象有多个属性,并且这些属性可能有不同的值。你如何设计代码来生成这个对象?你会逐步为每个属性赋值,还是使用构建器来管理这些步骤?Computer类定义了计算机的核心属性:CPU、内存和硬盘。你是否理解,为什么这些是构建计算机对象时的关键组成部分?在实际应用中,是否可能有更多的可选组件?passpasspasspass建造者接口定义了如何构建计算机的各个部分。你能理解,为什么通过接口来定义构建步骤可以提高灵活性?不同的具体建造者类将根据具体需求来实现这些方法。
2025-04-22 09:52:50
773
原创 9.策略模式:思考与解读
首先,让我们从一个简单的问题开始。策略模式是一个行为型设计模式,它让我们能够在运行时选择并切换不同的“策略”来解决问题。策略指的是算法或行为。当我们有多个算法可以选择时,策略模式帮助我们将这些算法封装起来,并且在不改变客户端代码的前提下,切换不同的算法。简单来说,策略模式就是一种允许你在不同的情况下选择和切换“方法”的方式。举个简单的例子:想象一下,你在一个商店购买商品,支付方式有多种选择:支付宝、微信支付、银行卡支付等。每种支付方式都可以看作是一种策略,你可以根据实际情况选择一种支付方式。
2025-04-21 12:20:33
1026
原创 8.观察者模式:思考与解读
假设你有一个系统,其中有一个对象的状态变化会影响到其他多个对象。你是如何让这些依赖对象知道这个变化的?是否有一种方法,让这些对象在不询问的情况下,自动获取到最新的状态?# 观察者接口pass观察者接口定义了一个update()方法,所有观察者都必须实现这个方法。你是否理解,为什么这种方式能够确保所有观察者在状态变化时都能得到统一的通知,并进行相应的处理?passpasspassself.notify_observers() # 当天气数据变化时通知所有观察者。
2025-04-18 14:33:20
811
原创 7.装饰者模式:思考与解读
假设你有一个基本对象,已经完成了某些工作,但现在你需要让它完成更多的任务。你是否可以通过在不修改原始对象的情况下,增加新功能?装饰者模式允许你在现有对象的基础上,动态地增加新的行为,是否能够提高系统的灵活性和可扩展性?# 抽象组件类pass# 具体组件类:黑咖啡return 5.0return self._coffee.cost() + 1.5 # 添加牛奶的费用return self._coffee.cost() + 0.5 # 添加糖的费用。
2025-04-15 10:12:19
954
原创 6.适配器模式:思考与解读
假设你有两个模块,模块A和模块B,它们各自有不同的接口(方法参数不同、方法签名不同)。在这种情况下,是否需要对其中一个模块的代码进行修改才能使它们一起工作?如果修改其中的一个模块会导致系统不稳定,是否可以通过某种机制来避免直接修改?pass通过定义统一的接口Shape,我们能够确保所有绘图工具都能提供相同的draw()方法,方便客户端代码调用。而不管具体工具如何实现这个方法,客户端代码都无需关心具体细节。
2025-04-14 09:38:22
1289
原创 2、文件上传漏洞的防范
本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。上面的文件上传的例子,没有对被上传的文件进行任何判断,这样用户可以上传一个.php文件,然后通过浏览器访问该php文件,来达到攻击的目的。在执行文件上传操作时,都必须用这个函数来移动上传的临时文件到正式目录下,而不能自己使用move方法来移动。在文件上传后,判断上传的文件类型,如果类型不对,则不执行上传操作。在客户端提交文件上传之前,判断只允许上传指定类型的文件。
2025-04-11 11:31:01
775
原创 DeepSeek服务突发访问故障的快速诊断与DNS解决方案
2025年04月08日,使用中的DeepSeek相关服务突然无法访问。发现返回"127.0.0.1"或超时错误,表明DNS解析环节存在问题。检查代理服务器和防火墙 ERR_CONNECTION_REFUSED。右键当前网络 → 属性 → IPv4 → 使用以下DNS服务器地址。114.114.114.114或者114.114.115.115。chat.deepseek.com 拒绝了我们的连接请求。打开"网络和共享中心" → "更改适配器设置"请试试以下办法: 检查网络连接。
2025-04-08 11:39:54
725
原创 13.支持 RESTful
首先,需要在路由器中定义 RESTful 路由。这些路由通常对应于资源的 CRUD 操作:GET /resources:获取资源列表(Index)GET /resources/{id}:获取单个资源详情(Show)POST /resources:创建新资源(Store)PUT/PATCH /resources/{id}:更新资源(Update)DELETE /resources/{id}:删除资源(Destroy)在index.phpphp// ... 之前的代码 ...
2025-04-08 10:03:37
1063
原创 12.实现一个简单的依赖注入容器
通过实现一个简单的依赖注入容器,可以实现以下优势:松散耦合:组件之间不直接依赖具体实现,而是通过接口或容器进行协作。可测试性:更容易为组件编写单元测试,因为依赖项可以被轻松替换或模拟。可维护性:集中管理依赖关系,使得代码更易于维护和扩展。灵活性:更容易更换或升级依赖项,无需大规模修改代码。关键步骤回顾:实现 Container 类:管理服务的注册和解析。注册服务:在容器配置文件中定义所有需要的服务及其依赖关系。
2025-04-07 10:19:40
1023
原创 11.使用依赖注入容器实现松耦合
在容器配置文件中,可以定义所有需要的服务及其依赖关系。例如:控制器:通过自动装配,控制器的依赖项(如 Logger、Twig)将自动注入。中间件:定义中间件的依赖项,确保它们也通过容器进行管理。通过集成 依赖注入容器,可以实现以下优势:松散耦合:组件之间不直接依赖具体实现,而是通过接口或依赖注入容器进行协作。可测试性:更容易为组件编写单元测试,因为依赖项可以被轻松替换或模拟。可维护性:集中管理依赖关系,使得代码更易于维护和扩展。灵活性:更容易更换或升级依赖项,无需大规模修改代码。
2025-04-05 16:37:49
1078
原创 10.使用路由缓存提升性能
通过集成路由缓存,可以显著提升自定义 PHP 框架的性能和响应速度。以下是关键步骤的回顾:理解路由缓存:明确路由缓存的概念及其带来的性能优势。选择缓存存储方式:根据项目需求选择合适的缓存存储方式,文件缓存通常是最简单的选择。修改 Router 类:实现缓存的加载和保存逻辑。在路由添加和请求分发过程中集成缓存机制。管理路由缓存的更新:通过手动或自动方式确保缓存与路由定义保持同步。遵循最佳实践:确保缓存的安全性、性能优化和错误处理。保持缓存机制的可扩展性和一致性。
2025-04-02 09:35:57
1521
原创 9.常用模板引擎
PHP 生态中有多种模板引擎可供选择,每种引擎都有其独特的优势和适用场景。以下是关键点的回顾:Twig:功能强大,安全性高,适用于各种 PHP 项目,尤其是大型和复杂项目。Blade:与 Laravel 框架紧密集成,提供丰富的功能和高开发效率。Smarty:历史悠久,功能全面,适合需要复杂模板逻辑的项目。Mustache:逻辑无关,语法简洁,适用于简单模板需求和前后端分离项目。Plates:轻量级,使用原生 PHP,适合对性能有高要求的项目。
2025-04-01 09:34:03
1489
原创 8.集成模板引擎
通过以上步骤,已经成功在自定义的 PHP 框架中集成了 Twig 模板引擎,实现了视图与业务逻辑的分离,提升了代码的可维护性和扩展性。以下是关键点的回顾:选择合适的模板引擎:Twig 作为一个现代且强大的模板引擎,适合与自定义框架集成。通过 Composer 安装:使用 Composer 轻松管理模板引擎的依赖。配置模板目录:组织模板文件,确保项目结构清晰。更新 Controller 类:在基础控制器中集成模板渲染功能,简化控制器方法中的视图渲染。
2025-03-31 10:02:03
972
原创 7. 实现命名路由和反向路由
首先,需要在路由定义中引入路由名称的概念。可以通过扩展add方法来接受一个可选的路由名称参数。通过实现 命名路由 和 反向路由,可以显著提升 PHP 框架的灵活性和可维护性。以下是关键点的回顾:命名路由:为每个路由分配一个唯一的名称。通过名称引用路由,避免硬编码 URL。反向路由:根据路由名称和参数生成对应的 URL。简化 URL 生成过程,确保与路由定义一致。Router 类增强:修改add方法以接受路由名称。维护命名路由与路由定义的映射。实现方法,根据名称和参数生成 URL。
2025-03-28 09:43:56
1367
原创 1、SQL注入攻击的防范
虚拟站点使用的数据库用户一定不要使用root等最高权限用户,必须针对每个虚拟站点单独设置一个用户,这个用户只能允许虚拟站点所在的ip登录,只能访问当前虚拟站点所使用的数据库,并且只有有限的少数几个权限。php提供了mysql_real_escape_string方法,用于转义 SQL 语句中使用的字符串中的特殊字符,可以安全用于 mysql_query()。SQL注入攻击,指的是通过构建特殊的输入作为参数,传入后台处理程序(比如PHP代码),通过执行SQL语句,来执行攻击者所要的操作,从而达到攻击的目的。
2025-03-27 13:50:12
1088
原创 6. 理解中间件与认证中间件
确保在路由中正确指定中间件。php// ... 之前的代码 ...// 定义认证路由// 定义受保护的 RESTful 用户路由// 处理请求?通过实现一个简单的并支持 Bearer Token 认证(尤其是基于 JWT 的认证),可以显著提升自定义 PHP 框架的安全性和灵活性。以下是关键步骤的回顾:理解中间件与认证中间件:中间件在请求处理流程中扮演关键角色,认证中间件确保请求的合法性和安全性。
2025-03-26 09:27:27
1359
原创 5. 实现一个中间件
首先,定义一个中间件接口,确保所有中间件类都实现该接口。这有助于保持中间件的一致性和可扩展性。步骤:创建 Middleware 接口在目录下创建文件,并定义接口:php/*** 处理请求* @param array $params 路由参数* @return bool 返回 `true` 继续执行,`false` 中止执行*/?handle方法:接收路由参数,执行中间件逻辑。返回true表示请求可以继续执行,返回false则中止执行。
2025-03-25 10:05:25
1429
原创 26. 模板方法模式
模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个操作中的算法骨架,将一些步骤延迟到子类中。模板方法使得子类可以不改变算法结构的情况下,重新定义算法的某些特定步骤。关键点:算法骨架:在抽象类中定义算法的结构和步骤。步骤重定义:子类可以重写抽象类中定义的某些步骤,实现特定的行为。控制反转:抽象类控制算法的执行顺序,子类仅负责实现具体步骤。
2025-03-24 10:06:56
1210
原创 25. 策略模式
策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。通过引入策略模式,可以在不修改客户端代码的情况下,动态地更改对象的行为。关键点:算法封装:将不同的算法封装到独立的策略类中。互换性:策略类可以相互替换,客户端可以根据需要选择使用哪种策略。独立性:策略类独立于使用它们的客户端,符合开闭原则。
2025-03-21 09:52:15
1401
原创 5.工厂方法模式、简单工厂模式与抽象工厂模式的对比
通过一系列问题的引导,我们逐步揭示了简单工厂模式、工厂方法模式和抽象工厂模式的核心概念、优缺点以及适用场景。三种工厂模式各有千秋,它们都在不同的场景下发挥着重要作用。通过以上对比,我们可以得出以下结论:简单工厂模式:通过一个工厂类根据不同的参数创建不同的对象。适合产品种类较少的场景,简单易懂,灵活性较差。工厂方法模式:通过工厂接口让子类决定实例化哪种具体产品。适合产品种类较多且每个产品的创建逻辑不同的场景,增加了灵活性和扩展性。抽象工厂模式:适用于需要创建一系列相关产品的场景。
2025-03-20 09:56:46
1060
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人