自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 一篇文章让你实现前端JS 、 Golang 、 Python如何接入DeepSeek大模型实现自己的AI

本文将通过三种技术栈实现与DeepSeek大模型的对话交互,提供可直接运行的代码示例及详细注释。

2025-02-23 18:23:57 1472 1

原创 Three.js轮廓线、边框线、选中效果实现的几种实现方法以及性能评估

原理:在片元着色器中检测深度变化优点:极致性能优化潜力缺点:实现复杂度高// 顶点着色器// 片元着色器。

2025-02-23 18:05:08 412

原创 Go语言泛型编程:从原理到实践的全方位解析

泛型编程是一种编程范式,允许开发者编写独立于具体类型的代码。Go语言在2022年发布的1.18版本中正式引入泛型支持,结束了长达十年的类型系统演进历程。Go泛型的引入标志着语言成熟度的重要提升。在实际工程实践中:提升代码复用率:标准库的container/list等包可被泛型实现替代增强类型安全性:消除interface{}的运行时风险促进生态发展:催生更多高质量泛型库(如lo、samber等)未来演进方向可能包括:改进类型推导算法支持方法级别的泛型参数优化编译器的泛型代码生成策略。

2025-02-15 13:24:57 529

原创 深度求索(DeepSeek):下一代智能引擎的技术突破与生活赋能

深度求索(DeepSeek)是中国人工智能公司深度求索科技有限公司推出的核心产品,专注于实现AGI(通用人工智能)技术的突破。公司成立于2023年,其研发团队汇聚了全球顶尖的AI专家和工程师,致力于通过大模型技术解决复杂场景下的认知与推理问题。在OpenAI等国际巨头主导的AI竞赛中,DeepSeek以中文语境下的深度理解和高效推理能力形成差异化优势。从学生到工程师,从创业者到专业从业者,其强大的认知能力已成为数字化转型中的核心智能基础设施。案例:上海律所使用定制模型后,合同审查效率提升400%

2025-02-15 13:17:06 1553

原创 Cesium 离线加载瓦片图

在一些特定的应用场景中,如军事、科研、野外勘探等,网络环境可能受限,这就需要 Cesium 能够离线加载瓦片图来实现地理信息的可视化展示。本文将详细介绍 Cesium 离线加载瓦片图的原理、步骤以及一个可直接运行的案例。

2025-02-09 19:32:12 761

原创 Go语言构建微服务:从入门到实战

Go协程轻松应对高并发场景编译部署简单,适合容器化环境丰富的生态(Go Kit, Gin, gRPC等)分布式事务管理服务网格集成(Istio)版本兼容性管理服务无服务器化(Serverless)自动扩缩容(Kubernetes HPA)基于WebAssembly的插件体系通过本文的案例实践可以看到,Go语言为微服务开发提供了简洁高效的解决方案。随着云原生技术的演进,Go在服务网格、Serverless等新兴领域将继续发挥重要作用。

2025-02-09 19:21:57 1345

原创 JavaScript 高阶

介绍 10 个高级 JavaScript 技巧,包括解构赋值、Currying、防抖与节流、记忆化、代理对象、生成器、控制台使用、结构化克隆、自执行函数和标记模板字符串,旨在提高开发效率和代码质量。用这些不太为人知的 JavaScript 技巧提升你的编程技能。

2024-12-09 20:03:00 743

原创 快捷构建AI大模型,源码自取可直接运行

和实现一个基于kimi(Moonshot 月之暗大模型)的AI工具:前端界面比较容易,只需要简单的额css + js即可,本文使用vue作为作为demo。:我java很垃圾,写不出好的代码,所以后端只能用koa代替,实现接口调用即可。:为了实现前后端的数据交互,完成AI即时问答功能,我采用进行通信。:要实现AI问答,核心就是需要使用现有的AI大模型。比如OpenAI 的字节跳动的豆包大模型、Kimi的月之暗Moonshot模型等等。

2024-12-09 19:57:50 1371

原创 前端如何优化页面中的大量任务

直奔主题,如果页面中有100万个任务需要执行,怎么保证页面不卡顿?

2024-11-03 12:06:59 1181

原创 Ts高级篇:深入讲解Ts最难懂的高级类型和玩法

类型保护允许我们在运行时检查以确保在某个作用域里的类型。通过定义一个函数,其返回值是一个类型谓词,可以实现类型保护。pet.swim();isFish函数作为一个类型保护,它检查pet是否为Fish类型,并在之后的代码中确保pet的类型为Fish。

2024-10-23 15:21:07 1220

原创 Go中的指针指向指针(双指针)

Go编程语言中的指针是一个变量,用于存储另一个变量的内存地址。指针是一个特殊的变量,因此它甚至可以指向任何类型的变量。基本上,这看起来像是一个指针链。当我们定义一个指向指针的指针时,第一个指针将用于存储第二个指针的地址。这个概念有时被称为。双指针是一种常用的算法技巧,它通过使用两个指针来遍历数据结构,从而在一次遍历中解决问题,避免使用额外的数据结构,从而降低时间复杂度和空间复杂度。双指针技巧通常用于解决链表和数组相关的问题,下面我们将详细介绍双指针的应用场景和举例用法。

2024-10-23 14:44:46 1078

原创 three.js 渲染调优,提升3d场景更逼真的渲染效果

我们渲染采用最为专业的ACES色调映射(也是UE里面默认的色调映射),也只有ACES支持虚幻功能,虚幻绽放亮度。再然后我们需要把色彩空间编码改成THREE.sRGBEncoding即可。在着色器中色值的提取与色彩的计算操作一般都是在线性空间。在webgl中,贴图或者颜色以srgb传入时,必须转换为线性空间。计算完输出后再将线性空间转为srgb空间。linear颜色空间:物理上的线性颜色空间,当计算机需要对sRGB像素运行图像处理算法时,一般会采用线性颜色空间计算。

2024-07-08 19:02:32 1526

原创 ChatGPT:流式数据输出的原理与SSE技术

ChatGPT的流式输出,指的是在与用户进行对话时,ChatGPT能够实时地、连续地输出文本内容,而不是等待整个回答完全生成后再一次性输出。这种流式输出的方式,使得ChatGPT的响应更加迅速,用户体验更加流畅。SSE,全称Server-Sent Events,是一种基于HTTP协议的服务器推送技术。它允许服务器主动向客户端发送数据和信息,实现了服务器到客户端的单向通信。ChatGPT的流式输出功能是一项具有重要意义的技术创新,它为用户提供了更加高效、智能的对话体验。

2024-07-08 18:35:33 1861

原创 React中的useCallback

是一个强大的Hook,用于优化React应用的性能,通过避免不必要的函数重新创建和子组件渲染。使用时,应合理选择依赖项,以确保函数在需要时更新。与useMemo相比,专注于函数记忆化,而useMemo则用于计算结果的记忆化。理解两者的区别和适用场景,可以帮助开发者更有效地优化React应用。useMemo和memo 介绍React中的useMemo和memo-优快云博客。

2024-07-07 21:58:59 1171

原创 React中的useMemo和memo

React是一个声明式的JavaScript库,用于构建用户界面。在开发过程中,性能优化是一个重要的方面。useMemo和memo是React提供的工具,用于帮助开发者避免不必要的渲染和计算,从而提升应用性能。

2024-07-07 21:53:02 1173 1

原创 快速构建验证码(canvas)

【代码】快速构建验证码(canvas)

2024-05-30 11:52:29 142

原创 前端需要了解的HTTP缓存知识

HTTP缓存是一种用于提高网站性能和减少带宽使用的技术。当用户访问一个网页时,浏览器会下载页面上的所有资源(如HTML、CSS、JavaScript等),这些资源会占用大量的带宽和时间。为了减少这些资源的加载时间,HTTP缓存机制被引入。缓存分为和两种,强缓存不能缓存地址栏访问的文件,协商缓存可以缓存地址栏访问的文件。

2024-05-19 16:32:00 1260

原创 关于vue3中使用cesium

此篇文章是描述关于在vue3中使用cesium的方法和教程;最早的时候关于vue中使用cesium是很混乱的,教程也很少只能挨个踩坑。最近个人又使用了一下,现在还是比较完善的。下面进入正题,希望对一些从事webGIS开发者有所帮助。

2024-05-19 16:11:12 1063

原创 TypeScript 中,泛型和接口之间有什么联系和区别?

在TypeScript中,泛型和接口是两种不同的概念,但它们可以一起使用来增强代码的类型安全性和灵活性。下面我们来探讨它们之间的联系和区别。类型安全性:泛型和接口都用于提高代码的类型安全性。通过使用泛型和接口,你可以在编译时捕捉到类型错误。可重用性:它们都可以提高代码的可重用性。泛型允许你定义可以操作多种类型的函数和类,而接口则可以定义一个对象的结构,这个结构可以被多种类型的类实现。组合使用:泛型可以与接口结合使用,创建出更加灵活和强大的抽象。例如,你可以定义一个泛型接口,它约束了实现类必须拥有的属性和方法

2024-05-05 13:02:39 909

原创 TypeScript 泛型:深入理解与应用

泛型是TypeScript的强大特性,它提供了一种定义和使用通用数据结构的方式。通过泛型,你可以编写更灵活、更安全、更可读的代码。理解并掌握泛型,对于任何TypeScript开发者来说都是至关重要的。希望这篇文章能帮助你更好地理解TypeScript泛型的使用和应用。如果你有任何问题或想要更深入的讨论,欢迎在评论区交流。(下一篇:在 TypeScript 中,泛型和接口之间有什么联系和区别?

2024-05-05 12:54:07 1082

原创 Web Workers 介绍

Web Workers 提供了一种在 Web 页面中执行后台任务的有效方式,它通过创建独立的线程来运行脚本,从而不会阻塞用户界面。通过使用 Web Workers,你可以提高网页的响应性,尤其是在处理复杂计算或长时间运行的任务时。然而,使用 Web Workers 也需要考虑线程间的通信开销,以及可能引入的复杂性。正确地管理 Workers 和线程间的通信对于构建高效的 Web 应用也是至关重要的。

2024-05-01 12:51:21 911 1

原创 前端之实现大文件上传的解决方案———断点续传

断点续传是一种在网络传输中提高效率和可靠性的技术,特别适用于大文件的上传和下载。文件分片:将大文件分割成多个小块,这允许并行上传和从中断处恢复。并行上传:通过同时上传多个文件块,可以提高整体的上传速度。校验和记录:每个文件块在上传前后都进行校验,以确保数据的完整性。同时,记录已成功上传的块,为断点续传提供依据。请求恢复:当传输中断时,客户端使用记录的信息请求从最后成功上传的块继续上传。服务器支持:服务器端需要能够接收分片数据,验证块的完整性,并支持断点续传的逻辑。

2024-05-01 12:41:06 3384 2

原创 Node.js 中的 RSA 加密、解密、签名与验证详解

RSA算法作为一种非对称加密技术,在保障数据传输安全方面发挥着重要作用。Node.js提供了内置的crypto模块和第三方库node-rsa,使得在Node.js环境中实现RSA加密、解密、签名和验证变得简单易行。开发者可以根据项目需求和环境选择合适的工具进行数据加密和安全保护。

2024-04-14 17:34:22 7117

原创 Node.js 并发控制

Node.js 的并发控制主要依赖于事件循环和非阻塞 I/O,通过使用 Promises、async/await 以及子线程等技术,可以有效地处理高并发场景。开发者应根据实际需求选择合适的并发解决方案,以提高应用程序的性能和响应速度。随着 Node.js 的不断发展,未来可能会出现更多高效的并发处理方案。扩展:使用cluster模块可以显著提高 Node.js 应用程序的并发处理能力,特别是在多核 CPU 服务器上。通过创建多个工作进程,你可以让每个核心都参与到请求处理中,从而提高整体的处理速度和效率。

2024-04-14 17:18:23 1534

原创 深入理解 Golang 中 New() 和 make() 的区别

new()new(T)用于分配内存并返回指向类型T零值的指针。它适用于所有可以被分配的类型。用于创建切片、映射和通道,并返回初始化后的实例。它不适用于所有类型,只适用于它支持的三种引用类型。new() 用于创建任意类型的变量,而 make() 专门用于创建引用类型的变量。new() 返回指向指定类型的零值的指针,而 make() 返回指定引用类型的初始化值。使用 new() 创建的变量设置为它们的零值,而使用 make() 创建的变量根据其类型进行初始化。

2024-04-12 22:09:55 1678 2

原创 从前端角度防范XSS攻击的策略与实践

防范XSS攻击是一个复杂的过程,需要开发者在前端开发中始终保持警惕。通过输入验证、输出编码、合理设置HTTP头部以及利用现代前端框架和库提供的安全特性,可以大大降低XSS攻击的风险。然而,安全是一个不断发展的领域,开发者应该持续关注最新的安全研究和最佳实践,以保护用户和数据安全。

2024-04-12 21:58:19 1422

原创 go 指针和内存分配

了解指针之前,先讲一下什么是变量。每当我们编写任何程序时,我们都需要在内存中存储一些数据/信息。数据存储在特定地址的存储器中。内存地址看起来像0xAFFFF(这是内存地址的十六进制表示)。现在,要访问数据,我们需要知道存储它的地址。我们可以跟踪存储与程序相关的数据的所有内存地址。但想象一下,记住所有内存地址并使用它们访问数据会有非常困难。这就是为什么引入变量。变量是一种占位符,用于引用计算机的内存地址,可理解为内存地址的标签。什么是指针指针是存储另一个变量的内存地址的变量。

2024-04-04 12:25:36 1323

原创 React之Diff 算法

在 React 中,通过 React.createElement 也能生成一个虚拟 DOM 节点(ReactElement)。在 React15 及以前,采用了递归的方式创建虚拟 DOM,递归过程是不能中断的。如果组件树的层级很深,递归会占用线程很多时间,造成卡顿。React16 将递归的无法中断的更新重构为异步的可中断更新,推出了新的 Fiber 架构。原本的 ReactElement 只有 children,在中断恢复时,无法找到其兄弟节点和父节点,无法从断点处继续完成渲染工作。

2024-04-04 12:17:33 1712

原创 Python中的__init__和__new__

__init__方法是一个初始化方法,用于在创建对象后初始化该对象的属性,而__new__方法用于创建对象。当我们在类中定义__new__和__init__方法时,Python 首先调用__new__方法来创建对象,然后调用__init__方法来初始化对象的属性。

2024-03-31 15:48:48 407

原创 Vue3之defineModel

defineModel是一个宏,所以不需要从vue中import导入,直接使用就可以了。这个宏可以用来声明一个双向绑定 prop,通过父组件的v-model来使用

2024-03-31 15:37:27 4869 1

原创 React高阶组件(HOC)

高阶组件不是组件,它是一个将某个组件转换成另一个组件的纯函数。高阶组件的主要作用是实现代码复用和逻辑抽象、对state和props进行抽象和操作、对组件进行细化(如添加生命周期)、实现渲染劫持等。在实际的业务场景中合理的使用高阶组件,可以提高开发效率和提升代码的可维护性。高阶组件的实用性使其频繁地被大量React.js相关的第三方库,如的connect方法、等所使用,了解高阶组件对我们理解各种React.js第三方库的原理很有帮助。高阶组件有两种实现方式,分别是属性代理和反向继承。

2024-03-24 23:41:34 1208 1

原创 前端并发控制

我们探讨了使用Promise,callback和RxJS的方式实现并发限制,每种方式中又介绍了三种代码思路,包括全部并发、分批并发以及限制并发。「全部并发」适用于需要将请求分批次处理的场景,简单易懂,但可能不是最高效的方法。「分批并发」在保持一定并发度的同时,避免同时发出过多的请求,适用于需要控制资源消耗的场景。「限制并发」则结合了并发的高效性和结果顺序的一致性,适用于对结果顺序有要求的并发请求处理。通过选择合适的方法,我们可以在保证性能的同时,满足不同场景下对并发控制的需求。

2024-03-24 23:30:48 1857

原创 HTML5 Web Worker之性能优化

Web Workers 是现代 Web 开发的一个基本特性,它允许开发人员将 CPU 密集型任务放到单独的线程中执行,从而提高应用的性能和响应能力。然而,在处理 Web Workers 时需要记住一些重要的限制和注意事项,例如无法访问 DOM 和数据类型之间传递的限制等。为了避免这些潜在问题,可以采用上面提到的策略,如使用异步方法并注意卸载的任务的复杂性。在未来,使用 Web Workers 进行多线程似乎仍然是提高 Web 应用程序性能和响应能力的重要技术。

2024-03-10 12:54:32 1537

原创 input中文输入法导致的高频事件

发现在中文还没选中就触发了,现在希望没选中不要触发。我们要做的是从开始到结束中间的过程过滤掉,不触发搜索。

2024-03-10 11:56:53 313

原创 给大家推荐一个好玩的前端动画,仿siri效果

【代码】给大家推荐一个好玩的前端动画,仿siri效果。

2024-03-03 00:16:31 982 1

原创 Mongodb基础(node.js版)

Mongodb是一个文档数据库,以文档形式存储数据,格式类似于JSON// 对应 students 集合// 用 Schema 定义数据规范name: {},}, {timestamps: true // 时间戳, 在插入、更新数据后将会加上相应的时间数据// 在每一条文档中加入 createdAt 和 updatedAt})// Model 对于 Collection本文只是把mongodb和node.js连接mongodb等基础操作进行了整理,能用在常用的一些场景中。

2024-03-03 00:07:46 1183

原创 node.js实现结合 RSA 和 AES 加密算法的消息交换加密传输&深入理解 node 中的 crypto 加密模块

本文主要介绍了结合使用对称加密算法(AES)和非对称加密算法(RSA)对消息交换双方消息加密传输的典型方案以及从简单的 hash 算法,到对称加密,最后到非对称加密和签名,都有个大致的了解。后续我们也会对 node 的其他模块进行深入的理解。文章中使用 nodejs 代码演示了主要流程的实现方式。在基于的浏览器/服务器(B/S)的服务中,浏览器端没有nodejs接口能力,可借助第三方库crypto-jsjsencrypt等提供的 API 实现相关加密和解密算法。

2024-03-02 23:42:59 1712

原创 JS的高级用法

在本文中,我们介绍了一些JavaScript的高级知识点,如高级数据结构和算法、函数式编程、异步编程和面向对象编程。我们还提供了一些代码示例和实战案例,让掘友们更好地理解和掌握这些技术。

2024-02-17 15:44:11 1110

原创 分享几个JS 工具函数

return +year + "年" + (month + 1) + "月" + date + "日 " + hour + ":" + miu + ":" + sec;Day.js 是一个仅 2kb 大小的轻量级 JavaScript 时间日期处理库,下载、解析和执行的JavaScript更少,为代码留下更多的时间。// 判断数据是基本数据类型的情况和函数的情况。//正则对象直接返回一个新的正则对象。// 日期对象直接返回一个新的日期对象。// 获取对象所有自身属性的描述。// 判断数据是引用类型的情况。

2024-02-17 15:36:47 996

原创 前端常见的设计模式

js复制代码// 需求:新员工入职,按照规定流程,进行相关培训和办理好员工相关资料init() {// 初始化员工信息// 创建员工名片// 入职培训// 训后测试。

2024-02-16 14:00:19 1988

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除