Fəsil 10 · 6 dəq oxu

Claude Code Desktop-dan istifadə

Claude Code Desktop-dan istifadə

Terminal Claude Code-un doğma mühitidir, amma yeganə mühiti deyil. Claude Desktop tətbiqinin içindəki Claude Code eyni qrafik interfeyslə verir: session-lar yan paneldə, dəyişikliklər diff kimi, icazə sorğuları düymə ilə, bir neçə layihə eyni anda. Bu fəsil Desktop-u iki məqsədlə istifadə edir. Birincisi, paralel session-ların idarəsini göstərmək: eyni spec-dən iki ayrı implementasiya. İkincisi, uzun müddətli yaddaşın, yəni iyerarxik CLAUDE.md fayllarının və memory/ qovluğunun, və browser üzərindən test-in praktikada necə işlədiyini göstərmək.

Terminal, Desktop, IDE, web

Claude Code-un dörd səthi var və hamısı eyni harness-i işlədir:

SəthNə verirNə vaxt
TerminalTam nəzarət, skript, SSH, headlessGündəlik iş, avtomatlaşdırma
Desktop tətbiqiSession siyahısı, diff görünüşü, paralel layihələr, icazə düymələriBir neçə session-ı eyni anda izləmək
IDE genişlənməsiEditor-da diff, seçilmiş kod context kimi, inline reviewKod oxuyub redaktə edərkən
WebCloud mühitində session, repository-ni clone edən Lokal maşından asılı olmayan iş, mobil

Seçim üstünlük məsələsidir, amma bir qayda var: konfiqurasiya hamısında eynidir. CLAUDE.md, settings, hook-lar, MCP server-lər, skill-lər, hamısı repository-dən və istifadəçi qovluğundan oxunur. Desktop-a keçəndə heç nəyi yenidən qurmursunuz. Fərq yalnız interfeysdədir: Desktop-da hər session ayrı pəncərədir, hər dəyişikliyi faylın diff-i kimi görünür, icazə sorğuları terminal mətni yox, düymədir, və bir session işləyərkən digərinə keçmək klik məsafəsindədir.

Bu sonuncu xüsusiyyət Desktop-un əsas dəyəridir. Terminalda üç paralel session üç terminal pəncərəsi və hansının nə etdiyini yadda saxlamaq deməkdir. Desktop-da hər session-ın vəziyyəti, yəni işləyir, təsdiq gözləyir, bitib, siyahıda görünür.

Nümunə: eyni spec, iki implementasiya

6-cı fəsildə paralel session-lar üçün git worktree-ni gördük. Desktop bu işi asanlaşdırır: eyni repository-ni iki ayrı qovluqda, iki ayrı session-da açırsınız və hər ikisinə eyni spec-i verirsiniz. relnotes üçün spec memory/spec/CLAUDE.md faylındadır: data modeli, səhifələr, axtarış, test tələbləri. Hər session-a eyni cümlə gedir: "spec-ə uyğun tam implementasiya yaz".

Nəticə 2-ci fəslin probabilistik generasiya dərsini canlı göstərir. Birinci implementasiya data-nı bir faylda saxlayıb siyahını server tərəfdə render edir; ikinci implementasiya eyni data modeli ilə client tərəfdə filtr qurur. Hər ikisi spec-i qarşılayır, hər ikisində test-lər keçir, amma kodun strukturu, komponentlərin bölgüsü, hətta adlandırma fərqlidir.

Bunun praktik faydası iki yerdədir. Birincisi, spec-in yoxlanması: iki implementasiyanın ayrıldığı yer spec-in natamam olduğu yerdir. Axtarışın diakritiklərə həssaslığı bir implementasiyada var, digərində yoxdursa, spec bunu deməyib. İkincisi, seçim: iki variantdan yaxşısını götürmək və ya birinin data qatını digərinin UI qatı ilə birləşdirmək olur. Desktop-da iki session-ı yan-yana görmək bu müqayisəni mümkün edir.

İyerarxik CLAUDE.md

relnotes layihəsinin yaddaşı bir faylda deyil, iyerarxiyadadır:

relnotes/
├── CLAUDE.md                 # command-lar, architecture, test strategiyası
├── memory/
│   ├── spec/CLAUDE.md        # tam məhsul spec-i
│   ├── frontend/CLAUDE.md    # UI qərarları: komponent bölgüsü, stil qaydaları
│   └── screenshots/          # browser test-lərinin şəkilləri
└── src/
    └── api/CLAUDE.md         # API qovluğunun öz qaydaları

Kök CLAUDE.md qısadır: npm run dev, npm run build, npm test kimi command-lar, üç cümləlik architecture, test strategiyası və bir istiqamət: "məhsul tələbləri memory/spec/-də, UI qərarları memory/frontend/-dədir; lazım olanda oxu". src/api/CLAUDE.md yalnız API qovluğunda işləyəndə yüklənir. memory/ altındakı fayllar isə avtomatik yüklənmir; onları istinadla, yəni lazım olanda, oxuyur.

Bu bölgünün məntiqi birinci fəsildəndir: hər session-da lazım olan şey kökdə, bəzən lazım olan şey memory/-də, yalnız bir qovluqda lazım olan şey həmin qovluqda. Context xərci işə görə dəyişir: UI tapşırığında memory/frontend/ oxunur, API tapşırığında yox.

memory/ qovluğu: uzunmüddətli yaddaş

memory/ qovluğunun ikinci rolu yazmaqdır. iş bitirəndə qəbul etdiyi qərarları geri yazır: "kart komponenti üçün HookCard adı seçildi, prop-ları tipli Hook obyektidir; tarix formatı ISO, göstərilən format lokal". Növbəti session, hətta /clear-dən və ya tamam başqa gündən sonra, bu faylı oxuyur və eyni qərarlarla davam edir. Kök CLAUDE.md-dəki bir sətir bunu avtomatlaşdırır: "Dizayn qərarı verəndə onu memory/frontend/CLAUDE.md-yə əlavə et".

Bu, context window-undan kənarda yaddaşıdır və 11-ci fəsildəki deep file system sütununun əl ilə qurulmuş formasıdır. İki qayda onu işlək saxlayır. Birincisi, yaddaş faylları da redaktə olunmalıdır: köhnəlmiş qərar yanlış göstərişdir. İkincisi, fayllar bir-birini təkrarlamamalıdır: spec bir yerdə, qərarlar bir yerdə, kök CLAUDE.md yalnız yol göstərir.

Browser ilə test: Playwright MCP

UI implementasiyasının spec-ə uyğunluğunu yoxlamağın ən etibarlı yolu ona baxmaqdır. Playwright MCP server-i browser verir: səhifəni açır, elementləri tapır, klik edir, screenshot çəkir. 4-cü fəsildəki kimi qoşulur:

claude mcp add playwright -- npx @playwright/mcp@latest

Sonra tapşırıq belə olur: "Dev server-i işə sal, ana səhifəni aç, axtarışa 'auth' yaz, nəticə siyahısının screenshot-unu memory/screenshots/search-auth.png kimi saxla və spec-dəki tələblərlə müqayisə et". səhifəni real browser-də görür, elementlərin olub-olmadığını yoxlayır, və screenshot-u fayla yazır. Screenshot-ların memory/ altında saxlanmasının səbəbi var: onlar sonrakı session-larda referans olur, "əvvəlki vəziyyət belə idi, indi belədir" müqayisəsi mümkün olur.

Browser test-i bağlayır. 2-ci fəsildə dedik ki, yalnız ölçə bildiyi şeyi düzəldə bilir; unit test məntiqi ölçür, browser isə görünüşü. "düymə sağdadır" iddiasını screenshot ilə yoxlayanda, siz ona inanmaq məcburiyyətində qalmırsınız.

Desktop-da bu iş axını xüsusilə rahatdır: iki implementasiya üçün iki session, hər birində Playwright ilə eyni ssenari, screenshot-lar yan-yana. Spec-in hansı implementasiyada daha yaxşı qarşılandığı bir baxışla görünür.

Desktop-da review və icazə

Desktop-un terminaldan ən çox fərqləndiyi yer dəyişikliklərin review-udur. Terminalda Edit-i mətn kimi axır; Desktop-da hər dəyişiklik fayl üzrə diff görünüşündə dayanır və siz onu commit-dən əvvəl oxuyursunuz. Bu, işini PR kimi review etməyin ən yaxın formasıdır: hansı fayllar dəyişib, hər faylda nə əlavə olunub, nə silinib. Review vərdişi burada da eynidir: izahını yox, diff-i oxuyun.

İcazə sorğuları da düymə kimi gəlir və bir neçə session paralel işləyəndə bu, vacib olur: hansı session nəyə icazə istəyir, siyahıda görünür və siz bir-bir cavab verirsiniz. Qayda dəyişmir: "həmişə icazə ver" seçimi settings faylına yazılır və sonrakı session-larda, terminalda da, qüvvədədir. Desktop-da verilən icazə terminalda verilən icazədən fərqlənmir, çünki ikisi də eyni konfiqurasiyanı oxuyur.

Web səthi bir addım da irəli gedir: session sizin maşınınızda yox, cloud mühitində işləyir, repository oraya clone olunur və nəticə branch kimi qayıdır. Bu, uzun tapşırığı başladıb kompüteri bağlamağa, telefondan vəziyyətə baxmağa imkan verir. Qiymət mühitin fərqidir: lokal maşındakı alətlər, environment dəyişənləri və daxili şəbəkə orada yoxdur; CLAUDE.md-də "test-lər üçün lokal database lazımdır" kimi fərziyyələr cloud session-da işləmir. Hansı səthdə işlədiyinizdən asılı olmayaraq, layihənin mühit tələblərini açıq yazmaq həmişə faydalıdır.

Session-ların idarəsi

Desktop ilə bir neçə session işlədəndə bir neçə vərdiş faydalıdır:

  • Hər session-a bir məqsəd. Session-ın adı və ilk məqsədi deməlidir; paralel session-lar bir-birinin işinə girməməlidir.
  • Worktree ilə izolyasiya. Eyni qovluqda iki session eyni faylı dəyişə bilər; ayrı worktree bunun qarşısını alır.
  • Təsdiq növbəsi. Bir neçə session eyni anda icazə gözləyəndə Desktop-un vəziyyət göstəricisi hansının gözlədiyini deyir; uzun tapşırıqları avtomatik qəbul rejimində, riskli olanları default rejimdə işlədin.
  • Nəticəni yaddaşa yazdırın. Session bitəndə qərarlar memory/-yə, yarımçıq işlər isə plan faylına yazılsın; növbəti session oradan başlayır.

Terminal, Desktop, IDE və web arasında seçim sizin üslubunuzdur; konfiqurasiya və prinsiplər dəyişmir. Dəyişən yalnız neçə eyni anda rahat idarə edə bilməyinizdir.

Tapşırıqlar

  1. Kiçik bir üçün spec yazıb onu iki ayrı worktree-də iki session-a verin. Nəticələri müqayisə edin və ayrıldıqları hər nöqtəni spec-də natamam bənd kimi qeyd edin. Spec-i düzəldib üçüncü session-da təkrar edin: variasiya azaldımı?
  2. Layihənizin yaddaşını iyerarxiyaya bölün: kök CLAUDE.md, memory/ altında spec və qərarlar, bir alt qovluq CLAUDE.md. Hər səviyyənin yükləndiyi anı /context ilə müşahidə edin.
  3. Playwright MCP qoşun və UI-nin bir ssenarisini test etdirin: səhifə aç, hərəkət et, screenshot saxla, spec ilə müqayisə et. iddia etdiyi ilə screenshot-da gördüyünüz üst-üstə düşdümü?