Skip to content

Latest commit

Β 

History

History
114 lines (81 loc) Β· 2.96 KB

File metadata and controls

114 lines (81 loc) Β· 2.96 KB

T-Ruby WASM κΈ°μ—¬ κ°€μ΄λ“œ

English Documentation

T-Ruby WASM에 κΈ°μ—¬ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€! 이 λ¬Έμ„œλŠ” κΈ°μ—¬μžλ₯Ό μœ„ν•œ κ°€μ΄λ“œλΌμΈκ³Ό 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

행동 κ°•λ Ή

λͺ¨λ“  μƒν˜Έμž‘μš©μ—μ„œ 쑴쀑과 건섀적인 νƒœλ„λ₯Ό μœ μ§€ν•΄ μ£Όμ„Έμš”. λͺ¨λ“  λ°°κ²½κ³Ό κ²½ν—˜ μˆ˜μ€€μ˜ κΈ°μ—¬μžλ₯Ό ν™˜μ˜ν•©λ‹ˆλ‹€.

μ‹œμž‘ν•˜κΈ°

  1. μ €μž₯μ†Œλ₯Ό ν¬ν¬ν•˜μ„Έμš”
  2. ν¬ν¬ν•œ μ €μž₯μ†Œλ₯Ό ν΄λ‘ ν•˜μ„Έμš”:
    git clone https://github.com/YOUR_USERNAME/t-ruby-wasm.git
    cd t-ruby-wasm
  3. μ˜μ‘΄μ„±μ„ μ„€μΉ˜ν•˜μ„Έμš”:
    npm install
  4. 변경사항을 μœ„ν•œ 브랜치λ₯Ό μƒμ„±ν•˜μ„Έμš”:
    git checkout -b feature/your-feature-name

개발 κ°€μ΄λ“œλΌμΈ

μ½”λ“œ μŠ€νƒ€μΌ

  • λͺ¨λ“  μ†ŒμŠ€ νŒŒμΌμ— TypeScript μ‚¬μš©
  • κΈ°μ‘΄ μ½”λ“œ μŠ€νƒ€μΌ μ€€μˆ˜
  • 각 νŒŒμΌμ€ ν•˜λ‚˜μ˜ export만 κ°€μ Έμ•Ό 함
  • νŒŒμΌμ€ 100쀄 미만으둜 μœ μ§€ (주석 포함)
  • 쒅합적인 JSDoc 주석 μž‘μ„±

SOLID 원칙

SOLID 원칙을 λ”°λ¦…λ‹ˆλ‹€:

  • Single Responsibility: 각 클래슀/λͺ¨λ“ˆμ€ ν•˜λ‚˜μ˜ μ±…μž„λ§Œ
  • Open/Closed: ν™•μž₯에 μ—΄λ €μžˆκ³  μˆ˜μ •μ— λ‹«ν˜€μžˆμŒ
  • Liskov Substitution: μ„œλΈŒνƒ€μž…μ€ λŒ€μ²΄ κ°€λŠ₯ν•΄μ•Ό 함
  • Interface Segregation: μΈν„°νŽ˜μ΄μŠ€λ₯Ό μž‘κ³  μ§‘μ€‘μ μœΌλ‘œ μœ μ§€
  • Dependency Inversion: 좔상화에 의쑴

DRY 원칙

같은 μ½”λ“œλ₯Ό λ°˜λ³΅ν•˜μ§€ λ§ˆμ„Έμš”. 곡톡 λ‘œμ§μ€ μž¬μ‚¬μš© κ°€λŠ₯ν•œ μœ ν‹Έλ¦¬ν‹°λ‘œ μΆ”μΆœν•˜μ„Έμš”.

ν…ŒμŠ€νŒ…

ν…ŒμŠ€νŠΈ 주도 개발 (TDD)

TDD 방법둠을 μ‚¬μš©ν•©λ‹ˆλ‹€:

  1. λ¨Όμ € μ‹€νŒ¨ν•˜λŠ” ν…ŒμŠ€νŠΈ μž‘μ„±
  2. ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜λŠ” μ΅œμ†Œν•œμ˜ μ½”λ“œ μž‘μ„±
  3. ν…ŒμŠ€νŠΈλ₯Ό 톡과 μƒνƒœλ‘œ μœ μ§€ν•˜λ©΄μ„œ λ¦¬νŒ©ν† λ§

ν…ŒμŠ€νŠΈ μ‹€ν–‰

# ν…ŒμŠ€νŠΈ μ‹€ν–‰
npm test

# κ°μ‹œ λͺ¨λ“œλ‘œ ν…ŒμŠ€νŠΈ μ‹€ν–‰
npm run test:watch

# 컀버리지와 ν•¨κ»˜ ν…ŒμŠ€νŠΈ μ‹€ν–‰
npm run test:coverage

Pull Request κ³Όμ •

  1. λͺ¨λ“  ν…ŒμŠ€νŠΈκ°€ ν†΅κ³Όν•˜λŠ”μ§€ 확인
  2. ν•„μš”ν•œ 경우 λ¬Έμ„œ μ—…λ°μ΄νŠΈ
  3. μƒˆ κΈ°λŠ₯에 λŒ€ν•œ ν…ŒμŠ€νŠΈ μΆ”κ°€
  4. 컀밋은 μ›μžμ μ΄κ³  μ„€λͺ…이 잘 λ˜μ–΄μ•Ό 함
  5. κ΄€λ ¨ 이슈 μ°Έμ‘°

컀밋 λ©”μ‹œμ§€ ν˜•μ‹

type: 짧은 μ„€λͺ…

ν•„μš”ν•œ 경우 더 κΈ΄ μ„€λͺ….

Fixes #123

νƒ€μž…: feat, fix, docs, style, refactor, test, chore

ν”„λ‘œμ νŠΈ ꡬ쑰

t-ruby-wasm/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ types/           # νƒ€μž… μ •μ˜ (νŒŒμΌλ‹Ή ν•˜λ‚˜)
β”‚   β”œβ”€β”€ vm/              # Ruby VM κ΄€λ ¨ μ½”λ“œ
β”‚   β”œβ”€β”€ utils/           # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜
β”‚   β”œβ”€β”€ TRuby.ts         # 메인 TRuby 클래슀
β”‚   β”œβ”€β”€ createTRuby.ts   # νŒ©ν† λ¦¬ ν•¨μˆ˜
β”‚   β”œβ”€β”€ VirtualFileSystem.ts
β”‚   └── index.ts         # 곡개 exports
β”œβ”€β”€ tests/               # ν…ŒμŠ€νŠΈ 파일
β”œβ”€β”€ scripts/             # λΉŒλ“œ 슀크립트
└── dist/                # λΉŒλ“œ 좜λ ₯

질문이 μžˆμœΌμ‹ κ°€μš”?

μ§ˆλ¬Έμ΄λ‚˜ λ…Όμ˜λ₯Ό μœ„ν•΄ 이슈λ₯Ό μ—΄μ–΄μ£Όμ„Έμš”.