编译器:类型系统的架构设计

博主头像 类型系统是编译器内部最复杂、实现难度最高的模块。 类型系统负责分析变量类型、检测语义错误。 我花了半年时间研究整个类型系统的实现,现在整理一些研究成果,希望能对你有所帮助。 什么是类型 从最开始学编程时,书里就告诉我们,int 是一个内置类型,然后我们也可以通过 class 自定义类型,之后我们发现 ...

程序员必读的Prompt Engineering指南

博主头像 前言 你是否觉得AI生成的代码有时候“编译不通过”或者“逻辑奇怪”? 其实,这可能不是模型的问题,而是我们的 System.out.println("提问方式") 不对。 本文将带你从Java程序员的视角,深入浅出地掌握AI提示词工程(Prompt Engineering)。 通过类比Java核心概 ...

Condition底层机制剖析:多线程等待与通知机制

博主头像 概述 Condition 是一个多线程协调通信的工具类,可以让某些线程一起等待某个条件(condition),只有满足条件时,线程才会被唤醒。 在使用Lock之前,使用的最多的同步方式应该是synchronized关键字来实现同步方式了。配合Object的wait()、notify()系列方法可以实 ...

AI为什么会撒谎——一个律师被ChatGPT骗了

博主头像 这是 「AI是怎么回事」 系列的第 7 篇。我一直很好奇 AI 到底是怎么工作的,于是花了很长时间去拆这个东西——手机为什么换了发型还能认出你,ChatGPT 回答你的那三秒钟里究竟在算什么,AI 为什么能通过律师考试却会一本正经地撒谎。这个系列就是我的探索笔记,发现了很多有意思的东西,想分享给你。 ...

[拆解LangChain执行引擎]支持自然语言查询的长期存储

博主头像 Pregel的Checkpointer采用基于Checkpoint的持久化记录下一个以Thread ID标识的对话历史,这种基于会话的持久化属于短期存储。复杂的流程在运行的时候还需要跨越多个对话的长期甚至永久存储,这类存储被抽象成一个`BaseStore`类型,采用内存存储的`InMemorySto... ...

使用语义化版本管理工程:告别版本混乱

博主头像 在嵌入式开发中,固件与硬件强耦合、发布周期长、多版本并行维护,混乱的版本管理会显著增加调试成本与风险。Semantic Versioning 2.0.0(语义化版本,简称 SemVer) 正是解决此问题的规范。它通过版本号直观表达代码变更的含义,让开发者、测试与硬件工程师都能快速判断兼容性。 ...

搭建一套.net下能落地的飞书考勤系统

博主头像 去年给公司做 HR 系统选型,最终选择了飞书考勤。但用了两个月后发现——原生功能再强,也架不住企业那些奇奇怪怪的业务规则。 比如:我们公司的请假审批要过三级(直属领导→部门负责人→HR),但飞书考勤的审批流只支持两级。还有,我们的薪资系统需要实时同步考勤数据做工资计算,但飞书没有开放这种级别的 AP ...

AI Compose Commit:用 AI 智能重构 Git 提交工作流

博主头像 AI Compose Commit:用 AI 智能重构 Git 提交工作流 Introduction 在软件开发过程中,提交代码是程序员每天都要面对的日常工作。可是你有没有经历过这样的场景:一天工作结束后,打开 Git 看到几十个未暂存的修改文件,却不知道该如何将它们组织成合理的提交? 传统的方式是 ...

题解: QOJ #7324. Eulerian Orientation

博主头像 题解: QOJ #7324. Eulerian Orientation 感觉比较牛的题,可能是我比较菜,学习了官解才学会。 题意 给定一个 \(n\) 个顶点、\(m\) 条边的无向图(顶点编号 \(1 \sim n\))。初始所有边都是蓝色。现在考虑所有 \(2^m\) 种给边染红/蓝的方案。对每 ...

搭建OpenClaw实现钉钉 AI 员工自动化 (一)

博主头像 一 . 概述 **OpenClaw**(原 Moltbot/Clawdbot)是阿里云生态下的一款轻量级 AI 自动化框架,旨在帮助开发者快速将大语言模型(LLM)能力接入钉钉,打造可 7×24 小时在线的"AI 员工”。 本章介绍云端搭建OpenClaw,链接钉钉实现AI自动化 二. 前置准备 在 ...

.NET 本地Db数据库-技术方案选型

博主头像 公司现有项目使用了LiteDB作为本地数据存储,但每次开机有较高的概率读取阻塞。 因为死锁或者损坏导致的阻塞问题,目前只能设置超时。在db读取超时后,部分情况可以删除文件、重建db解决,也有无法删除db文件的情况。 导致的技术债务造成了非常多的冗余维护工作量,需要基于常用的数据库及使用方式,重新做个 ...

为什么 90% 的 AI 开发项目都死在了“提示词工程”的幻觉里?

博主头像 作为一个在 C++/Java 屎山里摸爬滚打了十多年的架构师和开发者,现在已经沦落到为AI打工。但是AI编程用得越多,就越能发现AI编程的局限和问题,哪怕是用最新的编程模型,也是同样的。这时我就在思考一个问题:如果 LLM 的上下文已经到了 128K 甚至 1M,为什么我们依然很难让它写出一个工业级... ...

Heap(堆)基础知识与UAF及Fastbin attck

博主头像 堆的介绍 堆是一种动态内存分配的区域,区别于栈 栈是自动编译器自动分配和释放的,堆是程序员自行分配和释放的(一般没释放在程序结束系统也会自动释放) 栈是由高到低增长的并且不可分割,增长方式是通过rsp的移动,而堆是由低到高并是可分隔的,并且除了释放后的合并之外不会自行增长,分配方式是通过malloc ...

华为首次发布智能体编程平台“码道”:不是拼生成量,而是在百万行 Java、长周期维护与高可靠中运行

博主头像 本文分享自华为云社区《华为首次发布智能体编程平台“码道”:不是拼生成量,而是在百万行 Java、长周期维护与高可靠中运行》 作者:王亚伟 2026 年,AI编程已成为行业标配。据统计,全球超过 40% 的代码已由 AI 生成或辅助完成。然而,在研发华为云码道(CodeArts)代码智能体的过程中,我 ...

<1···404142···100>