Skip to content

Latest commit

ย 

History

History
291 lines (231 loc) ยท 9.13 KB

18-code-review.md

File metadata and controls

291 lines (231 loc) ยท 9.13 KB

Code Review ไปฃ็ ๅฎกๆŸฅ

ไป€ไนˆๆ˜ฏไปฃ็ ๅฎกๆŸฅ๏ผŸ

ไปฃ็ ๅฎกๆŸฅ๏ผˆCode Review๏ผ‰ๆ˜ฏๅ›ข้˜Ÿๅไฝœๅผ€ๅ‘ไธญ็š„้‡่ฆ็Žฏ่Š‚๏ผŒ่ฎฉๅ…ถไป–ไบบๆฃ€ๆŸฅไฝ ็š„ไปฃ็ ใ€‚

ๅฅฝๅค„๏ผš

  • ๆ้ซ˜ไปฃ็ ่ดจ้‡
  • ๅˆ†ไบซ็Ÿฅ่ฏ†
  • ๅ‘็Žฐๆฝœๅœจ้—ฎ้ข˜
  • ็ปŸไธ€ไปฃ็ ้ฃŽๆ ผ
  • ๅ›ข้˜Ÿๅไฝœ

ๅฎกๆŸฅๆต็จ‹

1. ๅฎกๆŸฅๅ‰ๅ‡†ๅค‡

  1. ้˜…่ฏป PR ๆ่ฟฐๅ’Œๅ…ณ่” Issue
  2. ไบ†่งฃๅ˜ๆ›ด็š„ไธŠไธ‹ๆ–‡
  3. ๅœจๆœฌๅœฐๆต‹่ฏ•ไปฃ็ ๏ผˆๅฏ้€‰๏ผ‰

2. ๅฎกๆŸฅ่ฆ็‚น

็ฑปๅˆซ ๆฃ€ๆŸฅ้กน
ๅŠŸ่ƒฝ ้€ป่พ‘ๆ˜ฏๅฆๆญฃ็กฎ๏ผŒ่พน็•Œๆƒ…ๅ†ต
่ฎพ่ฎก ๆžถๆž„ๆ˜ฏๅฆๅˆ็†
ๅฏ่ฏปๆ€ง ๅ‘ฝๅใ€ๆณจ้‡Šใ€็ป“ๆž„
ๆ€ง่ƒฝ ๆœ‰ๆ— ๆ€ง่ƒฝ้—ฎ้ข˜
ๅฎ‰ๅ…จ ๆœ‰ๆ— ๅฎ‰ๅ…จๆผๆดž
ๆต‹่ฏ• ๆต‹่ฏ•ๆ˜ฏๅฆๅ……ๅˆ†
ๆ–‡ๆกฃ ๆ˜ฏๅฆ้œ€่ฆๆ›ดๆ–ฐๆ–‡ๆกฃ

ๅœจ GitHub ็ฝ‘้กตๅฎกๆŸฅไปฃ็ ๏ผˆๅ›พๆ–‡่ฏฆ่งฃ๏ผ‰

่ฏทๆฑ‚ๅฎกๆŸฅ

็ฌฌ 1 ๆญฅ๏ผšๅœจ PR ไธญๆทปๅŠ ๅฎกๆŸฅ่€…

  1. ๆ‰“ๅผ€ PR ้กต้ข
  2. ๅœจๅณไพงๆ‰พๅˆฐ Reviewers
  3. ็‚นๅ‡ป้ฝฟ่ฝฎๅ›พๆ ‡
  4. ้€‰ๆ‹ฉๅฎกๆŸฅ่€…
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Reviewers                                   โ”‚
โ”‚                                             โ”‚
โ”‚  ๐Ÿ‘ค @reviewer1  โ† ๅฎกๆŸฅ่€…                     โ”‚
โ”‚                                             โ”‚
โ”‚  [Request reviews from...]  โ† ็‚นๅ‡ปๆทปๅŠ        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅฎกๆŸฅไปฃ็ 

็ฌฌ 1 ๆญฅ๏ผšๆŸฅ็œ‹ไปฃ็ ๅทฎๅผ‚

  1. ็‚นๅ‡ป PR ้กต้ข็š„ Files changed ๆ ‡็ญพ
  2. ๆŸฅ็œ‹ไปฃ็ ๅ˜ๆ›ด
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  #1 feat: ๆทปๅŠ ๆ–ฐๆŒ‰้’ฎ                         โ”‚
โ”‚                                             โ”‚
โ”‚  [Conversation] [Commits] [Checks] [Files]  โ”‚
โ”‚                                     โ†‘       โ”‚
โ”‚                              ็‚นๅ‡ป่ฟ™้‡ŒๆŸฅ็œ‹    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                             โ”‚
โ”‚  Files changed (3)                           โ”‚
โ”‚                                             โ”‚
โ”‚  โ”€ src/button.ts (+5 -2)                    โ”‚
โ”‚                                             โ”‚
โ”‚     1  โ”‚ const button = () => {             โ”‚
โ”‚  -   2  โ”‚   return <button>Click</button>;  โ”‚
โ”‚  +   2  โ”‚   return <button className="new"> โ”‚โ”‚
โ”‚  +   3  โ”‚     Click                         โ”‚
โ”‚  +   4  โ”‚   </button>;                      โ”‚
โ”‚     5  โ”‚ };                                 โ”‚
โ”‚                                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

็ฌฌ 2 ๆญฅ๏ผšๆทปๅŠ ่กŒๅ†…่ฏ„่ฎบ

  1. ๅฐ†้ผ ๆ ‡ๆ‚ฌๅœๅœจไปฃ็ ่กŒๅทๆ—่พน
  2. ็‚นๅ‡ปๅ‡บ็Žฐ็š„ + ๆŒ‰้’ฎ
     1  โ”‚ const button = () => {        [+]  โ† ็‚นๅ‡ป่ฟ™ไธช
     2  โ”‚   return <button>Click</button>;
     3  โ”‚ };
  1. ๅœจๅผนๅ‡บๆก†ไธญ่พ“ๅ…ฅ่ฏ„่ฎบ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๐Ÿ’ฌ Leave a comment                  โ”‚
โ”‚                                     โ”‚
โ”‚  ่ฟ™้‡Œๅปบ่ฎฎไฝฟ็”จๆ›ดๅ…ทไฝ“็š„็ฑปๅ              โ”‚
โ”‚  ่€Œไธๆ˜ฏ็ฎ€ๅ•็š„ "new"                   โ”‚
โ”‚                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚ ๐Ÿ’ก Suggestion  โ† ็‚นๅ‡ปๆทปๅŠ     โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ”‚                                     โ”‚
โ”‚  โ˜ Add to review                    โ”‚
โ”‚                                     โ”‚
โ”‚     [Start review]                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

็ฌฌ 3 ๆญฅ๏ผšไฝฟ็”จไปฃ็ ๅปบ่ฎฎ

็‚นๅ‡ป Suggestion ๆŒ‰้’ฎๅŽ๏ผŒๅฏไปฅๆไพ›ไฟฎๆ”นๅปบ่ฎฎ๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๐Ÿ’ฌ Leave a comment                  โ”‚
โ”‚                                     โ”‚
โ”‚  ๅปบ่ฎฎไฟฎๆ”น็ฑปๅ๏ผš                       โ”‚
โ”‚                                     โ”‚
โ”‚  ```suggestion                      โ”‚
โ”‚  return <button className="primary">โ”‚โ”‚
โ”‚  ```                                โ”‚
โ”‚                                     โ”‚
โ”‚  โ˜‘ Add to review                    โ”‚
โ”‚                                     โ”‚
โ”‚     [Start review]                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

่ฟ™ๆ ท่ขซๅฎกๆŸฅ่€…ๅฏไปฅ็›ดๆŽฅๆŽฅๅ—ไฝ ็š„ไฟฎๆ”นๅปบ่ฎฎ๏ผ

็ฌฌ 4 ๆญฅ๏ผšๆไบคๅฎกๆŸฅ

ๅฎกๆŸฅๅฎŒๆˆๅŽ๏ผŒ็‚นๅ‡ป้กต้ขๅณไธŠ่ง’็š„ Review changes๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Review changes                      โ”‚
โ”‚                                     โ”‚
โ”‚  Leave a comment:                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚ ไปฃ็ ็œ‹่ตทๆฅไธ้”™๏ผŒไฝ†ๅปบ่ฎฎไฟฎๆ”น    โ”‚    โ”‚
โ”‚  โ”‚ ็ฑปๅ็š„ๅ‘ฝๅๆ–นๅผ               โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ”‚                                     โ”‚
โ”‚  โ—‹ Comment  โ† ไป…่ฏ„่ฎบ๏ผŒไธ้˜ปๆญขๅˆๅนถ    โ”‚
โ”‚  โ—‹ Approve  โ† ๆ‰นๅ‡† PR              โ”‚
โ”‚  โ—‹ Request changes โ† ่ฆๆฑ‚ไฟฎๆ”น       โ”‚
โ”‚                                     โ”‚
โ”‚     [Submit review]                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ไธ‰็งๅฎกๆŸฅ็ป“ๆžœ๏ผš

้€‰้กน ่ฏดๆ˜Ž ไฝ•ๆ—ถไฝฟ็”จ
Comment ไป…่ฏ„่ฎบ ไธๅๅฏนๅˆๅนถ๏ผŒๅชๆ˜ฏๆๅปบ่ฎฎ
Approve ๆ‰นๅ‡† ไปฃ็ ่ดจ้‡ๅฅฝ๏ผŒๅฏไปฅๅˆๅนถ
Request changes ่ฆๆฑ‚ไฟฎๆ”น ๆœ‰้—ฎ้ข˜้œ€่ฆไฟฎๅค

ๆŸฅ็œ‹ๅฎกๆŸฅ็Šถๆ€

ๅœจ PR ้กต้ขๅฏไปฅ็œ‹ๅˆฐๅฎกๆŸฅ็Šถๆ€๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  #1 feat: ๆทปๅŠ ๆ–ฐๆŒ‰้’ฎ                         โ”‚
โ”‚                                             โ”‚
โ”‚  Reviewers                                   โ”‚
โ”‚  โœ… @reviewer1 approved  โ† ๅฎกๆŸฅ้€š่ฟ‡          โ”‚
โ”‚                                             โ”‚
โ”‚  Checks                                     โ”‚
โ”‚  โœ… CI / test  โ† ๆต‹่ฏ•้€š่ฟ‡                    โ”‚
โ”‚  โœ… CI / lint  โ† ไปฃ็ ๆฃ€ๆŸฅ้€š่ฟ‡                โ”‚
โ”‚                                             โ”‚
โ”‚  Ready to merge  โ† ๅฏไปฅๅˆๅนถ                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆไพ›ๅฅฝ็š„ๅ้ฆˆ

ๅฅฝ็š„ๅ้ฆˆ็คบไพ‹

โœ… ๅ…ทไฝ“ๆŒ‡ๅ‡บ้—ฎ้ข˜ไฝ็ฝฎ
โœ… ่งฃ้‡Šไธบไป€ไนˆๆœ‰้—ฎ้ข˜
โœ… ๆไพ›ๆ”น่ฟ›ๅปบ่ฎฎ
โœ… ไฝฟ็”จไปฃ็ ๅปบ่ฎฎ

็คบไพ‹๏ผš

่ฟ™้‡Œ็š„็ฑปๅ "new" ไธๅคŸๆ่ฟฐๆ€ง๏ผŒๅปบ่ฎฎๆ”นไธบ "primary"
ไปฅ่กจ็คบ่ฟ™ๆ˜ฏไธ€ไธชไธป่ฆๆŒ‰้’ฎใ€‚

```suggestion
className="primary"

### ไธๅฅฝ็š„ๅ้ฆˆ็คบไพ‹

โŒ "ไปฃ็ ไธๅฅฝ" โŒ "่ฟ™ๆœ‰้—ฎ้ข˜" โŒ ๆฒกๆœ‰ๅปบ่ฎพๆ€ง็š„ๆ‰น่ฏ„ โŒ ่ฏญๆฐ”ๅคชๅผบ็กฌ


## ่‡ชๅŠจๅŒ–ๅฎกๆŸฅ

### Linter ้›†ๆˆ

```yaml
# .github/workflows/lint.yml
name: Lint
on: pull_request
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm run lint

ๆต‹่ฏ•ๆฃ€ๆŸฅ

name: Test
on: pull_request
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm test

ไปฃ็ ๅฎกๆŸฅๆœ€ไฝณๅฎž่ทต

ไฝœไธบๅฎกๆŸฅ่€…

  1. ๅŠๆ—ถๅฎกๆŸฅ๏ผšไธ่ฆๆ‹–ๅปถ
  2. ไฟๆŒๅ‹ๅฅฝ๏ผšๅปบ่ฎพๆ€ง็š„ๆ‰น่ฏ„
  3. ๅŒบๅˆ†ไผ˜ๅ…ˆ็บง๏ผšๅฟ…้กปไฟฎๆ”น vs ๅปบ่ฎฎไฟฎๆ”น
  4. ๆŒ‡ๅ‡บไผ˜็‚น๏ผšไธ่ฆๅชๆŒ‘ๆฏ›็—…

ไฝœไธบ่ขซๅฎกๆŸฅ่€…

  1. ไธ่ฆไธชไบบๅŒ–๏ผšๅฎกๆŸฅๆ˜ฏ้’ˆๅฏนไปฃ็ ๏ผŒไธๆ˜ฏ้’ˆๅฏนไบบ
  2. ่ฎค็œŸ่€ƒ่™‘๏ผšๆฏๆกๅ้ฆˆ้ƒฝๆœ‰ไปทๅ€ผ
  3. ๅŠๆ—ถๅ“ๅบ”๏ผšไธ่ฆ่ฎฉ PR ๆ”พๅคชไน…
  4. ๅฏไปฅ่ฎจ่ฎบ๏ผšไธๅŒๆ„ๅฏไปฅ่ฎจ่ฎบ

ๅฎž่ทต็ปƒไน 

็ปƒไน ๏ผš่ฟ›่กŒไปฃ็ ๅฎกๆŸฅ

ไปปๅŠก 1๏ผšๅˆ›ๅปบๆต‹่ฏ• PR

  1. ๅˆ›ๅปบไธ€ไธชไป“ๅบ“
  2. ๅˆ›ๅปบๅŠŸ่ƒฝๅˆ†ๆ”ฏๅนถไฟฎๆ”นไปฃ็ 
  3. ๆŽจ้€ๅˆฐ่ฟœ็จ‹
  4. ๅˆ›ๅปบ PR

ไปปๅŠก 2๏ผšๅฎกๆŸฅไปฃ็ 

  1. ๆ‰“ๅผ€ PR ็š„ Files changed ้กต้ข
  2. ๆ‰พๅˆฐ่ฆ่ฏ„่ฎบ็š„ไปฃ็ ่กŒ
  3. ็‚นๅ‡ป + ๆŒ‰้’ฎๆทปๅŠ ่ฏ„่ฎบ
  4. ไฝฟ็”จ Suggestion ๅŠŸ่ƒฝ
  5. ็‚นๅ‡ป Start review

ไปปๅŠก 3๏ผšๆไบคๅฎกๆŸฅ

  1. ็‚นๅ‡ป Review changes
  2. ้€‰ๆ‹ฉ Approve ๆˆ– Comment
  3. ็‚นๅ‡ป Submit review

้ชŒ่ฏๆ–นๆณ•๏ผš

  • PR ้กต้ขๆ˜พ็คบไฝ ็š„ๅฎกๆŸฅ่ฏ„่ฎบ
  • ๅฎกๆŸฅ็Šถๆ€ๆ˜พ็คบไฝ ็š„ๅ†ณๅฎš

ไธ‹ไธ€ๆญฅ

GitHub Actions ่‡ชๅŠจๅŒ– โ†’