Bosh sahifa Wiki Attribute

Attribute

Attribute — obyekt, element, yozuv yoki dastur deklaratsiyasiga tegishli xususiyatni nom va qiymat ko‘rinishida ifodalovchi birlik. Atamaning aniq ma’nosi kontekstga bog‘liq: HTML’da element metadata’si, obyekt modelida field yoki property, database’da entity belgisi, compilerda esa deklaratsiyaga biriktirilgan annotatsiya bo‘lishi mumkin. Umumiy jihati — attribute asosiy obyekt haqida qo‘shimcha tavsif beradi.

HTML atributlari

HTML element boshlanish tegida atributlar yoziladi:

<input type="email" name="contact" required>

Bu yerda type, name va required input xulqini belgilaydi. Boolean attribute mavjud bo‘lsa true hisoblanadi; required="false" uni false qilmaydi, atributni olib tashlash kerak. data-* atributlari sahifaga xos metadata saqlashi mumkin, lekin katta application state yoki maxfiy qiymat uchun mos emas.

HTML attribute va DOM property bir-biriga bog‘liq, ammo aynan bir narsa emas. Attribute dastlabki markup qiymatini, property esa joriy runtime holatini ko‘rsatishi mumkin. Input value property foydalanuvchi yozgan qiymat bilan o‘zgaradi, attribute esa original defaultni saqlashi ehtimoli bor. Framework binding bu farqni yashirishi mumkin, lekin custom element va formada muhimdir.

Obyekt va til metadata’si

Obyektga oid attribute ayrim tilda bevosita field yoki property sinonimidir. Python’da obj.name attribute lookup descriptor, class va instance dictionary orqali bajarilishi mumkin. C# va Java kabi muhitlarda attribute yoki annotation class, method va fieldga metadata biriktiradi. Runtime reflection yoki compiler bu metadata asosida validation, serialization va dependency injection xulqini tanlaydi.

Metadata kodni deklarativ qiladi, ammo yashirin boshqaruv oqimini ko‘paytirishi mumkin. Bir annotation database transaction, authorization va retry’ni birdan yoqsa, method xulqini koddan tushunish qiyinlashadi. Attribute contracti, inheritance qoidasi va ishlash tartibi hujjatlashtiriladi.

Ma’lumotlar modelida

Entity-relationship modelida attribute entity xususiyatidir, masalan foydalanuvchining email yoki created_at qiymati. U atomic, composite, multivalued yoki derived bo‘lishi mumkin. Relational jadvalda ko‘pincha column sifatida amalga oshiriladi. Constraint type, nullability, uniqueness va domain qoidalarini himoya qiladi.

Directory service’da attribute ko‘p qiymatli bo‘lishi va schema OID bilan belgilanishi mumkin. Access control butun entry emas, ayrim attribute darajasida qo‘llanishi ehtimoli bor. Shaxsiy maydon export va logda maskalanadi. “Attribute” nomi bir xil bo‘lsa ham, HTML atributini database column bilan to‘g‘ridan-to‘g‘ri tenglashtirish to‘g‘ri emas.

Nomlash va evolyutsiya

Attribute nomi barqaror public contract bo‘lsa, uni o‘zgartirish consumerlarni buzadi. Serializer eski va yangi nomni migration davrida qo‘llashi mumkin. Default qiymatning mavjud emaslikdan farqi aniq belgilanadi: maydon yo‘q, null va bo‘sh string turli ma’noga ega bo‘lishi mumkin.

Ishonchsiz attributelarni DOM’ga qo‘yishda kontekstga mos API ishlatiladi. Event handler, URL va style atributlari oddiy matndan ko‘ra kuchliroq xavfga ega. Allowlist va typed property assignment raw string concatenationdan xavfsizroq. Accessibility uchun aria-* atributlari faqat native semantika yetishmaganda, spetsifikatsiyaga muvofiq qo‘llanadi.

CSS selector va kuzatish

CSS [disabled] yoki [data-state="open"] kabi attribute selector orqali element tanlaydi. Selector DOM property’ning joriy qiymatini emas, markup attribute holatini ko‘rishi mumkin. UI state’ni attribute bilan aks ettirish style va accessibility’ni muvofiqlashtiradi, lekin boolean semantics to‘g‘ri ishlatiladi.

MutationObserver attribute o‘zgarishini kuzatadi. Kuzatuvchi keraksiz barcha atributga ulanmasdan attributeFilter bilan cheklanadi. Callback ichidagi yangi o‘zgarish feedback loop yaratishi mumkin. Performance uchun tez-tez o‘zgaradigan animatsiya holati DOM attribute orqali emas, mos rendering mexanizmi bilan boshqariladi.

Bog‘liq tushunchalar

Property, Field, Annotation, Metadata, HTML element, Entity, Schema