做后端这些年我见过两次“删代码”的事。第一次是很多年前某团队一位开发在被告知合同不续签的当天下午把自己负责的服务仓库权限清空、分支删了个干净第二天上午运维做例行巡检时发现构建全线飘红第二次是近两年某公司的A同学在离职面谈后情绪上头把本地项目目录整个格式化结果发现里面还躺着一份没推到远端的排查记录最后自己花了三天从聊天记录里一点点抠回来。这两件事的结局都不太体面前者被要求配合恢复并承担了相应责任后者纯粹是给自己添堵。所以这篇我想认真聊聊“被公司卸磨杀驴能不能删代码”这个话题——不是站在道德高地上喊口号而是把它拆成三件事代码到底归谁、删了到底有没有用、以及在被不公正对待的时候一个专业开发者真正该做的技术动作是什么。如果你正在气头上或者身边有人正准备这么干建议从头看完再做决定。1. 先把“删代码”这件事的性质说透1.1 你删的到底是什么物理删除和逻辑删除是两码事很多人脑子里的“删代码”画面感是选中文件夹按 ShiftDelete硬盘空间瞬间释放世界清净了。但在真实的生产环境里你几乎不可能触发“物理删除”。代码在绝大多数团队里至少存在四份本地工作副本、远端主仓库、某个开发者的个人 fork、以及构建流水线拉取后留下的缓存或制品。你在本地把目录删掉只影响第一份你在远端把分支删掉通常只是删掉一个指向某个提交对象的“指针”提交对象本身还在对象库里躺着等垃圾回收跑完才可能真正消失而这个周期往往以周甚至月计。这就是为什么很多人删完之后会有一种“好像没删干净”的直觉——直觉是对的。更关键的是删分支和删提交在版本控制里属于“逻辑删除”它留下的是可追溯的痕迹审计日志里明明白白写着谁在什么时间删了哪条分支reflog里还留着操作前后的哈希值。你以为的“抹除”在系统看来是一次带签名和带时间戳的写操作反而是最显眼的那种。1.2 为什么绝大多数“删库”其实删不掉我把常见的“删不掉”的原因归成四类理解了这四类你就会明白为什么这个动作在技术上毫无收益。第一类是多副本冗余。远端主仓库、CI 每次拉取的临时工作区、制品仓库里的构建产物、镜像仓库里打包好的镜像、甚至某些团队为了让部署更快而放在边缘节点上的静态资源包。这些副本的存在周期各不相同有的只活几小时有的活几年。要让它们全部失效你需要有权限并且确实执行了一整套清理流程而现实中绝大多数一线开发者并不具备这个权限范围。第二类是审计与不可变存储。主流代码托管平台和云上的对象存储基本都提供操作日志和版本控制能力。日志通常只增不改部分还配置了保留期策略对象存储的版本控制一旦开启删除操作只是打上一个删除标记历史版本仍然可以在保留期内回溯。换句话说你的操作被系统“记住”了而且这个“记住”是设计目标不是 bug。第三类是本地与离线的散落副本。同事的本机、外包方的交付包、某个已经交接出去的老项目目录、你三个月前为了排查线上问题而复制到临时机器上的一份快照。这部分是最难追回的但也恰恰是最没价值的——没人会从一份三周前的旧快照里恢复主干分支。第四类是人的记忆。这个说法听着虚但实际影响最大。一个模块的核心逻辑、某段诡异兼容代码的来龙去脉、某个开关为什么不能动这些东西往往只存在于人的脑子里。所以真正让团队头疼的从来不是“代码文件没了”而是“没人知道这段代码为什么这么写”。这一点后面讲交接文档时会重点展开。1.3 删代码的实际代价清单我把这个动作可能触发的后果整理成一张表你可以对着看一眼再决定要不要动手。后果维度具体表现影响时长技术层面流水线中断、构建失败、发布阻塞、线上回滚困难小时级到天级追溯层面操作日志、审计记录、删除痕迹可被完整还原长期留存协作层面同事被迫加班恢复团队信任一次性透支长期职业层面背景调查与口碑传播行业内圈子很小长期责任层面可能被要求配合恢复、赔偿直接损失、承担相应责任按具体情况这张表里我最想强调“协作层面”和“职业层面”。技术上恢复一个仓库可能只要半天但“这个人离职时删了代码”这句话会在小圈子里传很久。技术圈的人员流动其实很集中同一个方向的团队翻来覆去就那些人一次冲动换来的标签可能跟你好几年。至于责任层面不同地区的规则差异很大我不做具体判断只提醒一句在情绪最高涨的时候做不可逆的技术决策是性价比最低的选择。真有纠纷正确的路径是通过正式沟通渠道反映诉求、保留证据、必要时寻求专业意见而不是把自己的键盘当武器。2. 代码归属哪些是你的哪些是公司的2.1 职务成果与个人项目的边界怎么划“我写的代码凭什么不是我的”——这是情绪的核心。但把这个情绪拆开里面其实是两个不同的问题一个是“我付出了劳动成果的权益如何分配”另一个是“我能不能处置这份成果”。前者可以谈后者在绝大多数雇佣关系里答案很明确你在履职过程中、使用单位资源、围绕单位业务产出的代码其权益归属通常有明确约定处置权不在你手上。这不是替谁说话而是行业通用的基本规则——如果每个开发者都能随时收回自己写过的代码那任何一家做软件的组织都没法运转。但反过来“公司代码归公司”不等于“你什么都不能带走”。真正属于你的东西其实不少你的方法论、你的架构判断力、你在解决问题过程中形成的通用思路、你脱离具体业务背景后重新实现的技术方案、以及你个人的学习笔记和知识沉淀。这些东西的共同特点是不包含原单位的业务信息、不直接复制原单位的代码文本、不依赖原单位的私有资源。把这条线划清楚你既能保护好自己也不会踩到红线。2.2 一份归属判定的自查表下面这张表是我自己常用的判定方式遇到“这个东西我能不能带走/能不能用”的犹豫时逐条过一遍。判定问题倾向于“可带走”倾向于“不可带走”是否使用了单位设备与账号全程个人设备、个人账号用了单位电脑、单位仓库、单位云资源是否在工作时间内产出明确在业余时间、与工作无关在岗期间、围绕本职工作产出是否包含业务逻辑纯通用工具、算法思路、脚手架含业务规则、数据模型、客户信息是否可直接复制文本完全重写、结构不同直接拷贝源码文件或片段是否涉及未公开信息公开资料即可复现依赖内部文档、内部接口、内部数据这张表的价值不在于给你一个法律结论而在于帮你建立一种“默认谨慎”的判断习惯。实际执行中我建议的做法更保守一点凡是拿不准的一律不带。因为“带了不该带的”这个错误的成本远高于“少带了一点”的成本。你完全可以靠重写一份脱敏版本、把业务字段全换成假数据、把内部接口换成 mock来达到同样的展示或复用目的。2.3 开源贡献、副业项目与公司代码的物理隔离这条是我踩过坑之后才重视起来的。早年我在一个副业项目里用过一段自己写的工具函数后来发现那段代码的某一行和我在单位项目里写过的一行几乎一模一样——虽然逻辑简单到任何人都能写出来但这种“看起来像复制”的状态一旦被人拿来说事就很难解释。从那以后我给自己定了几条硬规矩执行下来成本很低但心里踏实很多。第一条个人项目用独立的身份体系。独立的邮箱、独立的代码托管账号、独立的设备或至少独立的用户目录。不要用单位邮箱注册任何个人仓库也不要把个人仓库的提交记录混进单位账号。第二条副业项目与本职业务不重叠。不碰同一业务领域、不使用公司的任何接口文档、不在工作时间推进。这一点不只是规避风险也是保护你的精力分配。第三条参与开源时注意贡献者协议。有些项目要求签署贡献者协议明确你贡献的代码可以用在该项目上如果你的贡献是在履职过程中产生的还需要确认单位是否允许。这块很容易忽略但一旦某个开源项目后来被商用追溯起来就很麻烦。第四条提交记录保持干净。个人仓库的 commit message 里不要出现内部系统名、内部项目代号、内部人员姓名。这一条特别小但特别实用——很多人是在这一步无意中泄露了不该出现的词。3. 被“卸磨杀驴”时的正确技术动作3.1 离职前 72 小时该留的痕、该做的事如果已经确定要走而且走的过程不太愉快我建议把注意力从“怎么报复”切换到“怎么让自己站得住”。这个切换不是认怂是把你有限的精力投到真正有价值的地方。具体动作我按优先级排一下。第一优先导出属于你的工作记录。这里说的不是代码是“你做了什么”的证明。最直接的方式是从版本库导出自己的提交记录注意只导元信息不导代码内容# 导出本人在某个仓库近一年的提交摘要作者名替换成你自己的提交署名 git log --authoryour-name --since1 year ago \ --prettyformat:%ad | %h | %s --dateshort my-commits.txt # 统计自己参与的文件范围与改动量用于说明职责边界 git log --authoryour-name --since1 year ago --name-only \ --prettyformat: | sort | uniq -c | sort -rn | head -50这两条命令产出的东西是“我确实做了这些事”的客观记录不含业务细节也不涉及代码文本后续无论是用于简历、用于沟通、还是用于复盘都足够。第二优先整理需求变更与沟通记录。很多纠纷的根源是“当初说好的”和“后来要求的”不一致。把关键的需求变更、排期调整、验收反馈整理成时间线比任何情绪化表达都有说服力。注意只整理与工作内容相关的部分个人信息和无关内容一律剔除。第三优先正常走交接流程。这一条听起来最“憋屈”但它是保护性最强的动作。你按流程完成交接、留下书面记录就等于给自己建立了一道清晰的边界之后出现的任何问题都能追溯到“交接时是什么状态、我交付了什么、对方接收了什么”。提示以上动作全部在你有权限访问的范围内进行导出的是你自己产出的元信息与工作记录不要导出代码文本、客户资料、内部文档。越界一步性质就变了。3.2 交接文档怎么写才既专业又自保交接文档是个很有意思的东西写得好它是你的护身符写得敷衍它是后人的雷区。我见过最优质的交接文档通常不写“这个模块用了什么框架”这种百度能查到的东西而是写“为什么是这样”。下面是我常用的一份骨架你可以直接改改用。# 模块交接说明 ## 1. 职责范围 - 我负责的服务/模块清单含仓库地址与分支策略 - 上下游依赖方内部服务、外部接口、数据源 ## 2. 关键设计决策重点 - 决策点为什么选 A 方案而不是 B 方案 - 背景约束当时的性能要求、工期、历史包袱 - 如果重来一次会在哪里做不同选择 ## 3. 已知的坑与历史包袱 - 不能动的部分为什么不能动动了会怎样 - 临时方案哪个是临时方案为什么一直没还技术债 - 隐式依赖哪些地方依赖了未写进文档的约定 ## 4. 运维手册 - 部署流程、回滚流程、常见告警的处置方式 - 定时任务与数据同步的时间点 - 紧急联系人与升级路径 ## 5. 交接确认 - 接收人_______ 交接时间_______ - 已过事项文档 / 环境权限 / 待办清单 / 遗留问题这份骨架里第 2 节和第 3 节是最值钱的部分。因为代码本身在仓库里躺着谁都能读但“为什么这么写”“哪里不能碰”只能靠人交代。把这两节写扎实你不仅完成了专业交付也顺便把“我尽到了职责”这件事写进了白纸黑字。3.3 权限回收与账号交接的正确姿势权限这块是最容易出问题的因为它涉及两方你愿不愿意交以及对方记不记得收。我的做法是主动推动形成闭环。交接项具体动作确认方式代码仓库移交 owner 或 maintainer 权限截图 接收人回复确认云平台账号移除个人子账号保留操作记录由管理员出具回收确认密钥与令牌主动列出自己创建过的密钥清单由管理员统一轮换数据库权限撤销个人账号的读写权限记录撤销时间内部工具移交管理员角色群内书面确认文档空间移交目录所有者文档内注明交接人这里有个细节很多人忽略主动列出自己创建过的密钥和令牌清单。这件事既是专业也是自保。因为一旦你离职后某个密钥被滥用第一嫌疑必然是“最后一个持有它的人”。你主动把清单交出去、推动轮换等于把这条潜在的责任链切断了。我见过某团队在处理一次异常调用时第一反应就是排查离职人员遗留的令牌最后发现是另一个在职同事的本地配置泄露——但如果当时没人做轮换这个排查会走很多弯路被怀疑的人也会很难受。4. 保护自己成果的长期工程习惯4.1 日常留痕把“我做了什么”变成可检索的资产等到出事那天才开始整理证据一定来不及。真正有效的做法是把留痕变成日常习惯成本极低收益极高。第一个习惯是写清楚 commit message。不是每个提交都要写小作文但关键决策类的提交应该说明“为什么改”。我常用的格式是“动词 范围 原因”比如“重构订单校验逻辑拆分超长方法便于单测覆盖”。这种提交记录积累半年你自己回头看都能还原当时的思路更别说需要向别人说明工作内容的时候。第二个习惯是维护一份个人工作日志。不用很正式一个 Markdown 文件每周五行这周做了什么、遇到什么问题、怎么解决的、下周计划、有哪些需要协调的。这份东西的价值在于它记录的是“过程”而绩效评估、晋升答辩、乃至离职沟通最缺的恰恰是过程。很多人到了年底才发现自己一年干了什么完全想不起来就是因为只有代码没有叙事。第三个习惯是给关键决策留一个书面出口。方案选型、技术评审、架构调整凡是涉及“为什么这么定”的尽量在群里或文档里留一段话。口头共识在顺境时是默契在逆境时是空白。4.2 个人资产与公司资产的物理分仓这一条我在 2.3 提过这里展开讲具体怎么做因为它是最容易落地也最容易见效的隔离手段。目录层面个人设备上工作相关的东西统一放在一个目录下比如~/work/其余目录默认视为个人空间。这样在需要清理的时候边界非常清楚不会出现“手滑删错”或者“忘了里面有什么”的情况。账号层面浏览器用两个配置文件一个登录工作账号一个登录个人账号物理隔离 Cookie 和登录态。这一招看起来麻烦实际用一星期就习惯了而且能有效避免“用工作账号给个人仓库点了个 star”这种尴尬。配置层面如果你会在个人设备上跑公司项目的本地环境用独立的配置文件隔离个人偏好# 个人全局配置放在 ~/.gitconfig.personal # 工作仓库内单独指定身份避免个人提交混入 git config user.name your-work-name git config user.email your-work-email # 检查当前仓库实际生效的身份 git config --show-origin user.email--show-origin这个参数值得记住它能告诉你这个配置是从哪个文件读出来的排查“为什么提交署名不对”这类问题时特别省事。内容层面个人笔记里如果需要对工作内容做记录一律做脱敏处理——业务字段换成占位符、内部系统名换成代号、数据全部造假。做到这一步即使笔记被公开也不构成任何问题。4.3 谈离职、谈交接时的沟通边界技术人容易在这类沟通里吃亏因为我们习惯用“对错”来讨论问题而这类沟通的实质是“诉求的表达与交换”。我自己的经验是把握三条边界。第一条只谈事实不谈评价。说“我在某项目的某阶段承担了哪些工作、交付了什么”比说“公司不公平”有效得多。事实可验证评价只会引发对抗。第二条把诉求说具体。模糊的诉求没法回应具体的诉求才有讨论空间。这不是技巧是效率。第三条所有重要沟通留书面记录。面谈之后发一封邮件或一条消息做要点确认比如“今天我们沟通了 A、B、C 三点我的理解是……如有偏差请指正”。这个动作在职场里非常常见也完全正当它能避免后续的“我当时不是这个意思”。注意无论沟通结果如何都不要把“删代码”“删数据”“删文档”当作谈判筹码。一旦说出口或者做出来性质就从“劳动纠纷”变成了另一件事而且你原本占理的部分也会被抵消。5. 常见问题与踩坑实录5.1 高频问题速查表下面这些问题我在不同场合被问过很多次整理成表格方便对照。问题常见误解更稳妥的处理方式我写的代码离职时能删吗“我写的就归我”履职产出的成果处置权通常不在个人删除无技术收益且有风险删了远端分支是不是就没了“删了就干净了”提交对象仍在对象库操作日志可追溯回收周期长本地代码能不能带走“拷一份自己留存”含业务信息的代码不建议带走带走的是方法论不是文本能不能把项目传到个人仓库“私有仓库没人看见”私有不等于安全且违反约定改用脱敏重写版本交接文档能不能写简单点“反正我要走了”文档是自保材料写清楚“为什么”比写“是什么”重要被拖欠款项怎么办“不给钱就删库”走正式沟通与救济渠道保留证据寻求专业意见公司代码能不能用于面试展示“脱敏一下就行”展示思路与架构图不展示源码关键信息全部替换离职后还能不能提交 PR“顺手改个 bug”先确认是否有后续协作约定无约定则不碰这张表里我想多说一句“私有仓库”那条。很多人有个错觉觉得个人私有仓库就等于安全屋。实际上“私有”只是访问控制策略不是保密承诺而且一旦设备丢失、账号被盗、或者仓库被误设为公开后果就是不可控的。所以判断标准不该是“有没有人看见”而是“这段内容本来该不该出现在这里”。5.2 几个案例复盘案例一删分支的那位开发。前面提到的某团队那位开发删完分支第二天就被发现了——因为流水线每天早上定时构建构建失败告警直接发到了技术群里。运维从审计日志里查到操作记录前后不到二十分钟就定位到了人和时间点。最后是要求配合恢复、走了一遍正式流程人已经离职了还要回来处理非常消耗。这个案例的启示是现代工程体系的可观测性远高于大多数人的想象。你以为的隐蔽操作在日志里是最高亮的那一行。案例二格式化本地目录的A同学。他在离职面谈后情绪上头把本地项目目录整个格式化然后想起来里面有一份没推到远端的排查记录——那是他花了两天定位一个偶现问题留下的过程笔记。最后的解决办法是从聊天记录、终端历史、编辑器缓存里一点点拼回来花了三天。这个案例的启示是冲动的第一受害者往往是自己。你删掉的东西里总有一些是你还需要用的。案例三我自己的教训。早年我从一个项目里退出交接文档写得很“标准”——框架版本、部署命令、接口列表全都写了唯独没写“为什么某个定时任务设在凌晨三点半”。半年后接手的人为了调整这个时间点排查了两天才发现它跟另一个数据同步任务有先后依赖提前或延后都会导致数据不一致。后来他跟我吐槽我挺不好意思的。从那以后我写交接文档一定会单独开一节写“这些奇怪的地方为什么奇怪”。这件事让我明白交接的质量不取决于你写了多少而取决于你交代了多少别人猜不到的东西。5.3 一份可以照着做的避坑清单最后把上面所有内容压缩成一份清单你可以直接对照执行。情绪上头时不做任何不可逆的技术操作先离开键盘半小时。明确区分“我想出口气”和“我要解决问题”前者不产生任何正向收益。离职前导出自己的提交记录与工作日志只导元信息不导代码文本。交接文档重点写“为什么”尤其是那些看起来奇怪、不能随便动的地方。主动列出自己创建过的密钥与令牌推动统一轮换切断责任链。个人项目与工作项目在账号、设备目录、配置三个层面物理隔离。面试或作品集展示用脱敏重写的版本讲思路、讲架构、讲取舍不贴源码。重要沟通留书面要点确认避免“当初说好的”变成各说各话。有纠纷走正式渠道保留证据必要时咨询专业人士不自行加码。记住行业圈子很小你的技术口碑比一次情绪宣泄值钱得多。我个人在这些年的体会是真正保护你的从来不是“手里握着什么把柄”而是“你做过的事有记录、你交付的东西有交代、你的边界划得清楚”。删代码这个动作技术上删不干净责任上跑不掉职业上得不偿失情绪上也只是短暂痛快——性价比实在太低。与其把力气花在毁掉过去不如把它花在把交接做漂亮、把作品集整理干净、把下一段路铺平上。我见过几个离职时把交接文档写到让接手人专门发消息道谢的人后来他们在行业里的路都走得挺顺这事儿挺说明问题的。
企业数字化 ERP 产品动态
相关推荐
分布式系统中MySQL与Redis双写一致性解决方案 1. 双写一致性问题背景与挑战在分布式系统架构中,MySQL作为持久化存储层,Redis作为缓存层的组合已经成为行业标配。这种架构下最棘手的场景之一就是当数据需要同时写入这两个存储系统时,如何保证它们的数据一致性。我经历过多次生产环境事故&… · 2026/11/5 6:11:21
Unity UI擦除效果:RenderTexture与Shader实现刮刮卡 项目标题是「Unity UI擦除效果」,这本质上是在做「刮刮卡 / 手指擦除遮罩」这类交互。我会按从业者口吻写一篇完整博文,涵盖实现路线选型、坐标换算、双缓冲、线段距离场、Shader 编写、进度统计和踩坑表,主体保证在 5000 字以上。直接从正文… · 2026/11/5 6:11:21
Windows下Redis部署与优化全攻略 1. Redis在Windows环境下的完整部署指南Redis作为一款高性能的键值数据库,在Windows平台上的部署过程与Linux环境存在显著差异。本文将详细介绍从零开始完成Redis在Windows系统中的安装、配置到可视化管理工具使用的全流程,包含多个实际部署中容易忽略的… · 2026/11/5 6:11:21
【随笔1102】LangGraph 时间旅行 一、LangGraph是什么
顾名思义,就是一种适用于AI大模型运行的图结构。
你可以在图里声明节点(官方说是超级节点 Super Step)
节点也分为多种类型,比如Agent Node,调用大模型,按照提示词执行;还有… · 2026/11/5 7:58:54
否定之否定规律的底层本质| 赵杰 | 量子哲学 作者:赵杰清华大学硕士、微美全息云科技(NASDAQ:WIMI)董事长、微算法科技(NASDAQ:MLGO)董事长、育杰奖学金创始人一、爱子论核心公理(一切“肯定、否定、否定之否定”的量子本体根基… · 2026/11/5 7:57:53
jvm中的强软弱虚4种引用类型与gc的关系 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 7:57:53
小白程序员轻松入门大模型,AI大数据开发工程师进阶指南 本文深入剖析AI大数据开发工程师的核心能力与岗位需求,对比传统大数据工程师,指出Spark/Flink等基础技能已不再是优势。文章详细解析了三类典型岗位(业务型、模型导向型、AI数据基础设施工程师)的选拔逻辑,并总结了企业… · 2026/11/5 7:57:53
FHE层级 全同态加密的概念同态:密文计算的结果解密后,等于明文计算的结果。即 Dec(Enc(a)⊕Enc(b))ab全同态:支持任意深度的加法和乘法运算(不仅是单一操作,而且可以无限次组合)。第一层:密码学基础与底… · 2026/11/5 7:57:53
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
多智能体协作系统架构设计与实践优化 1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39
大模型系统性入门实战指南:从原理到部署微调的全链路路线 提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39
鸿蒙文件系统沙箱机制解析与开发实践 1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38