决策地图
开发工作流:让交付速度不以可维护性为代价
覆盖测试、CI/CD、代码质量和开发者效率,重点是缩短可靠反馈周期。
Recommendation
从稳定的本地检查和持续集成开始;流程复杂度应跟随团队与发布风险增长。
先找出最昂贵的反馈延迟,再选测试、持续交付或协作工具。
范围
用这条边界避免在错误层级解决相邻问题。
包含
- Hosted or self-hosted Git repository collaboration and governance
- Continuous integration, delivery, and deployment workflow automation
- Dynamic testing, API testing, API documentation, linting, and non-security static analysis
- Package registry publication, access, provenance, and consumption
- Reproducible development environments and local cloud-service emulation
- Remote preview environments and reusable SaaS starting repositories
不包含
- Production hosting, container orchestration, and infrastructure provisioning
- Security-focused vulnerability scanning and security finding triage
- General editorial content management and end-user documentation
- Starter Stack composition as a substitute for a concrete source-code boilerplate
重要工具
这些工具代表此决策领域内不同路线;请先打开相关任务页面,再将任何工具视作默认。
- GitHub (英文页面)
- GitLab (英文页面)
- Bitbucket (英文页面)
- GitHub Actions (英文页面)
- Buildkite (英文页面)
- Jenkins (英文页面)
- Vitest (英文页面)
- Jest (英文页面)
- Playwright (英文页面)
- Cypress (英文页面)
- Postman (英文页面)
- Insomnia (英文页面)
- Bruno (英文页面)
- Pact (英文页面)
- Mintlify (英文页面)
- ReadMe (英文页面)
- Scalar (英文页面)
- ESLint (英文页面)
- Biome (英文页面)
- Ruff (英文页面)
- SonarQube (英文页面)
- npm (英文页面)
- GitHub Packages (英文页面)
- Cloudsmith (英文页面)
- JFrog Artifactory (英文页面)
- VS Code Dev Containers (英文页面)
- GitHub Codespaces (英文页面)
- Ona (英文页面)
- Coder (英文页面)
- LocalStack (英文页面)
- AWS SAM CLI (英文页面)
- Firebase Local Emulator Suite (英文页面)
- Supabase CLI (英文页面)
- Vercel
- Netlify (英文页面)
- Cloudflare Pages (英文页面)
- Render (英文页面)
- ShipFast (英文页面)
- supastarter (英文页面)
- MakerKit (英文页面)
- ShipAny (英文页面)
- Open SaaS (英文页面)
决策顺序
先完成基础归属判断,再增加专门能力。
Where will source live and how will contributors access, review, merge, govern, and audit changes?
Choose Git Repository Hosting before binding pipeline, package, or preview workflows to provider-specific integrations.
What toolchain and external cloud-service behavior must contributors reproduce before committing changes?
Use Development Environments for workspace and toolchain reproducibility; add Local Cloud Emulation only for required cloud service APIs and document fidelity gaps.
Which defects require static inspection, executed tests, or specialist API workflows?
Linters & Static Analysis inspects code without execution, Testing executes code or behavior, and API Testing exercises API contracts and environments.
What API description is authoritative and which reusable packages must be published and governed?
Keep API Documentation synchronized with the contract and define package versioning, access, provenance, immutability, and retention.
Which checks, artifacts, environments, approvals, and promotions should run for each change?
Use CI/CD to automate reliable local commands, and Preview Environments for deployed, shareable, isolated change review.
Should the project adopt and maintain a prebuilt SaaS code foundation?
Evaluate SaaS Boilerplates as owned source code with architecture, dependencies, licensing, customization, security, and upgrade obligations rather than as a conceptual stack.
决策分组
每个任务都对应一个独立的用户决策,而非产品功能标签。
Source collaboration and automation
Repository ownership establishes the source boundary; CI/CD then automates repeatable validation, packaging, and delivery.
Quality and API workflow
Dynamic tests, API-specific tests, API reference, and non-security static analysis provide different evidence and should be routed explicitly.
Packages and local development
Package distribution, reproducible workspaces, and cloud-service emulation support development but solve different ownership and fidelity problems.
Review environments and project foundations
Preview deployments support change review, while SaaS Boilerplates supply concrete source code with long-term ownership and maintenance obligations.
常见混淆
这些边界避免相邻任务被压缩成一个泛泛的候选清单。
- Treating Git commands and repository hosting as the same decision.
- Git is distributed revision control; Git Repository Hosting adds remote availability, identity and access, collaboration, review, integrations, and governance.
- Treating linting, static analysis, and executed tests as interchangeable quality evidence.
- Linters & Static Analysis inspect code without execution; Testing executes code or behavior and asserts outcomes.
- Treating a machine-readable API description as proof that the implementation behaves correctly.
- API Documentation describes and publishes the contract; API Testing exercises the implementation against expectations.
- Treating a reproducible development workspace and local cloud-service emulation as one Local Development product decision.
- Development Environments reproduce toolchains and workspace configuration; Local Cloud Emulation reproduces selected cloud APIs and behavior.
- Treating local service emulation and deployed branch review as the same pre-production environment.
- Local Cloud Emulation runs locally or in CI; Preview Environments are remote, deployed, shareable instances.
- Treating a concrete starting repository and a curated architecture or tool combination as the same artifact.
- SaaS Boilerplates provide source code with maintenance obligations; Starter Stacks recommend composition and do not need to ship a codebase.
暂缓引入
不要在产品真正需要之前引入专门系统。
The application has no cloud-service dependency that must be exercised locally or in CI, or remote integration tests are sufficient.
Emulation adds setup and fidelity risk and should follow a concrete cloud-service testing requirement.
Changes do not require live collaborative review, isolated remote configuration, or stakeholder QA before production.
Preview deployments add environment, data, access, cleanup, and cost responsibilities.
The team does not publish reusable versioned packages outside the current repository.
A registry publication workflow is unnecessary until packages have external or cross-repository consumers.
The team is not evaluating a prebuilt source foundation or has already committed to a greenfield architecture.
Boilerplate selection is a source-ownership and maintenance decision, not a mandatory step in every developer workflow.
Starter Stack
查看这些决策如何出现在完整应用起始方案中。
官方资源
支撑此分类边界的标准与一手文档。
来源
此决策地图使用的主张级参考资料。
- 1Git User's Manual
Git · Accessed Official
- 2About Git
GitHub · Accessed Official
- 3Continuous integration with GitHub Actions
GitHub · Accessed Official
- 4Building and testing Node.js
GitHub · Accessed Official
- 5Writing tests
Vitest · Accessed Official
- 6Playwright best practices
Playwright · Accessed Official
- 7Learn OpenAPI: The OpenAPI Specification
OpenAPI Initiative · Accessed Official
- 8ESLint core concepts
ESLint · Accessed Official
- 9ESLint glossary
ESLint · Accessed Official
- 10Biome Linter
Biome · Accessed Official
- 11Introduction to quality gates
SonarSource · Accessed Official
- 12Code scanning with CodeQL
GitHub · Accessed Official
- 13npm registry
npm · Accessed Official
- 14npm publish
npm · Accessed Official
- 15Development Containers specification
Development Containers · Accessed Official
- 16Create a development container
Microsoft · Accessed Official
- 17LocalStack documentation
LocalStack · Accessed Official
- 18AWS SAM CLI
AWS · Accessed Official
- 19Vercel Environments
Vercel · Accessed Official
- 20Creating a repository from a template
GitHub · Accessed Official