Kod standartlari
FIAS loyihasida kod sifati va yaxlitligini saqlash muhim hisoblanadi. Quyidagi qoidalarga amal qilinadi:
1. TypeScript asosida yozing
Barcha komponentlar va funksiyalar TypeScript bilan yozilishi kerak.
Iloji boricha to‘liq typelar bilan ishlang (t.y. any tipidan qoching).
✅ To‘g‘ri:
❌ Noto‘g‘ri:
2. ESLint & Prettier
Loyiha ESLint va Prettier bilan sozlangan.
Kod yuborishdan oldin quyidagi buyruqlarni bajaring:
Har bir commit oldidan husky orqali avtomatik lint va prettier ishga tushadi. Xatoliklar bo‘lsa, commit rad etiladi.
3. Fayl va Folder struktura (FSD)
FIAS loyihasi FSD (Feature-Sliced Design) arxitekturasi asosida tashkil etilgan.
features/: alohida funksiyalar
entities/: ma’lumot modeliga asoslangan bloklar
shared/: umumiy util’lar, hooklar, UI komponentlar
pages/: sahifalar
❗ Har bir komponent, hook, funksiya o‘z joyida bo‘lishi kerak.
4. UI komponentlar
Tailwind CSS ishlatiladi.
Shadcn/ui kutubxonasidagi komponentlardan foydalanish tavsiya qilinadi.
Vizual izchillik uchun mavjud komponentlarni qayta ishlatmang — kerak bo‘lsa, shared/ui/ ichida umumiy komponent yarating.
5. Nomlash qoidalari
Papkalar va fayllar: kebab-case
Komponentlar, hooklar: PascalCase va camelCase
I18n fayllari: lang/uz.ts, lang/en.ts
📝 Commit Formatlari
FIAS loyihasida commit yozishda Conventional Commits formatiga amal qilinadi.
Quyidagi prefixlardan foydalaning:
feat:
Yangi funksiyalar qo‘shildi
fix:
Xatoliklar tuzatildi
docs:
Hujjatlarga oid o‘zgarishlar
style:
Kod formati, dizayn (JS o‘zgarmasdan)
refactor:
Kodni optimallashtirish (funksional emas)
test:
Testlar qo‘shildi yoki yangilandi
chore:
Texnik o‘zgarishlar (CI, konfiguratsiya)
📌 Misollar:
✅ To‘g‘ri:
feat: navbar uchun tilni almashtirish funksiyasi qo‘shildi
fix: mobil menyu yopilmay qolish xatosi tuzatildi
docs: contributing.md sahifasi yangilandi
❌ Noto‘g‘ri:
updated navbar
bug fixed
style change
✅ Yodda tuting
Commitlar aniq va qisqacha bo‘lishi kerak.
Har bir commit loyihani yaxshilashga yo‘naltirilgan bo‘lishi lozim.
Pull request oldidan husky orqali commitlar lint va format tekshiruvdan o‘tadi.
Last updated