software-architecture - SKILL
name: software-architecturedescription: “Guide for quality focused software architecture. This skill should be used when users want to write code, design architecture, analyze code, in any case that relates to software development.”risk: criticalsource: communitydate_added: “2026-02-27”软件架构开发技能此技能为注重质量的软件开发和架构提供指导。它基于整洁架构Clean Architecture和领域驱动设计Domain Driven Design原则。代码风格规则通用原则提前返回模式尽可能使用提前返回而不是嵌套条件以提高可读性通过创建可复用的函数和模块来避免代码重复将过长的超过 80 行代码的组件和函数拆分为多个更小的组件和函数。如果它们在其他地方用不到就放在同一个文件中。但如果文件超过 200 行代码就应该拆分为多个文件。尽可能使用箭头函数而不是函数声明最佳实践库优先方法在编写自定义代码之前始终先寻找现有解决方案在 npm 中检查是否已有解决该问题的库评估现有的服务/SaaS 解决方案考虑使用第三方 API 实现常见功能使用库而不是自己编写工具函数或辅助函数。例如使用cockatiel而不是自己编写重试逻辑。当自定义代码确实合理时领域独有的特定业务逻辑有特殊要求的性能关键路径引入外部依赖显得大材小用时需要完全控制的安全敏感代码经过全面评估后现有解决方案仍不满足要求时架构与设计整洁架构与 DDD 原则遵循领域驱动设计和通用语言将领域实体与基础设施关注点分离保持业务逻辑独立于框架清晰定义用例并保持其隔离命名约定避免通用名称utils、helpers、common、shared使用领域特定名称OrderCalculator、UserAuthenticator、InvoiceGenerator遵循限界上下文命名模式每个模块应有一个清晰、单一的目的关注点分离不要将业务逻辑与 UI 组件混合不要让控制器直接包含数据库查询在上下文之间保持清晰的边界确保职责的正确分离应避免的反模式NIH非我发明综合症有 Auth0/Supabase 存在时不要自建认证不要编写自定义状态管理而不是使用 Redux/Zustand不要创建自定义表单验证而不是使用成熟的库糟糕的架构选择将业务逻辑与 UI 组件混合在控制器中直接进行数据库查询缺乏清晰关注点分离通用命名反模式包含 50 个无关函数的utils.js作为垃圾场的helpers/misc.js目的不明的common/shared.js记住每一行自定义代码都是一项需要维护、测试和文档化的负债代码质量使用带类型的 catch 块进行适当的错误处理将复杂逻辑分解为更小、可复用的函数避免深层嵌套最多 3 层保持函数专注尽可能在 50 行以内保持文件专注尽可能在 200 行代码以内何时使用此技能适用于执行概述中描述的工作流或操作。限制仅当任务明确符合上述范围时使用此技能。不要将输出视为特定环境验证、测试或专家审查的替代品。如果缺少必需的输入、权限、安全边界或成功标准请停下来询问澄清。

相关新闻

Unity健身房场景资源制作全流程:从建模到交互与性能优化

Unity健身房场景资源制作全流程:从建模到交互与性能优化

1. 项目概述与资源拆解思路1.1 从“健身房资源”到游戏场景:到底要做什么做Unity项目时,拿到“健身房资源”这个需求,很多新手第一反应就是去资源商店里搜索下载一堆健身器械模型,拖进场景摆一圈就算完事。但真做过的人都知道&…

2026/10/18 4:04:23 阅读更多 →
【人工智能训练师三级】数据处理完整知识框架

【人工智能训练师三级】数据处理完整知识框架

📥 一、数据采集与获取 数据来源分类 公开数据集(ImageNet、COCO、Common Crawl、Wikipedia等)业务系统日志与数据库(埋点日志、交易记录、用户行为)第三方数据采购与API接入(数据供应商、开放平台&#xf…

2026/10/18 4:04:23 阅读更多 →
无线Mesh网络全攻略:原理、部署与实战

无线Mesh网络全攻略:原理、部署与实战

开篇先聊个身边的事儿。我接过不少朋友和客户的网络求助,十家里有七八家都在抱怨“楼上信号满格、客厅流畅、一到卧室就转圈”。过去的标准答案是拉网线、加路由器,或者干脆上电力猫。这两年答案变成了一个词——无线Mesh网络。这东西不是什么玄学&#…

2026/10/18 4:04:23 阅读更多 →

最新新闻

uview-plus密码切换失效的根因排查与正确修复方案

uview-plus密码切换失效的根因排查与正确修复方案

上周给小程序做登录页,密码框要求支持明文密文切换。组件用的uview-plus,照着文档写了几行代码,结果右上角那个小眼睛点了完全没反应,真机上试了好几次,要么纹丝不动,要么闪一下又弹回密文状态。在项目群里…

2026/10/18 17:04:56 阅读更多 →
多传感器融合三条路线深度对比:前融合、特征级与决策级的信息损耗与工程实践

多传感器融合三条路线深度对比:前融合、特征级与决策级的信息损耗与工程实践

我先把话说在前面:多传感器融合这个主题,市面上讲“算法公式”的教程很多,但真正把前融合、特征级融合、决策级融合这三条路线放在同一个项目里拉通对比、还跑过实车数据的人,不多。这篇文章我不会从教科书定义开始,而…

2026/10/18 17:04:56 阅读更多 →
USB不只是采集画面还能输出显示:从UVC到DP Alt Mode的方案与避坑指南

USB不只是采集画面还能输出显示:从UVC到DP Alt Mode的方案与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:04:56 阅读更多 →
数字IC社招UVM面试高频题拆解与工程实践回答策略

数字IC社招UVM面试高频题拆解与工程实践回答策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:04:56 阅读更多 →
开发板待机功耗超标排查:从芯片睡眠到系统级漏电归因

开发板待机功耗超标排查:从芯片睡眠到系统级漏电归因

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:04:56 阅读更多 →
ROS2小车网页遥控:WebSocket桥接实现低延迟物理控制

ROS2小车网页遥控:WebSocket桥接实现低延迟物理控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:03:56 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →