{"id":28560120,"url":"https://github.com/dtstack/code-review-practices","last_synced_at":"2026-01-31T02:02:00.444Z","repository":{"id":37630160,"uuid":"387436084","full_name":"DTStack/code-review-practices","owner":"DTStack","description":"Code Review Practices ","archived":false,"fork":false,"pushed_at":"2022-07-28T10:07:05.000Z","size":21251,"stargazers_count":56,"open_issues_count":0,"forks_count":10,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-10-09T09:47:41.314Z","etag":null,"topics":["best-practices","code-review","code-review-checklist","codereview","frontend","guidelines"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DTStack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-19T11:10:44.000Z","updated_at":"2025-09-24T09:43:03.000Z","dependencies_parsed_at":"2022-08-09T10:00:12.355Z","dependency_job_id":null,"html_url":"https://github.com/DTStack/code-review-practices","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DTStack/code-review-practices","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DTStack%2Fcode-review-practices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DTStack%2Fcode-review-practices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DTStack%2Fcode-review-practices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DTStack%2Fcode-review-practices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DTStack","download_url":"https://codeload.github.com/DTStack/code-review-practices/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DTStack%2Fcode-review-practices/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28926630,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T22:32:35.345Z","status":"online","status_checked_at":"2026-01-31T02:00:09.179Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-practices","code-review","code-review-checklist","codereview","frontend","guidelines"],"created_at":"2025-06-10T09:07:35.293Z","updated_at":"2026-01-31T02:02:00.429Z","avatar_url":"https://github.com/DTStack.png","language":null,"readme":"# 袋鼠云数栈前端团队代码评审工程实践文档\n\n## 代码评审指南介绍\n\n* [代码评审指南指引](review/index.md), 包含 4 个子章节：\n  * [代码评审指南](review/CodeReview/index.md)\n  * [代码评审者指南](review/Reviewers/index.md)\n  * [代码开发者指南](review/Developer/index.md)\n  * [代码评审机制保障](review/Mechanism/index.md)\n\n## 术语\n\n部分文档中会用到一些术语，特在此说明:\n\n* **MR**: \"Merge Request.\"的缩写，代表正在进行代码评审的变更\n* **LGTM**: \"Looks Good to Me.\"的缩写，评审者批准**MR**时会这么说\n* **SGTM**: “Sounds Good To Me.\"的缩写，评审者批准**MR**时会这么说\n* **WIP**: “Work In Progress.”的缩写，如果你有个改动很大的 **MR**，可以在写了一部分的情况下先提交，但是在标题里写上 WIP，以告诉项目维护者这个功能还未完成，方便维护者提前 review 部分提交的代码\n\n## 注意事项\n\n* 经常进行代码评审\n* 代码评审不要太正式，要短\n* 尽可能让不同的人评审你的代码\n* 保持积极的正面态度\n\n## 常见问题\n\n* **代码评审者提出的都是一些编码风格和代码规范的东西？**\n  \n   编码规范应该交给工具去做，代码需遵循数栈代码风格指南\n\n* **为什么要鼓励为主而不是责罚并举？**\n  \n  众所周知代码评审并不容易施行，因为它是团队和个人长期才能感受到好处的过程，即使不做似乎也看不到啥影响，业务也照跑，而惩罚是阶段性的反馈，所以现阶段还是以鼓励为主，但是由于对代码提交人和代码评审人要求不同，对提交人的责任要求更大点。对审核覆盖率有要求，也有责任推进评审进度。\n对于代码评审主要是鼓励，因为代码评审是利他行为。在某些情况下会有一些惩罚要求：该模块很重要，引发了故障。而此问题是可以通过明显的评审发现的，此时也要承担责任\n\n* **某个需求（项目）留给开发时间非常紧张时怎么办？**\n  \n  可以不进行代码评审，优先保证按时需求（项目）上线\n* **周末出现线上紧急 bug 要遵循代码评审流程吗？**\n  \n  可以不进行代码评审，以快速修复 bug 为主，或者采取 onCall 的方式让维护者尽快评审\n\n## 路线图\n\n* [x] [评审模版](https://github.com/DTStack/devops/blob/main/.github/merge_request_template.md)\n* [x] **代码评审指南 2.0**达成共识\n* [x] **代码评审指南 2.0**宣讲\u0026落地\n* [x] 整理输出团队自身的 Checklist\n* [x] [代码风格指南落地](https://github.com/DTStack/Code-Style-Guide)\n* [x] [输出ko-lint-config \u0026 eslint-plugin-dt-react package](https://github.com/DTStack/ko/tree/master/packages/ko-lint-config)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdtstack%2Fcode-review-practices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdtstack%2Fcode-review-practices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdtstack%2Fcode-review-practices/lists"}