- 博客(318)
- 资源 (18)
- 收藏
- 关注

原创 我的Blog导读
作为一个开发者,我渴望能够将我的技能和创造力应用于各种令人兴奋的项目中。我相信通过自己丰富的技术知识和灵活的思维,能够为合作伙伴带来独特而有价值的解决方案。
2009-03-03 21:50:00
1759
1
原创 当Node.js遇上版本冲突:一个开发者的踩坑与填坑实录
摘要:作者分享了一次解决Node.js版本冲突的经历。接手项目时发现.gitignore屏蔽了lock文件,导致npm安装时出现依赖冲突。使用Node 20版本时,node-sass和node-gyp出现兼容性问题,而同事使用的是Node 16.20.2。日志显示node-gyp的installVersion机制(版本9对应Node 10.x,11对应更高版本)导致构建失败。此次经历揭示了老旧项目对特定Node版本的依赖性和lock文件的重要性。
2025-06-20 00:01:37
2
原创 Rust中的交叉编译与vendered特性
Rust 语言在跨平台开发中,尤其是交叉编译时,常面临依赖问题。vendored 特性作为 Cargo 生态系统中的工具,能够有效解决这些问题,特别是在处理系统库如 OpenSSL 时。vendored 特性通过将依赖库打包到项目中,避免了对外部系统库的依赖,从而解决了交叉编译中的兼容性和版本一致性问题。例如,在 macOS 上交叉编译 Linux 目标时,启用 vendored 特性后,openssl crate 会从源代码编译 OpenSSL 并静态链接到项目中,避免了 OpenSSL 库找不到的问题。
2025-05-15 10:17:21
598
原创 从OpenMP中的不兼容,窥探AI应用开发中的并行编程
OpenMP(Open Multi-Processing),你可以把它想象成一个“多任务处理大师”。它是一种用于并行编程的应用程序接口(API),专门支持多平台共享内存的并行编程模型。简单来说,它能让你的代码在多核处理器上“分身”执行,从而大幅提升计算效率。
2025-05-05 17:02:25
610
原创 通过gap看margin和padding在布局中的应用
gap属性的出现,彻底改变了我们处理组件间距的方式。它让我们从繁琐的margin和padding设置中解放出来,转而采用更简洁、更灵活的间距控制方式。通过在设计组件时避免在外层包裹元素上添加padding,我们可以在flexbox中通过gap来精确控制视觉元素之间的间距,确保布局的一致性和美观性。当然,任何新技术或新思路都需要在实际项目中不断验证和调整。但无论如何,gap属性无疑为我们提供了一种更优雅的布局解决方案。
2025-04-26 20:59:03
675
原创 软件开发中的优化策略:从代码质量到设计模式的全面思考
优化是一个持续的过程,它不仅仅是针对代码的优化,更是对整个项目的优化。在优化之前,我们必须明确项目的代码质量底线,守住底线是优化的前提。对于没有违反底线但有悖于设计模式的代码,我们需要从边际效率的角度来评估是否需要优化。最后,我们还需要关注那些看不见的东西,如架构设计、模块划分等,确保项目的长期健康发展。优化不是一蹴而就的,它需要我们在项目的每个阶段都保持警惕和思考。只有这样,我们才能确保项目在未来的发展中,依然能够保持高效和稳定。
2025-04-11 22:29:39
661
1
原创 大模型与分词器:从理论到实践
随着人工智能技术的飞速发展,大规模预训练模型(大模型)和分词器(Tokenizer)在自然语言处理(NLP)任务中扮演着越来越重要的角色。本文将详细介绍大模型和分词器的分类与应用,并结合国人的Deepseek 模型,分析如何正确加载和使用这个模型。最后,我们将探讨如何从 Hugging Face 平台上获取特定大模型的信息,并找到对应的模型类和分词器。
2025-04-10 10:25:23
930
2
原创 如何正确使用 `apiStore` 进行 API 管理
在现代前端开发中,API 管理是一个非常重要的环节。apiStore是一个基于 Pinia 的状态管理工具,它可以帮助我们更高效地管理和调用 API。本文将详细介绍如何正确使用apiStore,包括如何创建 API 配置文件、在组件中使用apiStore以及如何配置通用的 API 配置。apiStore的源代码来至于,推荐通过fork vue3_project_base来获取。
2025-04-07 21:20:33
352
原创 极简设计的力量:用 `apiStore` 提升项目效率与稳定性
正如乔布斯所说:“简单比复杂更难,但最终的结果是值得的。apiStore正是基于这一理念,通过极简的设计,显著提升了项目的开发效率和稳定性。如果您正在寻找一种能够简化 API 调用、提高代码稳定性和开发效率的解决方案,apiStore无疑是您的最佳选择。希望本文对您有所帮助,欢迎与我们联系,了解更多关于apiStore的设计和应用案例。
2025-04-07 11:37:38
462
原创 Agent:大模型中的智能“函数”
在人工智能和自然语言处理领域,Agent可以被理解为一个智能的、自适应的任务执行单元。它通过大模型的能力,动态地理解和处理复杂的任务,而不仅仅是执行预定义的逻辑。自适应性和灵活性:Agent能够根据任务的具体需求,动态地调整其行为和决策路径,而不是遵循固定的流程。与大模型的交互:Agent通过与大模型进行交互,利用其强大的自然语言处理和推理能力,来完成复杂的任务。上下文感知:Agent能够理解并利用上下文信息,这使得它能够在不同的场景下执行不同的操作。
2025-03-22 21:10:18
461
1
原创 Chat-Driven Business:灵活交互的新范式
通过Chat-Driven Business,并不是对现有系统和模式的彻底颠覆,而是对复杂业务场景和多维度需求的有力补充。它基于现有的IT基础设施,如后端架构、前端框架,但在交互方式和用户体验上进行了创新。对话式交互将与传统的页面布局共存,形成一种混合式的交互模式,以满足不同用户和业务场景的需求。
2025-03-16 22:53:09
874
2
原创 “我”与AI:在已知与未知之间,寻找协作的真谛
AI的能力,源于“我”的定义。AI的局限,源于“我”的未知。未来的世界,不是AI取代人类,而是人类与AI的协作。在这样的协作中,“我”将不断探索未知,而AI将不断优化已知。这才是人类与AI的真正未来。须菩提!如来说有我者,即非有我,而凡夫之人以为有我。须菩提!凡夫者,如来说即非凡夫,是名凡夫。
2025-03-08 16:44:25
272
2
原创 0.0001元,同样的成本,能否获得同样的价值?AI的答案取决于你的问题
同样的成本0.0001元钱,我们可以得到一个笑话,得到一个解题思路,得到工作上需要的文案,得到技术上的虚拟产出。谁都可以出得起这0.0001元钱,但实际上大家并不会得到一样的结果。就像我们都生在同一片天空下,接受这同一颗太阳的照射,但还是各有不同。
2025-02-28 17:27:52
902
原创 从同步到异步:Vue 3 的异步更新策略与 `tick` 机制
通过这次经历,我们不仅解决了computed的异步更新问题,还深入理解了 Vue 3 的tick机制。Vue 3 的异步更新策略虽然复杂,但通过合理使用nextTick,我们可以确保在异步更新后获取到最新的数据。在日常开发中,我们应该更加关注 Vue 3 的异步更新策略,尤其是在使用computed和watch时,确保数据的更新和渲染顺序正确。通过这种方式,我们可以编写出更加高效和可靠的 Vue 3 代码。
2025-02-26 23:16:19
927
原创 模块化设计的力量:从「乐高积木」看组合式开发如何降低软件工程风险
在德国工业4.0体系中,模块化生产使宝马工厂能在一流水线上混产不同车型。同样,组合式设计正在引领软件工程的革新——通过构建可复用的功能模块,企业能像搭积木一样快速构建系统,在数字化转型中赢得敏捷优势。这种设计理念,正是应对VUCA时代的最佳技术策略。
2025-02-22 17:29:59
923
原创 从乐高积木到代码拼图:组合式设计在Vue3项目中的实践智慧
通过这个案例,我们见证了组合式设计如何让代码库像生物体般有机生长:每个模块都是可独立进化的"细胞",通过明确定义的接口与其他模块协作。这种设计不仅提升了开发效率,更重要的是构建了一个可持续发展的系统——既能快速响应当前需求,又能从容面对未来变化。对技术团队而言,这是提高交付质量的工程方法;对管理者来说,这是降低技术债务的战略投资。当代码的拼图艺术遇上软件工程的最佳实践,我们收获的不仅是优雅的代码,更是可预期的项目未来。
2025-02-22 17:14:16
1030
原创 从线性到非线性:如何打造稳定且可扩展的代码?
线性思想指的是那些可预测的、稳定的、结构化的逻辑。这些部分通常可以被抽象为框架或工具函数,因为它们的行为是明确且一致的。可枚举:逻辑可以被分解为一系列有序的步骤。可抽象:可以通过工具函数或框架来统一处理。可预测:结果和行为是稳定的,不依赖外部状态。通过将线性部分抽象为框架,并将非线性部分封装在独立的组件中,我们可以在保持代码可维护性的同时,灵活应对复杂的需求变化。这种设计思想不仅适用于 Vue3 项目,也可以推广到其他软件框架和系统中。线性思想:适用于那些可预测的、稳定的、结构化的逻辑(如api和。
2025-02-21 09:24:37
985
原创 浅谈领域设计:如何从工作中提炼领域知识,为行业标准添砖加瓦
领域设计(Domain-Driven Design, DDD)是一种软件开发方法论,它的核心思想是将业务逻辑和领域知识显式地体现在代码中。简单来说,领域设计就是通过深入理解业务需求,将复杂的业务规则和流程抽象成可复用的模型,从而让代码更贴近业务,更易于维护和扩展。举个例子,如果你在开发一个电商平台,领域设计会帮助你将“订单管理”、“库存管理”等业务逻辑封装成独立的模块,而不是将它们分散在项目代码的各个角落。以一个普通的前端项目为例。
2025-02-18 14:33:01
546
原创 为什么你需要「AI之友」?—— 让AI对话成为可沉淀的智慧
在这个人人对话AI的时代,我们常面临这样的问题:宝贵的AI回答散落在不同平台,重要知识转瞬即逝,团队经验难以共享… 而这一切,只需一个命令行工具可能就能解决!
2025-02-17 20:59:17
470
原创 《从零开始:适合独立开发者的12个低门槛创业方向》
这些领域通常对专业知识的要求较低,且市场需求广泛,适合独立开发者通过低代码平台快速开发和推广产品。你可以选择一个你感兴趣或熟悉的领域,深入研究其需求,开发标准化的工具或服务,逐步积累客户和经验。
2025-02-17 17:00:10
665
原创 框架与代码的形状
作为一个代码的设计者,我之前讨论过代码的形状,从“名字”出发,进行讨论。从比喻的角度来看,名字似代码的血和肉,而框架则似代码的骨架。猎豹的骨架结构使其能够快速奔跑,相比之下,大象的骨架结构则显得厚重而稳健。而即便我们已经有了Vue3这样的成熟且强大的显式框架,这个转换过程仍然没有结束。技术的进步是永无止境的,随着Web应用的不断发展和变化,我们对框架的需求也在不断变化。新的挑战和问题不断涌现,需要我们不断探索和创新。因此,隐式框架向显式框架的转换,或者说框架的不断演进和完善,是一个持续的过程。
2025-02-03 18:36:15
846
2
原创 Vue3组件重构实战:从Geeker-Admin拆解DataTable的最佳实践
在当前的开发实践中,我们选择了开源项目 Geeker-Admin 作为前端框架的二次开发基础。其内置的 ProTable.vue 组件虽然提供了一定程度的开箱即用性,但在实际业务场景中逐渐暴露出设计上的局限性,尤其是其将 搜索条件表单 与 数据表格 高度耦合的实现方式,导致组件在复杂场景下的灵活性和复用性不足。
2025-01-22 15:51:34
1024
1
原创 代码设计的几个关注点
今天,在知乎上回答了一个关于写代码的问题。在这里转发一下。从上面关注点的顺序来看,我把设计模式和架构的设计放在了最后,这似乎有悖于常识。如果你正在做的是与之前相同的工作,并且不打算做出任何改变,那么你大概也不会关注代码本身了。从小处着手,上面的关注点是层层递进的,而这些关注点也不是我们凭空想象,它需要我们不断的重构代码。当第3个点都已经做得很好的时候,设计模式和自然就会浮现出来。之前写了两篇文章,也是和这个话题相关的。
2025-01-14 19:50:03
495
原创 代码的形状:重构的方向
当我们为变量、函数、类或模块取名时,如果名字是随意的、模糊的,那么这往往反映出我们对这段代码的逻辑理解还不够清晰。相反,一个随意的名字,获取不够精确的名字,会给代码维护增加心智负担,增加维护的难度。上面的这个common模块,之前也没有这么多的文件,也是一步一步的重构出来的。这也是我前面说的,“名字”的重要性,价值和可操作性远远胜于重构和系统架构的原因,因为,好的命名是重构和系统架构改进的前提。我讨论代码的形状,一个初衷是为了降低代码维护的心智负担,而要达到这一目的,其实也是要使代码更加符合于“理”。
2025-01-09 19:34:13
757
原创 如何面对微服务在部署和管理上的挑战
微服务因其灵活性和可扩展性而备受大型系统架构师的青睐,但是相对于一般的单体系统,微服务的部署和管理更具挑战性。
2024-04-05 22:42:15
620
原创 一次Postgres的实体表重构经历
通过这次实践,我深刻体会到了数据库实体表重构的重要性和挑战性。这个过程要谨慎操作,步步为营,多做接近于用户场景的测试,一定不要造成数据丢失(注意,是一定不要,因为一旦造成数据丢失,不但造成的影响很大,找回数据的成本也是很高昂的)。每一次困境,对我们来说都是一次成长的机会,这次也不会例外。2024.3.31重庆,渝北。
2024-03-31 18:32:24
648
原创 APIKit探索之旅:bug拦截
在软件系统的质量保证上,有多种方式,这次尝试是通过,在接口层面,对系统开发过程中可能产生的bug进行拦截。接口测试是软件开发中不可或缺的一环,它能够有效地检测出系统间数据传输的错误。个人认为,这种测试基于黑盒和白盒测试之间。
2024-03-26 08:37:59
643
原创 关于Devin,它只是人类历史的一个正常延续而已
近期,关于Devin的讨论无疑成为了科技界的热点话题。作为一款由初创公司Cognition AI研发的AI程序员,Devin凭借其惊人的“端到端解决成功率”和高效完成需求的能力,在各大社交媒体和科技论坛上引发了广泛的讨论。然而,在这场看似前所未有的技术革命中,我认为Devin的出现只不过是人类历史的一个正常延续而已。
2024-03-21 20:59:10
489
原创 在Rust中,探索word到pdf的转换
docx库通常虽然提供了一些抽象层,使得开发者可以在不了解Word文档内部复杂结构的情况下,也能读取和修改文档的基本内容,但是,如果我们需要处理更复杂的任务,比如修改特定样式的文本、处理文档的页眉页脚、或者处理文档的元数据等,那么对Word文档的内部结构有更深入的了解就会非常有帮助。别忘了,我们是要挑战这万分之几的出错率,对word文档的了解,应该是必须的。word到pdf的转换看起来已经成熟,但是在特定的业务场景下,现有的转换仍然有万分之几的出错率,这个数字,在苛刻的商业环境下,也是不能接受的。
2024-03-13 22:23:49
1896
原创 AI在商业逻辑应用中的革命性作用
在今天的商业环境中,我们面临着一系列复杂且瞬息万变的问题。从最初的业务点子产生,到方案的落地实施,每一个环节都充满了不确定性。传统的商业逻辑构建方式,往往耗时耗力,而且容易因为人的主观因素导致效率低下或偏离初衷。然而,随着人工智能(AI)的快速发展,它在商业逻辑应用中的作用日益凸显,为我们提供了一个全新的视角和解决方案。
2024-03-13 08:13:16
539
原创 浅浅的了解 autoconf:当开源项目不再自带 configure 文件
在开源软件的世界里,开发者可以自己编译和安装需要的组件,这也是我喜欢开源项目的原因之一。然而,就在昨天,当我尝试编译一个颇具吸引力的开源项目时,我意外地发现该项目并没有包含通常所见的configure脚本
2024-03-10 16:13:19
632
1
原创 重构笔记系统:Docker Compose在微服务架构中的应用与优化
在我的笔记系统中,我使用Docker Compose将各个微服务编排在一起,形成了一个完整的应用程序。优化是一个持续的过程,我将继续关注最佳实践和技术发展,以进一步提升系统的稳定性、性能和安全性。的开发是基于微服务的思想,但是在服务的配置和编排上感觉还是不太合理,具体来说,在开发上的配置和在生产上的配置差别太大。因此,我在周末重构了项目结构和docker-compose.yml,本文将分享我在这一过程中的经验,并探讨如何进一步优化基于Docker Compose的微服务架构。请关注我,不要错过更新哟。
2024-03-04 08:52:13
974
原创 AI模型训练的初步整理
回到我之前博客中提到的笔记系统,我打算使用增量学习的模型,构建自己的知识库。当笔记数据更新时,会有队列任务去提取笔记数据,对笔记数据进行清洗,然后提取特征,生成向量数据,然后再进行模型训练…这通常是最直接的方法,但也可能非常耗时,尤其是在数据集很大或模型很复杂的情况下。欢迎大家留言区交流。
2024-02-23 23:22:49
768
1
原创 Rust-AI todo list 开发体验
如果你稍微留意一下todo list v0.0.3的代码,你会发现它是比较臃肿的,因为,这个版本只是通过组装AI写出来的代码,完成了功能的开发。说“能”,我想不用我说,很早就有人用AI生成正则表达式的相关功能代码,从这个角度来说,AI 已经替代了程序员的工作了。
2024-02-07 16:39:08
1519
原创 在Vue的模块开发中使用GPT的体验及总结
我这一周都在忙着实现一个页面,这个页面是通过vue基于element-ui来实现的。在这个过程中,我把页面拆分成多个组件,而组件的生成是通过Chat-GPT3来实现的。
2024-01-27 22:33:09
883
2
原创 又聊代码重构
只有开发者对代码的不断觉察和理解,才会产生重构代码的念头。因此,驱动重构的应该是开发者本身的认知,而不是线上产品的反馈或者测试的反馈。以上面的代码为例,对属性名称的重构/修改,也是基于对代码的察觉。之前的命名在当前的业务理解上下文中过于模糊,甚至还有歧义。导致这种现象的原因并不是因为我之前对这些属性的命名过于草率,而是因为之前我还没确定生成的代码中要使用vue的mixins技术。为什么我要用觉知这个词呢,因为就算我不修改上面的命名,就现阶段来说,代码也是能够正确运行的。
2024-01-19 23:17:26
475
3
原创 staging-数据管道-处理原则的体验
在数据管道中,staging指的是将数据从源系统移动到目标系统之前的中间步骤。在staging过程中,数据会经过一系列的转换和处理,以确保数据的质量和准确性。staging可以包括数据清洗、格式转换、数据合并等操作,以便最终将数据加载到目标系统中。这里面既有函数式编程的思路,也有系统数据流分析的影子。而今天在这个项目的代码重构中,再次体验到了这个原则。实际上,在我之前设计的bisheng-cli的项目中也成功使用了这个原则,只是现在对这个原则的体验更加强烈。
2024-01-17 17:43:19
471
原创 AI协助编程在Rust学习中的个人体验
我说的体验感不好,不是在于AI的回答结果的正确率,而在于我发现我问过多次类似于“Rust中如何使用正则表达式”之类的问题。这也是我不断向我的开源项目。虽然AI在编程中涉及的方面有很多,但我在Rust的学习和使用中,主要通过AI来生成代码,因此,我的体验也主要围绕代码的生成和使用上来阐述。当前AI在编程开发方面的使用越来越广泛,我在Rust的学习中,也刻意加重了对AI的使用。在代码的生成上,随着使用的深入,我提的问题逐渐从之前的偏重功能到偏逻辑。当然,这只是我的个人想法,我也真诚的接受各位大神的意见和建议。
2024-01-16 08:49:59
849
原创 Rust-模式匹配:简洁、可读,完备
我使用Rust开发将近一年了,每次我读到Rust的核心概念中包含了“模式匹配”时,心里就会不由冷笑,因为我对模式匹配的理解仅限于对枚举值,Result和Option的简单处理,没有觉得它有好高级的地方。但是,最近AI给我提供的一个Rust的例子代码,着实把我惊艳到了。
2024-01-14 11:01:42
617
1
原创 笔记系统的部署架构
一个简单的全栈功能闭环基本完成。既然是开源,因此,这里有必要分享一下部署结构,希望能够获得小伙伴们的反馈。后期还会增加其它服务来实现笔记数据的处理。欢迎大家评论区讨论。note_book_api: 负责笔记系统数据处理的后端应用。api-gate: 负责路由和访问权限验证的后端应用。目前整个系统采用docker容器来部署。auth2: 负责用户登录和注册的后端应用。auth_app: 登录/注册的前端应用。web_app: 笔记系统的前端应用。请关注我,不要错过更新哟。
2024-01-12 08:58:18
643
Rest Restful 基于rocket服务搭建代码
2023-10-15
Rust Yew 前端+后端 源代码,帮助大家快速了解和掌握Rust Yew的SSR的前端开发和基于Rocket的后端开发
2023-09-21
C# 代码分析器 帮组分析代码
2008-12-15
C# 代码分析器 帮组分析代码
2008-12-16
Code Analyser 代码分析器
2008-12-21
Dnn权限修改器
2007-09-20
C# Code Analyser 1.2.1
2008-12-27
Code Analyser 1.1.3
2008-12-24
Dnn4.x修改工具
2007-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人