§

Matn joylang

§

Barcha registrlar

text
  • camelCase
  • PascalCase
  • snake_case
  • CONSTANT_CASE
  • kebab-case
  • dot.case
  • path/case
  • Title Case
  • Sentence case
  • lower case
  • UPPER CASE

O'zbek IT Park a'zo kompaniyalari kundalik kod yozish ishida harf-registr konvensiyalariga tayanadi: Click va Payme to'lov tizimlari React/TypeScript front-endlarida camelCase'ni va Go mikroservislarida snake_case'ni qat'iy qo'llaydi, Uzinfocom esa o'z servislarida CONSTANT_CASE'ni tizim konstantalari uchun ishlatadi. TATU (Toshkent Axborot Texnologiyalari Universiteti) va Inha University Tashkent kompyuter ilmlari dasturlari talabalarga Python PEP 8 snake_case'ni, URL slug'larida kebab-case'ni va C/C++ makrolarida CONSTANT_CASE'ni o'rgatadi. Mahalliy open-source loyihalar va davlat raqamlashtirish tashabbuslari npm paketlarida kebab-case nomlash sxemasini qabul qiladi. O'zbek-til hujjatlar Habr.com'dagi maqolalardan ilhomlanib o'zgaruvchilarni nomlash qoidalarini muhokama qiladi.

Matn registrini o'zgartirish nima?

Matn registrini o'zgartirish kirish satrini qabul qiladi va shu so'zlarni boshqa harf-registr konvensiyasida ifodalangan ko'rinishda chiqaradi. Eng keng tarqalgan maqsadlar — camelCase va PascalCase (ko'pchilik figurali qavsli tillarda identifikatorlar uchun ishlatiladi), snake_case va CONSTANT_CASE (Python, Ruby, Rust, C makrolari), kebab-case (URL'lar, CSS klass nomlari, HTML atributlari, npm paket nomlari), dot.case (sozlamalar kalitlari, JavaScript obyekt yo'llari), path/case (fayl tizimi uslubidagi identifikatorlar), Title Case va Sentence case (sarlavhalar va nasr), shuningdek to'liq lower case va UPPER CASE. Bu o'zgartirgich kiritmangizdagi tabiiy so'z chegaralarini — bo'shliqlar, tirelar, ostkichiklar, nuqtalar, slashlar va helloWorld uslubidagi identifikatorlarni belgilaydigan lowercase→uppercase o'tishlari — aniqlaydi va har bir maqsad-registr talab qiladigan ajratuvchi va katta harf shabloni bilan qayta yig'adi.

Registrni o'zgartirish qanday ishlaydi?

Sizning kiritmangiz brauzeringizda kichik vanilla-JavaScript tokenizer va o'n bitta registr formatlovchisi yordamida to'liq ishlanadi. Yuqori darajadagi qadamlar:

  1. Kiritmangiz textarea'dan so'zma-so'z o'qiladi — siz joylagan har bir bayt xotirada lokal saqlanadi.
  2. Tokenizer kiritmani bo'shliqlar, ostkichiklar, tirelar, nuqtalar va slashlar bo'ylab ajratadi, so'ngra har bir bo'lakni qaytadan lowercase→uppercase chegaralari bo'ylab (shunday qilib helloWorld ["hello", "World"] bo'ladi) va harf↔raqam chegaralari bo'ylab (shunday qilib v2API ["v", "2", "API"] bo'ladi) ajratadi.
  3. Bo'sh tokenlar filtrlanadi va saqlanib qolgan tokenlar String.prototype.toLocaleLowerCase yordamida kichik harflarga keltiriladi, shunda turkcha, nemischa va boshqa lokallardagi Unikod harflari to'g'ri saqlanadi.
  4. O'n bitta formatlovchi keyin tokenlarni har bir maqsad-registrga navbat bilan yig'adi — camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, path/case, Title Case (and, the, of kabi kichik so'zlar ro'yxati bilan, ular birinchi yoki oxirgi so'z bo'lmasa, kichik harfda qoladi), Sentence case, to'liq lower case va to'liq UPPER CASE.
  5. Chiqish natija jadvalida har bir registr uchun bir qator bo'lib yoziladi; har bir qatorning o'z nusxa olish tugmasi bor, u eski brauzerlar uchun sinxron document.execCommand('copy') zaxira opsiyasi bilan asinxron Clipboard API'dan foydalanadi.

Nega registr o'zgartirgichdan foydalanish kerak?

  • Identifikatorlarni qayta tahrirlash: JavaScript o'zgaruvchisining nomini user_iddan userIdga, Python funksiyasining nomini helloWorlddan hello_worldga yoki Rust konstantasining nomini maxBufferdan MAX_BUFFERga belgima-belgi qo'l bilan tahrirlashsiz o'zgartiring.
  • Sozlama kalitlarini o'zgartirish: camelCase kalitlarga to'la JSON konfigni Python xizmati uchun snake_case YAML'ga yoki Helm chart uchun kebab-case'ga bir joylash bilan o'tkazing.
  • Sarlavhalarni yozish: sarlavha qoralamasini joylang va uni Title Case shaklida (Chicago Manual of Style kichik so'zlar istisnolari bilan) Sentence case shakli (AP Stylebook) yonida o'qing — nashriyotingiz qaysini ishlatishini tanlang.
  • URL slug'larini yaratish: blog post sarlavhasini joylang va kebab-case shaklini to'g'ri CMS'ingizning slug maydoniga nusxalang — tokenizer punktuatsiya va ko'p so'zli iboralarni ortiqcha ajratuvchilarsiz boshqaradi.

Registrni o'zgartirishning umumiy qo'llanilishlari qanday?

Harf-registr konvensiyalari o'rtasida almashish dasturiy injiniring, kontent yozish va ma'lumotlar injiniringi bo'ylab uchraydi:

  • Kod refaktoringi: stil qo'llanmasi o'zgarganda (masalan, backend qayta yozish paytida JavaScript camelCase → Python snake_case) kod bazasidagi identifikatorlarni xatosiz qayta nomlash.
  • API payload'larini qayta shakllantirish: camelCase JSON kalitlarini Ruby on Rails yoki Django backend'iga uzatishdan oldin snake_case'ga, yoki CSS-in-JS klass nomi uchun kebab-case'ga o'tkazish.
  • Sarlavha va slug yozish: Title Case sahifa sarlavhalari, Sentence case meta-tavsiflar va kebab-case URL slug'larini bitta manba sarlavhasidan bir qadamda ishlab chiqarish.

Registrni o'zgartirish misoli qanday ko'rinadi?

Kiritmaga Hello World API joylang. Natija jadvali bir vaqtning o'zida o'n bitta qator chiqaradi: helloWorldApi (camelCase), HelloWorldApi (PascalCase), hello_world_api (snake_case), HELLO_WORLD_API (CONSTANT_CASE), hello-world-api (kebab-case), hello.world.api (dot.case), hello/world/api (path/case), Hello World Api (Title Case), Hello world api (Sentence case), hello world api (lower case) va HELLO WORLD API (UPPER CASE). Xuddi shu kiritma helloWorldAPI sifatida joylangan bo'lsa, xuddi shu uchta so'zga tokenize bo'ladi — lowercase→uppercase chegara detektori bu shaklni ham boshqaradi.

Bu mening brauzerimda ishlaydimi?

Ha. Tokenizer va o'n bitta registr formatlovchisi brauzer yorlig'i ichida ishlaydigan taxminan 120 satr vanilla JavaScript. Hech narsa yuklanmaydi, hech qanday service worker kiritmangizni proksilamaydi va sahifa o'zgartirish qadami uchun nol tarmoq so'rovini amalga oshiradi. Yagona chiquvchi trafik — standart sahifa-yuklash resurslari (CSS, shriftlar, analitika) — matningiz hech qachon Ultim8Soft'ga yetib bormaydi.

O'zgaruvchi nomlari uchun qaysi registr formatidan foydalanishim kerak?

Bu tilga va jamoaning stil qo'llanmasiga bog'liq. JavaScript va TypeScript kod bazalari o'zgaruvchilar va funksiyalar uchun ko'pincha camelCase, sinflar va React komponentlar uchun PascalCase va atrof-muhit o'zgaruvchilari nomi va modul-darajadagi konstantalar uchun CONSTANT_CASE ishlatadi — Google JavaScript stil qo'llanmasi va Airbnb stil qo'llanmasi ikkalasi ham bu tanlovlarni belgilab qo'yadi. Python (PEP 8), Ruby va Rust o'zgaruvchilar va funksiyalar uchun snake_case'ni, sinflar uchun PascalCase'ni va modul-darajadagi konstantalar uchun CONSTANT_CASE'ni afzal ko'radi. C va C++ kod bazalari (Linux yadrosi, LLVM) funksiyalar uchun snake_case'ga va preprotsessor makrolari uchun CONSTANT_CASE'ga tayanadi. Shubhada bo'lsangiz, jamoangizning lintera yoki formatlovchisini ishga tushiring — u sizga qaysi konvensiyaning majburiy ekanligini aytadi.

Kiritma qanday tokenize qilinadi?

Tokenizer avval kiritmani har qanday bo'shliqlar ketma-ketligi, ostkichik (_), tire (-), nuqta (.) yoki slash (/) bo'ylab ajratadi. Har bir hosil bo'lgan bo'lak keyin qaytadan lowercase→uppercase chegaralari bo'ylab (shunday qilib helloWorld ["hello", "World"] bo'ladi) va harf↔raqam chegaralari bo'ylab (shunday qilib v2API ["v", "2", "API"] bo'ladi) ajratiladi. Bo'sh tokenlar filtrlanadi va saqlanib qolgan tokenlar String.prototype.toLocaleLowerCase orqali kichik harflarga keltiriladi. Formatlovchilar keyin tokenlarni qaytadan katta harfga keltiradi va har bir maqsad-registr talab qiladigan ajratuvchi bilan qayta birlashtiradi. Strategiya oltita keng tarqalgan identifikator shaklini — camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE va oddiy bo'shliq bilan ajratilgan nasrni — qutidan tashqari boshqaradi.

Unicode / ASCII bo'lmagan belgilar haqida nima deyish mumkin?

Unikod harflari aylanish sayohatidan omon qoladi. Tokenizer String.prototype.toLocaleLowerCase va toLocaleUpperCase ishlatadi, ular lokal-spetsifik registr qoidalariga rioya qiladi — turkcha nuqtali va nuqtasiz i, nemischa ßning SSga ko'tarilishi, fransuzcha va ispanchadagi aksanli lotin harflari va boshqalar. Ajratuvchi to'plamida bo'lmagan harf bo'lmagan belgilar (bo'shliqlar, _, -, ., /) — masalan, raqamlar, aksanli harflar yoki CJK belgilari — ular paydo bo'lgan token ichida saqlanadi va registr formatlovchilari ularni so'zma-so'z qayta chiqaradi. Bu nœud_principal kabi kirish ["nœud", "principal"]ga tokenize bo'lishi va nœudPrincipal (camelCase) yoki NœudPrincipal (PascalCase)ga toza o'tishi degani.

Bu registr o'zgartirgich — tokenizer va o'n bitta formatlovchini brauzeringizda to'liq ishga tushiradigan bitta statik sahifa — vendor kutubxonasi yo'q, har bir o'zgartirish uchun tarmoq qo'ng'irog'i yo'q, hisob yo'q. Yuqoriga istalgan matnni joylang, o'n bitta registr chiqishini yonma-yon ko'rib chiqing va kerakli birini nusxalang.