Бөлім II · ҚалайЦикл қадамы 5/99 мин+60 XP

Код және жергілікті құрастыру

Терминал, бір қалта, dev сервері және GitHub-қа ешқашан түспеуге тиіс бір файл. Курстың соңына дейін жұмыс істейтін үстелің — осы.

Осы модульден кейін сен мынаны істей аласың

терминал арқылы жоба ішінде еркін жүру, dev серверін іске қосып, тоқтату және құпия кілттеріңді repo-дан тыс ұстау

Терминал — пәрмендерді орындайтын мәтін жолағы. Бүкіл құпиясы осы. Бұл модульдегінің бәрі бір себептен бар: агентің дәл сол мәтін жолағы арқылы жұмыс істейді, ал оқи алмайтын нәрсеңді басқара алмайсың.

Өткен төрт модуль — не сұрайтының туралы. Бұл модуль — оны қай жерде сұрайтының туралы.

Терминал — сынақ емес, жай ғана мәтін жолағы

Терминал — тінтуірмен басудың орнына пәрмен теретін терезе. Ол дәл, оны скриптке жазуға болады, әрі сенің ноутбугіңде де, планетаның арғы шетіндегі серверде де бірдей жұмыс істейді. Тінтуірмен басу — мәзірдегі тармақты нұсқау; терминал — сол тілде сөйлеу: үйрену ұзағырақ, бірақ айта алатының әлдеқайда көп.

Дәл қазір бұл бір себептен маңызды: код жазатын ЖИ-агенттер соның ішінде жұмыс істейді. Claude Code пакет орнатқанда немесе тестіңді жүргізгенде, ол сен тере алатын дәл сол пәрмендерді орындап, нәтижесін экранға шығарады. Ол жолдар сен үшін жай шу болса, әр сеанс — қара жәшік, ал сен өзің баға бере алмайтын нәрсеге рұқсат беріп отырасың.

Қорқынышын кетіретін екі факт бар. Біріншісі: Enter пернесін баспайынша терминал ештеңе істемейді. Екіншісі: бірдеңе сәтсіз аяқталғанда, экрандағы қате мәтіні — бөлмедегі ең пайдалы нәрсе, одан қашудың керегі жоқ.

Әр пәрмен бір жерде орындалады

Терминал әрқашан бір қалтаның ішінде тұрады. Сол қалта — ағымдағы каталог, пәрмендердің көбі соның ішінде жұмыс істейді. Бастаушының шатасуының көбі — «пәрмен ештеңе істемеді», «файл табылмады» — шын мәнінде «мен басқа жерде тұр екенмін» дегенді білдіреді.

Жол (path) — қалтаның немесе файлдың мекенжайы. macOS, Linux, WSL және Git Bash ішінде бөліктерді / ажыратады; таза Windows-та — \. Бір Claude Code файлының өзі macOS пен Linux-та ~/.local/bin/claude жолында, Windows-та %USERPROFILE%\.local\bin\claude.exe жолында жатады — бір файл, екі түрлі жазылуы (орнату құжаттамасы). ~ — сенің үй қалтаң. . — осы жер. .. — бір деңгей жоғары.

Есте ұстайтын бір ереже: агентті іске қоспай тұрып, әрқашан cd пәрменімен жоба қалтаңның ішіне кір. Оның орнына үй қалтаңда немесе Desktop қалтасында іске қоссаң, барлық құжатың мен қалған жобаларың түгел агенттің жұмыс каталогының ішінде тұрады. Бір жоба — бір қалта — бір сеанс.

Он пәрмен оқулықтардың бәрін дерлік жабады

Пәрмен Не істейді
pwd қай жерде тұрғаныңды шығарады
ls осы қалтада не бар екенін тізеді
cd name қалтаның ішіне кіреді
cd .. бір деңгей жоғары шығады
cat file файлды экранға шығарады
mkdir name қалта жасайды
touch name бос файл жасайды
cp a b a-ны b-ға көшіреді
mv a b жылжытады немесе атын өзгертеді
rm name жояды

Windows-та бұлар Git Bash ішінде жазылған күйінде жұмыс істейді. PowerShell де көбіне жауап береді — әдетте тек touch жетіспейді. CMD жауап бермейді. Төмендегі Windows бөлімі осы үшеуінің қайсысына қарап отырғаныңды ажыратып береді.

Кестедегі кез келген пәрменнен көрі көп уақыт үнемдейтін екі перне бар: жоғары көрсеткі соңғы терген жолыңды қайтарады, ал нағыз терминалда Tab пернесі жартылай терілген атауды өзі толтырады.

bash
pwd
cd qairu-event
ls
cat package.json
cp .env.example .env

Енді осыны өзің істеп көр — саған зиян келтіре алмайтын терминалда.

Терминал жаттығуы0/6 дайын

Бұл — нағыз терминалдың қауіпсіз көшірмесі. Мұндағы ештеңе компьютеріңе тимейді. Оң жақтағы тапсырмаларды орында.

bash — ~/
Команда жазып, Enter бас. `help` деп көр.
~/ $

Тапсырмалар

  1. Ағымдағы қалтада не бар екенін көру
  2. qairu-event қалтасына кіру
  3. README файлын оқу
  4. «notes» деген қалта жасау
  5. .env.example-ті .env-ке көшіру (git-ке ешқашан түспеуі керек файл)
  6. Бір қалта жоғары шығу

node_modules — сенің кодың емес

Ешкім дерлік бәрін нөлден жазбайды. Пакет менеджері жобаңа керек кітапханаларды, олардың өзіне керек кітапханаларды үйлесімді нұсқаларымен жүктеп алады да, дәл сол нұсқаларды lock файлына жазып қояды — сонда кез келген компьютер тап сол нәрсені орнатады. JavaScript үшін бұл npm, pnpm немесе bun; Python үшін pip немесе uv. Жүктемелерді қолмен іздеудің орнына — код блоктарына арналған қолданбалар дүкені.

  • package.json — сенің не сұрағаның: тәуелділіктер және аты берілген пәрмендер (dev, build, test).
  • lock файлы — шын мәнінде не алғаның, дәл нұсқасына дейін.
  • node_modules/ — жүктеп алынған кодтың өзі. Жүздеген қалта. Оны ешкім оқымайды.
  • npm install — алғашқы екеуін үшіншісіне айналдыратын пәрмен.

node_modules қалтасы git-ке ешқашан түспейді: ол орасан үлкен, әрі бір пәрменмен кез келген жерде қайта құрылады. Құралдар да солай деп есептейді. Claude Code git worktree жасағанда, ол таза көшірме болады, сондықтан node_modules ол жерде жай ғана жоқ — оны қайта орнатасың (worktree туралы). Егер агент сол қалтаны commit-ке қосуды ұсынса, келіспе.

localhost — сенің үйің, интернет емес

npm run dev пәрмені package.json ішінен dev жолын тауып, соны іске қосады. Одан dev сервері көтеріледі: өз компьютеріңде жұмыс істейтін шағын веб-сервер, ол жобаңды өз браузеріңе береді және файлды сақтаған сайын бетті қайта жүктейді.

Ол мекенжай шығарады, әдетте http://localhost:3000 сияқты. Басқа жоба — немесе сол компьютердегі екінші сервер — басқа нөмір шығарады. Оны жаттап алудың орнына өз экраныңнан оқы: порт дегеніміз — өз компьютеріңдегі есіктің нөмірі, ал терминал қай есікті ашқанын әрдайым өзі айтып тұрады.

Үш әдет:

  1. Dev серверіне жеке терминал қойындысын бер. Ол жұмыс істеп, нәтиже шығарып тұра береді; қатып қалған жоқ.
  2. Ctrl+C оны тоқтатады. «Port already in use» деген хабар әрдайым дерлік екінші серверді қосып жібергеніңді білдіреді.
  3. Қатесі жоқ бос бет те — ілгерілеу. Агентке «бұзылды» деп айтпай тұрып, терминалдағы нәтижені және браузер консолін қарап шық — екеуін де көшіріп жібер.
Жылдам тексеру

Dev серверің http://localhost:3000 деген мекенжай шығарды, бет те тамаша көрінеді. Сол сілтемені қаланың арғы шетіндегі досыңа жібердің. Ол не көреді?

.env кілттерді ұстайды және ноутбугіңнен шықпайды

Орта айнымалылары — кодтың сыртында тұратын, бағдарлама іске қосылғанда соған берілетін аты бар мәндер: API кілттері, дерекқор мекенжайы, NODE_ENV=production сияқты параметрлер. Солардың арқасында құпия деректер репозиторийге түспейді, әрі дәл сол код сенің ноутбугіңде бір түрлі, серверде екінші түрлі жұмыс істей алады. Компьютеріңде олар .env файлында тұрады, ал ол файл .gitignore тізімінде болуға тиіс; хостингте оларды оның орнына басқару панеліне қоясың. Кеңсенің кілттері күзетшіде тұрады, есіктің сыртына жапсырылмайды.

Бұл ереженің ерекше жағдайы жоқ, ал дұрыс реті біреу ғана:

Қолданбаны жасайды. Жұмыс істеткізеді. git init пәрменін орындап, бәрін commit жасап, GitHub-қа push жасайды. .gitignore файлын кейін, бір оқулық еске салғанда қосады.

Кілт енді репозиторий тарихында тұр. Файлды өшіру оны ол жерден кетірмейді. Жалғыз шешім — сол кілтті жарамсыз етіп, жаңасын алу.

Бірінші commit-ке дейін ішінде .env және node_modules/ жазылған .gitignore файлын жасайсың.

Кілттердің аты бар, мәндері бос .env.example файлын commit жасайсың — сонда кез келген адам, оның ішінде жаңа ноутбуктағы өзің де, шын кілтті көрмей-ақ жобаға қандай айнымалы керегін біледі.

Құпия деректердің мүлде бармайтын жерін де есте ұста: frontend — пайдаланушының құрылғысында жұмыс істейтін бөлік, оны кез келген адам браузердің әзірлеуші құралдарын ашып оқи алады. Кілттердің орны — backend немесе хостингтің басқару панелі.

ТереңірекАгентке .env файлын оқыма деп айтсам, жеткілікті ме?

Айтуға болады, айту керек те — бірақ оны құлып деп қабылдама. .claude/settings.json ішіндегі "deny": ["Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)"] сияқты ереже Read құралын бұғаттайды, әрі Bash ішіндегі cat, head, tail, sed пәрмендерін де қамтиды. Бірақ ол файлды өзі ашатын скриптті тоқтатпайды, ал Bash ережелері бағдарламаның өзін емес, пәрмен мәтінін салыстырады. Рұқсаттар туралы құжаттама мұны ашық жазады: бұл ережелер — ыңғайлылық үшін, қауіпсіздік шекарасы емес. Нағыз оқшаулау sandbox арқылы келеді, ал таза Windows-та sandbox мүлде жоқ. Сондықтан deny тізімін екінші қабат деп есепте, ал бір рет commit-ке түскен немесе чатқа көшірілген кілтті түгел ауыстыр.

«Менің компьютерімде жұмыс істеп тұр» — әзіл емес, диагноз

Бұл сенің компьютеріңде екінші компьютерде жоқ бір нәрсе бар дегенді білдіреді. Әдеттегі бес күдікті бар, бесеуін де екі минутта тексеріп шығуға болады.

  • Жетіспейтін орта айнымалысы. .env файлың тек сенде бар, басқа ешқайда жоқ. Шешімі: айнымалыларды хостингтің басқару панеліне қос.
  • Commit жасалмаған файл. Ол жұмыс істеп тұр, себебі файл жобада емес, сенің дискіңде жатыр. Шешімі: git status пәрменін орында.
  • Орнатылмаған тәуелділіктер. Екінші компьютерде package.json бар, бірақ node_modules жоқ. Шешімі: орнату пәрменін орында.
  • Бас әріптер. Windows үшін Hero.astro мен hero.astro — бір файл. Deploy серверлерінің көбі Linux-та жұмыс істейді, ал ол үшін бұл — екі бөлек файл: сондықтан компьютеріңде жұмыс істейтін импорт build кезінде құлайды. Шешімі: файл атын әрпін әрпіне келтіріп дәл жаз.
  • Басқа нұсқа. Ол жақтағы орындалу ортасы сенікінен жаңарақ немесе ескілеу. Claude Code-тың өзі осыны көрсетіп тұр: npm арқылы орнату жолына Node.js 22 немесе одан жаңа нұсқа керек (орнату құжаттамасы).

Дауды фактіге айналдыратын нәрсе — deploy жасау. Өз компьютеріңде жұмыс істегені — әлі бітті дегені емес; deploy жасалса — бітті. Ол 12-модульде.

Windows-та отырсаң, бұл бөлімді екі рет оқы

Бұл курсты оқитындардың көбі Windows-та отыр, ал оқулықтардың көбін Windows-та отырмайтын адамдар жазады. Саған Linux керек емес. Claude Code Windows 10 1809 немесе одан жаңа нұсқасында, 4 ГБ не одан көп жадпен, PowerShell не CMD ішінде тікелей жұмыс істейді, ал WSL міндетті емес — WSL 2 тек Claude Code-тың sandbox мүмкіндігі керек болса ғана қажет, оны таза Windows қолдамайды (орнату құжаттамасы).

Сонда да Git for Windows орнатып қой. Ол болса, Claude Code өзінің Bash құралы үшін Git Bash пайдаланады; болмаса, PowerShell құралына ауысады — оның үстіне 9-модульде git бәрібір керек болады.

Алдымен қай shell-ге қарап отырғаныңды біл.

Пәрмен жолындағы жазу Қай shell Демек
PS C:\Users\you> PowerShell PowerShell үшін жазылған орнату пәрмендерінің орны осы
C:\Users\you> CMD CMD үшін жазылған орнату пәрмендерінің орны осы
you@laptop:~$ Git Bash немесе WSL оқулықтардағы macOS/Linux пәрмендері жазылған күйінде жұмыс істейді

Содан кейін қатені қайта-қайта қайталамай, оқып шық.

Хабар Шын мәнінде не болды
The token '&&' is not a valid statement separator CMD пәрменін PowerShell ішіне көшіріп қойдың
'irm' is not recognized PowerShell пәрменін CMD ішіне көшіріп қойдың
'claude' is not recognized орнату қалтасы PATH тізімінде жоқ — оны түзе де, жаңа терминал аш
Claude Code does not support 32-bit Windows PowerShell орнына «PowerShell (x86)» терезесін ашқансың

Төртеуі де ресми орнату және орнату ақауларын жою беттерінен алынған. Ең жиі кездесетіні — PATH. Мінеки, шешімі — содан кейін терезені жауып, жаңасын аш, себебі ашық тұрған терминал PATH өзгергенін ешқашан байқамайды:

powershell
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

Жобаны агентке таныстыртып ал

Жобаның құрылымын өзің оқып отырып үйренудің қажеті жоқ. Сұра — содан кейін әр жауапты жоғарыдағы пәрмендермен өзің тексер. Бұл модульдің мәні де сол: енді сен агент айтқан нәрсені тексере аласың.

Жұмыс үстелін тексеруClaude Code · in your project folder
Мен терминалды енді ғана үйреніп жүрмін. Осы жобада мына төрт нәрсені істеп, әрқайсысын екі сөйлеммен түсіндір:

1. Қалталар құрылымын көрсет, node_modules пен .git қалтасын қоспа.
2. Dev серверін іске қосатын дәл пәрменді және ол шығаратын мекенжайды айт.
   Мұны package.json файлынан оқы - болжама.
3. .gitignore ішінде .env және node_modules бар ма, тексер. Біреуі жоқ болса,
   қоспай тұрып, қосатын жолыңды көрсет.
4. Бұл жоба оқитын барлық орта айнымалысын тек атымен тізіп бер. Мәнін ешқашан шығарма.

Басқа ештеңені өзгертпе. Бір нәрсеге күмәндансаң, болжаудың орнына солай деп айт.
Ортақ жоба · 08QAIRU Event Sign-up

Бір мүмкіндік сұрамай тұрып, жұмыс үстеліңді дайында

Қандай да бір мүмкіндік сұрамай тұрып, бұзып, қайта жөндей алатын бетке жет.

  1. mkdir qairu-event, содан кейін cd qairu-event. Бір жоба — бір қалта, Desktop қалтасында шашылып жатқан ештеңе жоқ.
  2. Жобаның қаңқасын агент құрсын. Содан кейін орнату пәрменін де, dev серверін де өзің іске қос — бір рет болса да өз қолыңмен теріп көр.
  3. Терминал шығарған мекенжайды аш. Бос дерлік бет те есептеледі.
  4. Ішінде .env және node_modules/ жазылған .gitignore файлын жаса. Кілттердің аты бар, мәндері бос .env.example файлын, содан кейін шын мәндері бар .env файлын жаса. Дәл осы ретпен — 9-модуль бұл қалтаны repo-ға айналдырмай тұрып.

Беттегі бір сөзді өзгертіп, оның браузерде жаңарғанын көріп, серверді Ctrl+C арқылы тоқтатып, содан соң ешқайдан қарамай қайта іске қоса алсаң — қадам бітті.

Бірінші commit-ке дейін0/5 дайын
Өзіңмен ала кет · cheatsheetЖергілікті орта жадынамасы

Он пәрмен, Windows қателерінің кестесі және .env ережесі — практика кезінде ашып қоюға болатын бір бетте.