RƏSƏDXANA

Həftə 4 · 08/23

Yazmadığın, amma oxumalı olduğun əsaslar

6 dəqiqəlik oxu

Avtomobil sürmək üçün mühərriki yığmağı bilmək lazım deyil. Amma qəribə bir səs gələndə «bu normal deyil» deyə bilməlisən — yoxsa yolda qalırsan.

Sintaksisi əzbərləmirsən. Amma HTTP-nin kimliyi necə daşıdığını, sətirdə backslash-ın nə etdiyini və bir thread-in nə demək olduğunu görən kimi tanımalısan.

const path = "C:\Users\Ana";   // two backslashes = one backslash
const bad  = "C:UsersAna";     // U and A are not what you meant
Eyni görünən iki sətir. Birincisi doğru yol, ikincisi başqa simvollardır — və ekranda fərq görünmür.

Çox deyilən söz: İki səhv ifrat: ya sintaksisi əzbərlə, ya da AI bilir deyə əsasları keç.

Sintaksisi əzbərləmirsən. Amma bu kursdakı hər xəta əslində əsaslarla bağlı idi: cookie saytlar arasında necə gedir, backslash necə escape olunur, HTTP kimliyi necə daşıyır, transaction nəyə zəmanət verir. Bunları görən kimi tanımalısan. AI onları yazacaq, səhvi isə sən tutmalısan.

HTTP-də kimlik harada gedir

Ya Cookie header-ində (server qoyur, atributlar nə vaxt göndərildiyini təyin edir), ya da Authorization header-ində (kodun göndərir). Gövdə və query client-in istədiyi hər şeydir.

Sən bunu istə

GET /api/posts HTTP/1.1
Cookie: sid=...                 <- identity (server-set)
Authorization: Bearer ...       <- identity (your code)
X-User-Id: 42                   <- NOT identity: anyone can write this

Sətir yazdığın şey deyil

«\n» bir simvoldur, «\\» bir backslash-dır. LaTeX və regex çox olan kodda String.raw işlət ki, backslash olduğu kimi qalsın.

AI belə yazır

const half = "\frac{1}{2}";   // \f is a form feed

Sən bunu istə

const half = "\\frac{1}{2}";

await gözləməni buraxır, işi yox

JavaScript bir thread-də işləyir. CPU-ya ağır sinxron kod async funksiyanın içində olsa belə hər şeyi bloklayır.

Diff oxuyanda soruş: AI-dan izah istə: «bu anlayışı mənim kodumdan bir nümunə ilə izah et və hansı xətaya səbəb ola biləcəyini göstər».

Terminlər

HTTP request / response
Metod, yol, header-lər, gövdə; status kodu. Kimlik harada gedir, bunu bilməlisən.
CORS
Brauzerin başqa domenə sorğunu buraxıb-buraxmamaq qaydası. Təhlükəsizlik deyil, brauzer siyasətidir.
escape sequence
Sətirdə backslash ilə başlayan xüsusi simvol: \n, \r, \t. Səhv işlədiləndə mətni səssizcə dəyişir.
encoding (UTF-8)
Simvolların bayta necə çevrildiyi. Səhv olanda «ə» «Ã™» kimi görünür.
event loop
JavaScript-in async işləri növbə ilə necə icra etdiyi; await-in əslində nə etdiyi.
SQL JOIN
İki cədvəli ortaq sütun üzrə birləşdirmək; N+1-in əvəzi çox vaxt budur.

İndi sən yoxla

1Bu düstur KaTeX-də niyə səhv görünür?

const eq = "\frac{a}{b}";

2CORS haqqında hansı doğrudur?

Hazır prompt

İngiliscədir, çünki terminlər ingiliscədir. Tərcümə etsən də terminləri saxla.

prompt
Explain <concept> to me using code from THIS repository, not a generic example.

- Show where it matters here (file:line).
- Show one bug it could cause here.
- Show how I would spot that bug in a diff.

Then ask me three questions to check I understood, and wait for my answers.

Öz kodunda

  1. 1Bu dərsdəki hər termin üçün prompt-u işlət.
  2. 2Üç suala baxmadan cavab ver.
  3. 3Səhv cavab verdiyin termini bir həftə sonra yenidən soruş.

Bunu görəndə bitib: Hər termini öz kodundan bir nümunə ilə izah edə bilirsən.

Daha dərinə

Oxumaq üçün