首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
ECMS二次开发实战:从墨鱼部落格笔记到可复现方案
📅 2026/10/9 19:42:13
✍️ 爱科研究院
👁 阅读 3,247
1. 从“墨鱼部落格”看ECMS开发笔记的实战价值第一次看到“墨鱼部落格-大量ECMS开发笔记值得学习”这个标题我脑子里蹦出来的第一个念头是这又是一个被名字耽误的宝藏站点。很多做Web开发的朋友尤其是刚入行一两年的总喜欢追新框架觉得老牌CMS系统没什么可学的。但真正在一线摸爬滚打过的人都知道能把一套ECMS企业内容管理系统吃透比你会写几个Vue组件要值钱得多。为什么因为ECMS背后是一整套关于数据建模、权限控制、模板引擎、缓存策略、附件管理的完整工程思维这些东西换到任何技术栈里都是通用的。“墨鱼部落格”这个站点从名字上看像是个人的技术博客但它的内容定位非常明确——大量围绕ECMS的开发笔记。我翻了不少类似的个人技术站点发现一个规律凡是能持续输出某个垂直领域笔记的博主往往是在实际项目里踩过足够多的坑才会把经验沉淀下来。这类内容的价值不在于教你“怎么安装”而在于告诉你“为什么这么设计”以及“出问题了怎么查”。ECMS这个领域尤其如此因为企业级内容管理系统的需求千变万化官方文档只能覆盖通用场景真正的难点都在定制开发和性能调优上。这篇文章适合谁看如果你正在用ECMS做二次开发或者你所在的项目需要一套能支撑多站点、多语言、复杂权限的内容管理后台那这些开发笔记就是你的捷径。如果你只是听说过ECMS但没实际用过也没关系我会从架构层面把它的核心机制拆开讲让你理解这类系统的设计哲学。哪怕你以后不用ECMS这些思路迁移到其他CMS或自研后台系统里照样管用。接下来我会围绕ECMS开发中最容易踩坑的几个方向结合“墨鱼部落格”这类笔记站点常见的知识组织方式把核心细节、实操要点和排查技巧一次讲透。2. ECMS核心架构与开发笔记的知识组织逻辑2.1 为什么ECMS的二次开发比想象中复杂很多人第一次接触ECMS以为它就是“后台填内容、前台出页面”的简单工具。真正上手做二次开发才发现事情远没有那么简单。ECMS的核心复杂度来自三个方面数据模型的灵活性、模板引擎的解析规则、以及权限体系的粒度。先说数据模型企业内容管理不是只有“文章”一种内容类型产品、案例、下载、图集、视频、招聘信息每种内容类型的字段结构都不一样。ECMS通常采用“主表副表自定义字段”的方式来存储主表放通用字段标题、发布时间、作者副表放特定模型的数据自定义字段则用序列化或独立字段表来存。这种设计的好处是扩展性强坏处是查询的时候经常需要多表关联写SQL稍不注意就会拖慢性能。模板引擎是另一个让人又爱又恨的东西。ECMS一般都有自己的标签体系比如[e:loop]、[e:if]这类语法前台页面通过标签来调用数据。这种设计让不懂PHP的编辑也能改模板但代价是标签的解析逻辑往往不透明。你写了一个循环标签里面嵌套了自定义字段调用结果页面空白这时候就得去翻源码看标签是怎么编译成PHP的。开发笔记里最有价值的部分往往就是这类“标签不生效”的排查记录。权限体系的粒度也是ECMS开发中的一大难点。企业级系统要求能控制到“某个用户只能编辑某个栏目的某几篇文章”这就涉及到角色、用户组、栏目权限、操作权限的多层映射。很多二次开发的需求最后都卡在权限判断上因为ECMS原生的权限模型可能不满足业务方的奇葩要求你得在不大改核心表结构的前提下做扩展。2.2 开发笔记应该记录什么从“墨鱼部落格”的内容分类说起一个高质量的ECMS开发笔记站点它的内容组织通常不是按“入门、进阶、高级”来分的而是按“问题域”来分。我观察过不少类似“墨鱼部落格”这样的技术博客发现它们的内容大致可以归为几类环境与部署类、数据模型与字段扩展类、模板标签与前端调用类、权限与工作流类、性能与缓存类、以及升级与迁移类。每一类下面都是具体的“踩坑记录”和“解决方案”而不是泛泛的概念介绍。环境与部署类的笔记重点在于记录不同服务器环境下的兼容性问题。比如PHP版本升级后ECMS的某个加密函数废弃了导致后台登录不了或者MySQL的sql_mode设置变了导致原来的插入语句报错。这类笔记的价值在于它帮你省去了在搜索引擎里大海捞针的时间。数据模型与字段扩展类的笔记核心是讲清楚“怎么在不破坏原有结构的前提下加字段”。ECMS通常支持在后台添加自定义字段但有些复杂需求比如“一个字段根据另一个字段的值动态显示不同选项”就需要改代码。笔记里会记录修改了哪些文件、加了什么钩子、以及升级时怎么保留这些修改。模板标签类的笔记是最多的因为前台展示的需求最善变。一个典型的笔记会这样写需求是“在列表页显示每篇文章的第一张缩略图”原生标签不支持于是写了一个自定义函数在模板里通过[e:loop]调用并附上完整的函数代码和调用示例。这种笔记的可复现性极强读者可以直接抄作业。权限与工作流类的笔记相对少一些但价值更高。因为这类需求往往涉及核心逻辑的改动博主需要把权限判断的流程图画出来再说明在哪个环节插入了自定义逻辑。性能与缓存类的笔记则是另一个极端内容可能很短但一句话就能点醒你比如“把某个标签的缓存时间从0改成3600首页加载从3秒降到200毫秒”。2.3 从笔记到实战如何建立自己的ECMS知识库看别人的开发笔记最怕的是“当时看懂了过两天又忘了”。我的经验是不要只收藏要建立自己的知识库。具体做法是每看完一篇有价值的笔记就用一句话总结它的核心问题然后附上关键代码片段和文件路径。比如“问题列表页调用自定义字段为空原因副表数据未关联解决在查询里加left join副表”。这样积累下来下次遇到类似问题搜关键词就能直接定位。另外ECMS的版本差异很大不同版本的表结构和标签语法可能完全不同。所以看笔记的时候一定要先确认版本号。如果笔记里没写版本那就看它提到的文件路径和函数名去官方源码里比对一下。我见过太多人拿着旧版本的教程在新版本上操作结果越搞越乱。建立知识库的时候也要按版本分类比如“ECMS 7.5 字段扩展笔记”、“ECMS 8.0 模板标签变更记录”。这样才不会张冠李戴。3. ECMS二次开发中最容易踩的五个坑及排查方法3.1 坑一自定义字段在列表页不显示这是ECMS二次开发里出现频率最高的问题没有之一。你在后台给某个内容模型加了自定义字段比如“产品价格”然后在内容页用[e:loop]调用发现能显示但到了列表页同样的标签却输出空白。新手遇到这种情况往往一头雾水以为是标签写错了反复改模板其实问题出在数据查询上。ECMS的列表页标签默认只查主表不查副表和自定义字段表。所以你要么在标签里加上table参数指定副表要么用sql方式直接写查询。但这里有个细节如果你用了sql方式标签的很多内置功能比如分页、筛选就用不了了。所以更稳妥的做法是先确认这个自定义字段存在哪张表里然后在标签里通过moretable参数关联副表。具体写法每个版本略有不同但思路是一样的让查询语句把副表带进来。排查的时候我习惯先打开ECMS的SQL调试模式把标签实际执行的SQL打印出来。一看就知道有没有关联副表。如果没有那就补上关联如果有但字段还是空那就检查字段名是否写错或者副表里是否真的有数据。还有一种情况是字段在后台存了但存的是序列化数据前台调用时需要先反序列化。这种就要写自定义函数来处理。注意修改标签查询之前先在测试环境操作并且备份数据库。直接在生产环境改SQL一旦写错轻则页面空白重则数据表锁死。3.2 坑二模板标签嵌套导致解析错误ECMS的模板标签是支持嵌套的比如在[e:loop]里面再写一个[e:loop]来调用关联内容。但嵌套层数多了之后解析器很容易出错。最常见的症状是页面只显示了一部分后面的内容全没了或者标签原样输出没有被解析。这时候你去查HTML源码会发现标签还在那里说明解析器根本没执行到那一步。造成这个问题的原因通常是标签的闭合不匹配。ECMS的标签有自闭合和成对闭合两种比如[e:loop]...[/e:loop]是成对的而[e:field]是自闭合的。如果你在成对标签里写了自闭合标签但忘了写结束标记解析器就会一直往下找直到找到下一个成对标签的结束标记结果把中间的内容全吞了。排查方法是把嵌套的标签一层层拆开先确保最内层的标签能单独运行再逐层往外加。每加一层就刷新页面看效果这样能快速定位是哪一层出了问题。另一个容易忽略的点是ECMS的标签解析是在PHP层面做的所以标签里的PHP代码不会被执行。如果你在标签里写了?php echo $var; ?它只会原样输出。正确的做法是用ECMS提供的变量标签比如[e:var]或者把逻辑写到自定义函数里然后在标签里调用函数。3.3 坑三权限判断失效导致越权访问企业级ECMS最怕的就是权限漏洞。你明明在后台设置了某个用户只能管理“新闻”栏目结果他通过直接访问URL能编辑“产品”栏目的内容。这种问题在二次开发中特别常见因为很多开发者在写自定义功能时只在前端做了权限判断忘了在后端也加一层校验。ECMS原生的权限判断通常是在入口文件里做的比如admin/index.php会先检查用户是否登录、是否有权限访问当前模块。但如果你自己写了一个独立的PHP文件来处理某个操作比如“批量修改文章状态”这个文件可能没有引入权限检查逻辑那就等于开了一个后门。正确的做法是在任何自定义的入口文件里都先引入ECMS的公共初始化文件然后调用它的权限检查函数。具体函数名每个版本不同但一般都在include/common.inc.php或类似文件里定义。排查权限问题的时候我习惯用两个账号测试一个管理员账号一个受限账号。用受限账号登录后手动构造URL去访问那些它不该访问的页面。如果返回了正常内容而不是“无权限”提示那就说明权限判断有漏洞。另外还要检查AJAX接口很多越权问题都是通过AJAX请求触发的因为AJAX请求往往绕过了页面的权限检查。3.4 坑四缓存不更新导致内容“假死”ECMS为了提升性能通常会做多层缓存数据库查询缓存、模板编译缓存、页面静态化缓存。这些缓存在正常使用时是好事但在开发调试阶段就是噩梦。你明明改了模板刷新页面却还是旧样式你明明在后台更新了文章前台却还是旧内容。这时候不要怀疑人生先清缓存。清缓存也有讲究。ECMS的缓存一般分布在几个地方data/cache/目录下的文件缓存、runtime/目录下的编译缓存、以及数据库里的缓存表。有些版本还有内存缓存比如Redis或Memcached。如果你只清了文件缓存没清数据库缓存问题依旧。所以我的习惯是在开发阶段直接关闭所有缓存等上线前再打开。关闭方法通常是修改配置文件里的cache_open之类的开关或者把缓存时间设为0。还有一种“假死”是静态化导致的。ECMS可以把内容页生成纯HTML文件下次访问直接读HTML不走PHP。如果你更新了内容但没重新生成HTML前台就还是旧的。这时候要么手动重新生成要么在后台设置里把静态化关掉。开发笔记里经常有人问“为什么改了内容前台没变”十有八九就是静态化缓存没更新。3.5 坑五升级后自定义修改全部丢失ECMS的版本升级是个大工程因为升级程序通常会覆盖核心文件。如果你之前改过核心文件来实现某个功能升级后这些修改就全没了。更麻烦的是如果升级程序改了数据库结构而你之前也改过表结构那可能会冲突导致升级失败。避免这个坑的唯一办法是永远不要直接改核心文件。所有自定义逻辑都通过插件、钩子或独立文件来实现。ECMS一般都有插件机制允许你在不修改核心代码的情况下扩展功能。如果某个需求实在无法通过插件实现那就把修改点记录下来升级后手动重新应用。我见过一些团队他们维护了一个patches目录里面存放所有对核心文件的修改补丁每次升级后自动打补丁。虽然麻烦但比升级后系统崩溃要好得多。升级前一定要做完整备份包括数据库和文件。然后在测试环境先升级一遍确认所有自定义功能正常再上生产环境。升级过程中如果报错先看错误日志通常是某个表字段类型不匹配或者某个文件权限不对。不要盲目点“重试”那样可能会把数据库搞得更乱。4. 从开发笔记到可复现方案ECMS定制功能实操拆解4.1 需求场景给内容模型增加“多图上传”字段假设我们要给“产品”模型增加一个“产品图集”字段允许编辑上传多张图片前台以轮播图形式展示。ECMS原生可能只支持单图上传所以需要二次开发。这个需求在开发笔记里很常见但很多笔记只写了“怎么加字段”没写“怎么在前台调用”和“怎么处理图片排序”。我把它拆成四步建字段、改表单、存数据、调前台。第一步建字段。在后台的内容模型管理里给“产品”模型添加一个字段字段名设为gallery类型选“文本域”或“多行文本”。为什么不选“图片”类型因为原生图片类型通常只存一张图的路径存多张图需要自己处理。文本域可以存JSON格式的图片路径数组灵活且容易解析。第二步改表单。后台的添加/编辑表单是模板文件控制的找到对应模型的表单模板在合适位置插入一个多图上传组件。这个组件可以用现成的JavaScript库来实现比如用input typefile multiple配合AJAX上传每上传一张图就把路径追加到一个隐藏的文本域里。表单提交时隐藏文本域的值就是JSON数组。第三步存数据。ECMS的表单提交后数据会经过过滤和入库。你需要确保gallery字段的值被正确保存。如果ECMS的入库逻辑对文本域做了转义那JSON里的引号可能会被转义成quot;导致前台解析失败。解决办法是在入库前用htmlspecialchars_decode还原或者改用base64编码存储。我一般倾向于存base64虽然占空间但省去了转义的麻烦。第四步调前台。在内容页模板里用[e:field namegallery]取出字段值然后用PHP的json_decode解析成数组再循环输出img标签。如果ECMS的模板标签不支持直接写PHP那就写一个自定义函数在函数里解析JSON并返回HTML字符串模板里调用这个函数即可。// 自定义函数示例解析图集字段并输出轮播图HTML function showGallery($jsonStr) { $images json_decode($jsonStr, true); if (empty($images)) return ; $html div classswiper-containerdiv classswiper-wrapper; foreach ($images as $img) { $html . div classswiper-slideimg src . $img . alt/div; } $html . /div/div; return $html; }提示图片路径建议存相对路径不要存完整URL。这样换域名或迁移服务器时不需要批量改数据库。4.2 需求场景实现栏目级别的文章置顶与排序ECMS默认的文章排序通常是按发布时间倒序但业务方往往要求“某个栏目下的文章可以手动置顶并且置顶文章按指定顺序排列”。这个需求看似简单但涉及到数据库字段扩展、后台交互、前台查询三个层面的改动。数据库层面需要在文章主表里加两个字段is_top是否置顶0或1和top_order置顶排序值数字越小越靠前。不要试图用发布时间来模拟置顶因为置顶文章的发布时间可能很旧但需要显示在最前面。加字段的时候要注意如果文章表数据量很大直接ALTER TABLE可能会锁表。稳妥的做法是先在从库上操作或者用在线DDL工具。后台交互层面需要在文章列表页加一个“置顶”按钮点击后把is_top设为1并弹出一个输入框让用户填排序值。这个按钮的实现方式取决于ECMS的后台架构如果是基于jQuery的那就写一个AJAX请求调用自定义的PHP接口来更新字段。接口里要做好权限校验防止越权操作。前台查询层面原来的文章列表标签需要改成按is_top DESC, top_order ASC, 发布时间 DESC排序。如果ECMS的标签支持orderby参数那直接改参数就行如果不支持那就得用sql方式自己写查询。自己写查询的时候要注意分页的处理因为ECMS的分页标签通常和它的查询逻辑绑定自己写SQL的话分页需要手动实现。-- 前台查询示例置顶优先然后按排序值最后按时间 SELECT * FROM ecms_article WHERE column_id 5 AND status 1 ORDER BY is_top DESC, top_order ASC, publish_time DESC LIMIT 0, 20;这个需求还有一个隐藏的坑当置顶文章被取消置顶时top_order字段应该重置为0或NULL否则下次再置顶时排序值可能冲突。我的做法是在取消置顶的接口里同时把top_order设为0。另外如果多个文章的top_order相同数据库的排序行为是不确定的所以最好在业务逻辑上保证同一栏目下的top_order不重复。4.3 需求场景跨栏目调用内容并自定义分页样式ECMS的标签通常只能调用当前栏目的内容但实际项目中经常需要“在首页调用新闻栏目的最新5条同时调用产品栏目的最新5条”。这种跨栏目调用如果每个栏目都写一个标签代码会很冗余。更好的做法是写一个通用的自定义函数传入栏目ID和数量返回文章数组。这个函数的实现思路是先根据栏目ID查询文章表取出指定数量的文章然后返回数组。在模板里用[e:loop]或者自定义标签来遍历这个数组。但这里有个问题ECMS的模板标签通常是在编译阶段解析的而自定义函数是在运行阶段执行的。如果你在模板里直接写?php echo getArticles(5, 10); ?ECMS的模板引擎可能不会执行这段PHP。解决办法是使用ECMS提供的“PHP标签”或者“自定义标签”机制把函数注册成模板可调用的标签。分页样式是另一个痛点。ECMS原生的分页样式通常比较简单业务方往往要求“上一页、下一页、页码、跳转框”一应俱全还要适配移动端。我的做法是不用ECMS原生的分页标签而是自己写一个分页函数接收总记录数、每页数量、当前页码返回完整的HTML分页代码。然后在模板里调用这个函数。这样样式完全可控而且可以复用到不同的列表页。// 自定义分页函数示例 function customPage($total, $pageSize, $currentPage, $urlPattern) { $totalPages ceil($total / $pageSize); if ($totalPages 1) return ; $html div classpagination; // 上一页 if ($currentPage 1) { $html . a href . sprintf($urlPattern, $currentPage - 1) . 上一页/a; } // 页码 for ($i 1; $i $totalPages; $i) { $active $i $currentPage ? classactive : ; $html . a href . sprintf($urlPattern, $i) . . $active . . $i . /a; } // 下一页 if ($currentPage $totalPages) { $html . a href . sprintf($urlPattern, $currentPage 1) . 下一页/a; } $html . /div; return $html; }注意分页函数的URL模式要处理好因为ECMS可能使用伪静态URL里可能包含.html后缀。如果URL模式写错分页链接会404。建议在函数里先判断当前URL的格式再生成对应的链接。4.4 需求场景附件下载权限控制与防盗链企业ECMS经常需要管理内部文档要求“只有登录用户才能下载附件且下载链接不能被外站盗用”。这个需求涉及三个层面的防护登录校验、下载令牌、防盗链。登录校验是最基础的在附件下载的入口文件里先检查用户是否登录。ECMS通常有现成的登录检查函数直接调用即可。但要注意有些ECMS的登录检查是基于Session的如果用户禁用了CookieSession就不生效。这时候可以考虑用Token方式在下载链接里带上一个有时效性的Token。下载令牌的生成逻辑是用户点击下载时服务器生成一个Token包含用户ID、文件ID、过期时间然后用密钥签名。下载链接里带上这个Token服务器收到请求后验证签名和过期时间通过后才允许下载。这样即使链接被复制到外站过了有效期也无法使用。防盗链主要是通过HTTP的Referer头来判断。如果请求的Referer不是本站域名就拒绝下载。但Referer可以被伪造所以防盗链只能防君子不防小人。更可靠的做法是结合Token和IP限制比如Token里绑定用户IP换IP后Token失效。不过这样会影响用户体验比如用户从WiFi切换到4GIP变了下载就失败了。所以要根据实际安全需求来权衡。// 下载入口文件的权限校验示例 require_once include/common.inc.php; // 引入ECMS公共文件 if (!isLoggedIn()) { exit(请先登录); } $fileId intval($_GET[id]); $token $_GET[token] ?? ; if (!verifyToken($token, $fileId)) { exit(链接已过期或无效); } // 输出文件 $filePath getFilePath($fileId); if (file_exists($filePath)) { header(Content-Type: application/octet-stream); header(Content-Disposition: attachment; filename . basename($filePath) . ); readfile($filePath); }提示输出文件时不要用readfile直接读大文件因为会占用大量内存。大文件应该用fopenfread分块输出或者用X-Sendfile头让Web服务器来处理。5. ECMS开发笔记的常见问题速查与避坑心得5.1 常见问题速查表问题现象可能原因排查方法解决方案列表页自定义字段空白查询未关联副表开启SQL调试查看实际查询语句在标签里加moretable参数或改用sql方式模板标签原样输出标签闭合不匹配或解析器未执行查看HTML源码确认标签是否被解析检查成对标签的结束标记避免在标签里写PHP后台登录后跳回登录页Session或Cookie配置问题检查session.save_path和Cookie域名调整PHP配置确保Session可写内容更新后前台不变缓存或静态化未更新清空data/cache/和runtime/目录关闭缓存或手动重新生成静态页升级后功能失效核心文件被覆盖对比升级前后的文件差异使用插件机制避免改核心文件附件下载提示404文件路径错误或权限不足检查文件是否存在目录是否可读修正路径设置正确的文件权限分页链接跳转错误URL模式不匹配查看分页链接的实际URL根据伪静态规则调整URL生成逻辑图片上传失败目录权限或大小限制检查上传目录权限和PHP配置设置目录为可写调整upload_max_filesize5.2 避坑心得那些文档里不会写的经验第一个心得ECMS的官方文档通常只讲“怎么做”不讲“为什么”。比如它告诉你“在模板里用[e:loop]标签可以循环输出文章”但没告诉你这个标签在底层是怎么查数据库的。如果你不理解它的查询逻辑遇到性能问题就无从下手。我的建议是花点时间读一读ECMS的模板解析源码哪怕只看懂一半你对标签的理解也会上一个台阶。第二个心得不要迷信“最新版本”。ECMS的版本迭代有时候会引入新的Bug或者改变某些标签的行为。如果你正在维护一个稳定运行的项目不要轻易升级。如果非要升级先在测试环境跑一周把所有功能点都测一遍。我见过一个团队升级后因为一个不起眼的函数改名导致整个前台页面白屏排查了一整天才找到原因。第三个心得数据库索引是性能的生命线。ECMS的默认表结构可能只给主键加了索引但实际查询中经常用到的字段比如column_id、status、publish_time如果没有索引数据量一大查询就慢。我的做法是在开发阶段就打开慢查询日志把执行时间超过1秒的SQL都找出来然后针对性地加索引。加索引的时候要注意不要给每个字段都单独加索引那样插入和更新会变慢。最好是加联合索引把最常用的查询条件组合在一起。第四个心得备份比什么都重要。ECMS的二次开发经常涉及数据库结构变更一旦改错回滚很麻烦。我的习惯是每次改数据库之前先导出完整的SQL备份并且把备份文件命名为“日期_操作内容.sql”比如“20250115_添加图集字段.sql”。这样万一出问题可以快速定位到是哪个操作导致的并且只回滚那一步。第五个心得学会看错误日志。ECMS的错误日志通常在data/logs/或runtime/logs/目录下。很多问题比如“页面空白”在日志里都有详细的错误信息。不要一遇到问题就到处问人先看日志80%的问题日志里都有答案。如果日志里没有那就打开PHP的display_errors让错误直接显示在页面上。当然这只在开发环境做生产环境一定要关掉错误显示避免泄露敏感信息。5.3 如何持续产出高质量的ECMS开发笔记写开发笔记不是写日记不能什么都记。我的原则是只记录那些“下次遇到同样问题能直接复用”的内容。具体来说一篇合格的ECMS开发笔记应该包含五个要素问题描述、环境信息、排查过程、解决方案、以及验证结果。问题描述要具体不要写“页面报错”要写“访问产品列表页时第2页开始显示空白第1页正常”。环境信息要包括ECMS版本、PHP版本、MySQL版本、以及是否用了缓存。排查过程要写清楚你试了哪些方法哪些没用为什么没用。解决方案要给出完整的代码或配置不要只写“改一下配置文件”。验证结果要说明改完之后问题是否彻底解决有没有副作用。另外笔记的标题很重要。不要用“ECMS开发记录”这种模糊的标题要用“ECMS列表页自定义字段不显示的解决方法”这种能直接命中搜索关键词的标题。这样别人遇到同样问题时一搜就能找到你的笔记。如果你的笔记帮到了别人别人可能会在评论区补充新的情况这样你的笔记就变成了一个活的知识库。最后笔记要定期整理。ECMS的版本在变有些旧笔记可能已经过时了。我每隔半年会把自己写的笔记过一遍把过时的内容标记出来或者直接更新。这样既是对读者负责也是对自己知识体系的梳理。毕竟技术这东西不用就会忘整理笔记的过程本身就是一次复习。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/9 19:42:13
信创适配实战:国产数据库与Web容器改造避坑指南
2026/10/9 19:42:13
Linux下make与Makefile从入门到实战:原理、语法与排错指南
2026/10/9 19:42:13
Python爬虫实战:抓取网站图片区第一页所有图片
2026/10/9 20:28:01
Java开发者必看:despite与in spite of用法详解及英文写作实战
2026/10/9 20:28:01
Scala抽象成员:从语法概念到类型安全基石
2026/10/9 20:28:01
网卡适配器收发数据帧流程拆解:从 DMA 环到中断处理的逐层验证
2026/10/9 20:28:01
轻量级数据库管理工具实战:从连接配置到数据安全操作指南
2026/10/9 20:28:01
SWE-Bench 卷到 73.4% 之后,国产编程模型还能卷什么
2026/10/9 20:23:00
小红书 hi lab 开源 dots.vlm1 多模态大模型:对标 Gemini 2.5 Pro 的本地部署与 TaoToken 接入实践
2026/10/9 0:01:35
RISC-V裸机启动全流程:从复位向量到main函数的七步实现
2026/10/9 0:01:35
Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南
2026/10/9 0:01:35
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错
2026/10/8 5:02:14
Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化
2026/10/9 1:10:43
多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系
2026/10/9 3:31:49
hindsight:面向LLM应用的事后可观测性工程实践
2026/10/8 4:30:43
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/9 3:32:01
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/9 11:36:17
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)