首页/新闻资讯/正文详情

向AssppWeb贡献代码:编码规范、导入顺序与PR审查规则的完整开发者路线图

发布时间:2026/9/26 8:09:03 来源:云帆数科 栏目:资讯中心
向AssppWeb贡献代码:编码规范、导入顺序与PR审查规则的完整开发者路线图
向AssppWeb贡献代码编码规范、导入顺序与PR审查规则的完整开发者路线图【免费下载链接】AssppWeb项目地址: https://gitcode.com/gh_mirrors/as/AssppWebAssppWeb 是一款在 App Store 之外获取并安装 iOS 应用的网页工具支持 Apple ID 登录、应用搜索、许可证获取与 IPA 编译安装。本文是面向新手贡献者的完整路线图先讲清项目结构与 TypeScript 编码规范再拆解九级导入顺序规则最后汇总 PR 审查时的每一条硬性检查项帮助你的代码一次性通过评审 快速上手克隆仓库并了解项目结构如果你是第一次参与开发先克隆仓库git clone https://gitcode.com/gh_mirrors/as/AssppWeb项目采用多端单体仓库 Docker 多阶段构建核心目录如下目录职责backend/Node.js/Express 服务端TypeScriptESM提供 Wisp 盲代理与 Bag 代理frontend/React 19 Vite Tailwind CSS 4 单页应用e2e/Playwright 端到端测试pnpmcloudflare/Cloudflare Workers Containers 部署入口references/ApplePackage/Swift 参考实现是 Apple 协议行为的唯一事实来源构建与运行入口见 compose.yml 和 Dockerfile前后端依赖与脚本分别在 frontend/package.json 与 backend/package.json 中声明。 最重要的架构约束零信任。服务端是一个盲 TCP 代理永远看不到任何 Apple 凭证。任何 PR 都不得破坏这条边界——协议改动前务必对照 Swift 参考实现。TypeScript 编码规范4 条基本约定项目所有代码使用 TypeScript规范统一而克制规范项要求示例缩进2 空格const x 1分号必须保留const x 1;引号字符串统一单引号hello命名类型/接口用 PascalCase变量/函数用 camelCaseSoftware/accountHash()前后端都遵循这套风格后端是 ESM 模块backend/package.json 中type: module用tsx跑开发、tsc做生产构建前端由 Vite 驱动。错误处理风格同样固定提前 return 减少嵌套、异步操作一律try/catch、Express 统一错误中间件集中处理。导入顺序规则九级分类法逐层解析这是 AssppWeb 最容易被 PR 审查驳回的细节。每个前端文件顶部的 import 必须严格按以下 9 级顺序排列级别分类典型示例1React / 库导入useState、useNavigate、useTranslation2布局组件PageContainer3通用组件AppIcon、Alert、Spinner、Modal、CountrySelect4同功能目录内的兄弟组件Download/中的DownloadItem5Hooks / 状态存储useAccounts、useSettingsStore6Apple 协议 / API 模块authenticate、purchaseApp、apiPost7工具函数accountHash、getErrorMessage8配置countryCodeMap、storeIdToCountry9类型导入永远最后type Software审查中高频出现的三类错误提交前请自查❌ 把 Hooks/Stores 写到了布局/通用组件之前❌ 把配置写到了工具函数之前❌ 类型导入夹在中间而不是放在最后PR 审查规则6 类硬性检查项逐条解读以下规则的目标是防止代码库在 PR 合并后腐化每一条都会在审查中被逐文件核对。导入顺序验证合并任何前端 PR 前审查者会检查每一个被修改文件的 import 是否完全符合上述九级顺序。transition-colors 使用政策transition-colors加在静态容器上会导致深色模式加载时可见的闪色。只允许用在交互元素上按钮、链接、表单输入、导航项。卡片容器、Alert、Badge、Modal、空状态占位等一律禁用唯一例外是侧边栏等布局骨架可保留transition-colors duration-200以获得主题切换动画。共享图标规范所有导航与主题图标统一放在 frontend/src/components/common/icons.tsx禁止在组件内重复内联 SVG 图标。深色模式颜色配对明暗两套色值必须成对出现标准配对为主文本text-gray-900 dark:text-white、卡片bg-white dark:bg-gray-900、页面bg-gray-50 dark:bg-gray-950、卡片边框border-gray-200 dark:border-gray-800。防代码重复同一 UI 模式出现 3 次以上必须抽取到components/common/现有共享组件Alert、Modal、Spinner、CountrySelect、AppIcon、Badge、ProgressBar、icons。新增共享组件后记得同步更新 AGENTS.md。带鉴权的 API 下载设置了ACCESS_PASSWORD时a href或window.open访问/api/会因缺少X-Access-Token头返回 401。正确做法是用fetch()authHeaders()下载后通过 blob URL 触发保存仅/auth/*、/install/*等公开路由允许普通链接。测试与验证提交 PR 前的完整流程单元测试后端与前端均使用 Vitest分别在 Node 和 jsdom 环境下运行cd backend npx vitest run cd frontend npx vitest runE2E 测试Playwright端到端测试覆盖 Wisp 代理、账户添加、搜索映射、下载 API 等核心链路cd e2e pnpm test # 本地运行需 Docker 起在 8080 端口 bash e2e/docker-test.sh # 完整流程构建 测试 零信任校验⚠️ 测试凭据TEST_EMAIL、TEST_PASSWORD等只放在环境变量中严禁提交进仓库。提交 PR 前的最终自检清单缩进 2 空格、分号、单引号、命名规范全部达标每个被改动文件都符合九级导入顺序静态容器上没有transition-colors明暗色值成对、图标来自共享icons.tsx重复模式已抽取到components/common/后端单元测试 前端单元测试全部通过没有改动破坏服务端永不见 Apple 凭证的零信任边界新增共享组件已同步更新 AGENTS.md祝你的第一个 PR 顺利合并欢迎成为 AssppWeb 的共建者 【免费下载链接】AssppWeb项目地址: https://gitcode.com/gh_mirrors/as/AssppWeb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

设备都能连局域网,为什么专业系统的时间还会“打架”?
设备都能连局域网,为什么专业系统的时间还会“打架”?

联网的设备千千万,为什么时间还能各过各的? 很多人在日常生活里都有过这种经验:家里墙上的挂钟、手腕上的机械表、微波炉屏幕上的数字,往往没有一个是对得齐的。但大家通常不会当回事,反正看手机就行了。 到了信息化系… · 2026/9/26 8:09:03

机器学习多因子研究框架:从因子构建到滚动训练实战
机器学习多因子研究框架:从因子构建到滚动训练实战

简介:这份资源是一套面向金融量化研究者与数据科学从业者的机器学习多因子研究框架,覆盖从因子选择、收益预测到风险建模与组合配置的完整链路,适合具备一定Python与金融基础、希望系统实践量化策略的中高级学习者。压缩包共306个文件&#x… · 2026/9/26 8:08:57

AI Agent编程实战:从自动补全到研究员式写代码全流程
AI Agent编程实战:从自动补全到研究员式写代码全流程

在AI编程助手满天飞的今天,大部分人在用的其实还停留在“自动补全”和“对话生成”的阶段。真正能把AI agent用出高级研究员水准——拿到一个需求先检索、再规划、然后动手验证、最后复盘沉淀——的人少之又少。这篇文章不谈玄学,就把我这两个月在本地和… · 2026/9/26 8:08:57

GitHub热榜五项目解析:Agent记忆、桌面操作、自托管与安全评测
GitHub热榜五项目解析:Agent记忆、桌面操作、自托管与安全评测

9.22这期GitHub热榜有个很明显的信号:榜单前排不再是清一色的“新模型发布”或者“LLM工具链缝合怪”,而是agent框架、computer-use、自托管环境这三个关键词来回刷屏。我把榜单上下的项目筛了一遍,挑了5个方向有代表性的,覆盖了A… · 2026/9/26 8:46:25

本地CLI+轻量LLM的Git代码审查工作流
本地CLI+轻量LLM的Git代码审查工作流

1. 项目概述:这不是一个“工具”,而是一套可落地的代码审查工作流重构方案“open-code-review”这个名字乍看像某个开源项目,但结合当前热词里反复出现的CLI、LLM、git、codex cli、dify、prompt injection、temperature、embedding等关键词&… · 2026/9/26 8:46:19

金融数据服务从零搭建:架构分层、技术选型与实操避坑指南
金融数据服务从零搭建:架构分层、技术选型与实操避坑指南

1. 金融数据服务从零搭建的核心思路拆解1.1 为什么选“数据服务”而不是“数据平台”很多团队一上来就喊“我们要做金融数据中台”,结果半年过去连一张能用的行情快照表都没落地。我踩过这个坑,后来复盘发现:金融数据场景的本质不是“大而全的… · 2026/9/26 8:46:19

Mosquitto 2.0.16 版本解析:三个 CVE 安全漏洞修复与 Broker、客户端库关键改进
Mosquitto 2.0.16 版本解析:三个 CVE 安全漏洞修复与 Broker、客户端库关键改进

物联网消息队列后端网络/通信 【免费下载链接】mosquitto Eclipse Mosquitto - An open source MQTT broker 项目地址: https://gitcode.com/gh_mirrors/mo/mosquitto 点击查看 免费下载 导读 Mosquitto 2.0.16 于 2023-08-16 发布,是一个以安全修复为… · 2026/9/26 8:46:19

Atlas边缘部署YOLO实战:从型号解析到模型转换与调优
Atlas边缘部署YOLO实战:从型号解析到模型转换与调优

先说个可能让很多人一搜就懵的地方:打开电商网站,输入“atlas”,你会看到从登山包、开源数据库再到云端服务的各种奇怪结果。但在AI硬件圈里,尤其是做深度学习推理和边缘部署的工程师口中,“atlas”基本默认指华为昇腾… · 2026/9/26 8:46:13

通达信横盘突破
通达信横盘突破

M10:EXPMA(C,10); TJ:IF(MAX(C,O)<M10,RANGE(MAX(C,O)/M10,0.99,1.005),IF(MIN(C,O)>M10,RANGE(MIN(C,O)/M10,0.999,1.01),DRAWNULL)); TJ1:CHHV(MAX(C,O),10) AND VHHV(V,10); XG:REF(EVERY(TJ,10),1) AND TJ1; · 2026/9/26 8:46:13

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介&#xff1a;万常选版《数据库原理与设计》课后习题答案资源&#xff0c;覆盖第2至6章及第9章&#xff0c;适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件&#xff0c;含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

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

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故&#xff0c;是很多团队绕不过去的坎。线上环境里&#xff0c;服务端明明已经上线了新版接口&#xff0c;老的移动端还在照着旧文档传参数。请求一到网关&#xff0c;校验直接拒绝&#xff0c;用户操作失败&#xff0c;客服群炸了锅&#xff0c;开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码