Skip to content

Tutorial 2 How the Code Works bo

James Morris edited this page Jul 29, 2026 · 1 revision

སློབ་ཚན་ 2 · ཨང་རྟགས་ཀྱི་ལས་ཚུལ།

🌎 སྐད་ཡིག: བོད་ཡིགསྐད་ཡིག་ 33 ཚང་མར་གཟིགས།

དམིགས་ཡུལ། ལས་གཞི་འདི་ AI ལས་ཚབ་ཀྱིས་བཅོས་པར་སླ་ཞིང་ ཉེན་མེད་བཟོ་བའི་བཟོ་བཀོད་གདམ་ག་འགའ་ཤས་རྟོགས་པ། ཨང་རྟགས་བློར་མི་དགོས། ལས་ཚབ་ལ་གསལ་བར་བཀོད་ཐུབ་པའི་བསམ་བློའི་ས་ཁྲ་ཙམ་དགོས།

སློབ་ཚན་ 1 ངོ་སྤྲོད། · རྗེས་མ། སློབ་ཚན་ 3 ལས་ཚབ་ལ་ལས་འགན་ཐོག་མ།


ས་ཁྲ།

lockedin-cli/
├── bin/lockedin.js      # འཇུག་སྒོ — input/output བྱེད་པའི་ཆ་གཅིག་པུ།
├── src/lockedin.js      # ནང་སྙིང་ — ཡིག་རྒྱུན་ཕྱིར་སྤྲོད་པའི་རྐྱང་རྩལ།
├── test/
│   ├── unit.test.js     # ནང་སྙིང་རྩལ་ནུས་ཐད་ཀར་ཚོད་ལྟ།
│   └── cli.test.js      # binary ངོ་མ་སྤར་ནས་ཐོན་འབྲས་བརྟག
├── tools/screenshot.js  # docs/ ནང་གི་ SVG བཟོ།
└── package.json         # གནས་ཚུལ + `npm test` script

བསམ་ཚུལ་བཞིས་ལས་གཞི་འདི་སྐུལ། དེ་དག་ཤེས་ན་ལས་ཚབ་ལ་བཅོས་སྒྱུར་ཕལ་ཆེ་བ་བློ་བདེའི་ངང་སྐུལ་ཐུབ།

བསམ་ཚུལ་ 1 — ཡིག་རྒྱུན་ཕྱིར་སྤྲོད་པའི་རྐྱང་རྩལ་ནང་སྙིང་།

src/lockedin.js ཁ་ཕྱེས། render རྩལ་ནུས་ཀྱིས་མི་པར་བར་ཡིག་རྒྱུན་ཕྱིར་སྤྲོད

function renderConnect() {
  const names = shuffle(NAMES).slice(0, 6);
  // ...ཐིག་ཕྲེང་གི་ཚོགས་བཟོ...
  return out.join('\n');   // ཡི་གེ་ཕྱིར་སྤྲོད། མི་པར།
}

དངོས་སུ་པར་བ་དང་མཐེབ་གཞོང་ཀློག་པ་ཚང་མ་ bin/lockedin.js ནང་ཡོད། “ནང་སྙིང་གིས་གཞི་གྲངས་ཕྱིར་སྤྲོད། མཐའ་མཚམས་ཀྱིས་ I/O བྱེད།” ཞེས་པའི་ཁ་བྲལ་འདི་གལ་ཆེ་ཤོས་ཡིན། ཡིག་རྒྱུན་ཙམ་ཕྱིར་སྤྲོད་པའི་རྩལ་ནུས་ནི་ཚོད་ལྟ་བྱེད་ཧ་ཅང་སླ

const out = app.renderConnect();
assert.ok(out.includes("«ང་ཡི་ལས་རིགས་ཀྱི་འབྲེལ་མཐུད་ཁྲོད་དུ་ཁྱེད་བསྣན་ན་ཧ་ཅང་དགའ།» — ངོ་མི་ཤེས་པའི་མི་ "));

མཐའ་སྣེ་རྫུན་མ་བཟོ་མི་དགོས་ཤིང་ stdout འཛིན་མི་དགོས། དེས་ལས་ཚབ་ལ་ཁྱད་ཆོས་དང་ཚོད་ལྟ་མགྱོགས་པོར་སྣོན་དུ་འཇུག

བསམ་ཚུལ་ 2 — ནང་དོན་མཛོད།

བཞད་གད་རྣམས་ src/lockedin.js སྟོད་ཀྱི་ཐོ་གཞུང་ནང་ཡོད།

const HOOKS = [ 'མང་ཚོགས་ཀྱིས་མི་དགའ་བའི་བསམ་ཚུལ་ཞིག་ཞུ་ན།', 'དེ་སེམས་ལ་ལེགས་པར་ཞུགས་ཤོག', /* ...ཁྱོན་ 25... */ ];
const LESSONS = [ '→ ཁྱེད་ཀྱི་འབྲེལ་ལམ་དྲ་བ་ནི་ཁྱེད་ཀྱི་རྒྱུ་ནོར་གྱི་རིན་ཐང་ཡིན།', /* ... */ ];

generator གྱིས་མཛོད་ནས་འདེམས། v1.2.0 ནང་མཛོད་རེ་རེ་ཁྱོན་ 25 འགྱུར་བ་བར་འཕེལ་ཞིང་། POST_REVEALS དང་ REFLECT_TAGSETS ལྟ་བུའི་དཔེ་གཞིའི་མཛོད་རིམ་པ་གཉིས་པ་བསྣན། དེས་ཚིག་ཙམ་མ་ཡིན་པར་ཐོན་འབྲས་ཀྱི་དབྱིབས་ཀྱང་འགྱུར།

བསམ་ཚུལ་ 3 — ས་བོན་ཅན་གྱི་སྐབས་བསྟུན = བསྐྱར་ཟློས་ཐུབ་པའི་ཚོད་ལྟ།

setSeed(42);
const a = generatePost();
setSeed(42);
const b = generatePost();
// a === b  → ས་བོན་གཅིག སྤེལ་ཡིག་གཅིག

སྐབས་བསྟུན་གྱི་གདམ་ག་ཚང་མ་ pick() / shuffle() རོགས་རྩལ་བརྒྱུད་དགོས། LOCKEDIN_SEED=42 བཞག་ན་ CLI ཆ་ཚང་བསྐྱར་སྐྲུན་ཐུབ། སྒྲིག་ལམ་གསེར་མ། སྐབས་བསྟུན་གསར་པ་ཚང་མས་ pick / shuffle སྤྱོད་དགོས། Math.random ཐད་ཀར་ནམ་ཡང་མ་སྤྱོད། དེ་མིན་ངེས་གཏན་དང་ཚོད་ལྟ་གཉིས་ཀ་ཆག

བསམ་ཚུལ་ 4 — ཚོད་ལྟའི་རིམ་པ་གཉིས།

  • test/unit.test.js ཡིས་ནང་སྙིང་རྩལ་ནུས་ཐད་ཀར་འབོད་ནས་ཡིག་རྒྱུན་བརྟག
  • test/cli.test.js ཡིས་ bin/lockedin.js དངོས་སུ་སྤར་ནས་ stdout དང་ཕྱིར་ཐོན་ཨང་བརྟག

གཉིས་ཀ་མཉམ་དུ་སྒོ་སྲུང་བཟོ་ཞིང་། ཉེར་སྤྱོད་ཀྱི་མི་འགྱུར་བའི་ཁས་ལེན་ཡང་ཉར། དཔེར་ན། post རྟག་ཏུ་ངོ་ཤེས་པའི་འགོ་འཛུགས་ནས་འགོ་བཙུགས་ཤིང་ སློབ་ཚན་གསུམ་མ་མཐར་ཡོད། “connect” བརྙན་ཡོལ་ལ་ incalculable རྟག་ཏུ་ཡོད།


ལས་ཚབ་དང་མཉམ་ལས་ལ་ཅིའི་ཕྱིར་གལ་ཆེ།

བསམ་ཚུལ་བཞི་མཉམ་དུ་སྦྱར་ན། ལས་ཚབ་ཀྱིས།

  1. ཁྱད་ཆོས་རྐྱང་རྩལ་ཞིག་ཏུ་སྣོན།
  2. I/O རྙོག་དྲ་མེད་པར་ཚོད་ལྟ་སྣོན།
  3. ས་བོན་ཅན་གྱི་ RNG ཡིས་ཐོན་འབྲས་བསྐྱར་སྐྲུན་ཐུབ།
  4. སྒོ་སྲུང་རྒྱུག་ནས་གཞན་མ་ཆག་པ་ར་སྤྲོད།

✅ ཁྱེད་ཀྱི་ལས་ཚབ་དང་མཉམ་དུ་ཚོད་ལྟ་བྱོས།

  1. src/lockedin.js ནང་གི་ནང་དོན་མཛོད་ཚང་མ་དང་རེ་རེའི་གྲངས་བཤད།”
  2. test/unit.test.js ཡིས་ generatePost ལ་བཀལ་བའི་ཁས་ལེན་གཅིག་སྟོན་ནས་ གང་གིས་དེ་གཏོར་བ་བཤད།”
  3. “ས་བོན་ཅན་ RNG གང་དུ་ཡོད། རྩལ་ནུས་གང་དག་གིས་ Math.random མ་ཡིན་པར་དེ་སྤྱོད་དགོས། གང་ཡང་མ་བཅོས།”

རྗེས་མ། སློབ་ཚན་ 3 ལས་ཚབ་ལ་ལས་འགན་ཐོག་མ།

📘 LockedIn CLI wiki

Tutorial

Reference


Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.

Clone this wiki locally