Mundarija (61)
- Mundarija
- 1. Frontend: UI Komponentlar va Headless Primitivlar
- 1.1. shadcn/ui
- 1.2. Radix UI Primitives
- 1.3. Lucide React
- 1.4. Boshqa UI Kutubxonalar taqqoslovi
- 2. Frontend: Styling, CSS va Dizayn Tizimlari
- 2.1. Tailwind CSS v4
- 2.2. clsx va tailwind-merge (va CVA)
- 3. Formalar va Sxemalar Validatsiyasi
- 3.1. React Hook Form + Zod
- 3.2. Valibot — Zod alternativi
- 4. Animatsiyalar, Mikro-interaktivlik va Gestures
- 4.1. Framer Motion (motion/react)
- 4.2. AutoAnimate (@formkit/auto-animate)
- 4.3. Embla Carousel
- 5. Ma'lumotlar Vizualizatsiyasi va Diagrammalar
- 5.1. Recharts
- 5.2. Tanlov mezoni: Recharts vs Chart.js vs ECharts
- 6. Katta Jadvallar va Ro'yxatlar Virtualizatsiyasi
- 6.1. TanStack Table v8 (@tanstack/react-table)
- 6.2. TanStack Virtual (@tanstack/react-virtual)
- 7. Holat Boshqaruvi (State Management)
- 7.1. Zustand
- 7.2. State Menejerlari taqqoslash xaritasi:
- 8. Data Fetching, Kesh va Tarmoq Aloqasi
- 8.1. TanStack Query v5 (@tanstack/react-query)
- 8.2. Ky — Zamonaviy HTTP mijoz
- 9. Sana va Vaqt bilan Ishlash (Date & Time)
- 9.1. date-fns
- 10. Toast, Modallar va Bildirishnomalar
- 10.1. Sonner
- 11. Drag and Drop va Fayllarni Yuklash
- 11.1. @dnd-kit
- 11.2. react-dropzone
- 12. Boy Matn Muharrirlari (Rich Text / Markdown)
- 12.1. Tiptap
- 12.2. Monaco Editor (@monaco-editor/react)
- 13. Hujjatlar (PDF, Excel, CSV) va Rasm / Fayllar
- 13.1. Excel va CSV eksporti: exceljs va papaparse
- 13.2. PDF Yaratish: @react-pdf/renderer va pdfkit
- 13.3. Rasm siqish: sharp (Backend) va browser-image-compression (Frontend)
- 14. Yordamchi Funksiyalar (Utility Libraries)
- 14.1. es-toolkit — Zamonaviy Lodash
- 14.2. nanoid
- 15. Backend Web Frameworklar va Marshrutlash
- 15.1. NestJS vs Fastify vs Hono
- 16. Database Drayverlar, ORM va Query Builderlar
- 16.1. Drizzle ORM
- 17. Autentifikatsiya, Shifrlash va Xavfsizlik
- 17.1. jose — Web Crypto JWT
- 17.2. argon2 va bcrypt
- 18. Asinxron Navbatlar va Fon Vazifalari
- 18.1. BullMQ
- 19. Logging, Telemetriya va Monitoring
- 19.1. Pino
- 19.2. Sentry
- 20. CLI va Terminal Asboblari
- 21. Testlash va Mocking
- 22. Tooling, Build va Paket Menejerlari
- Xulosa va Amaliy Yo'l-yo'riq
Zamonaviy Kutubxonalar va Toollar Ensiklopediyasi (NPM & Ecosystem)
"Dasturlash Kitobi" Hamroh Ma'lumotnomasi Dunyoda va O'zbekiston IT bozorida eng ko'p ishlatiladigan, sanoat standarti darajasidagi 150+ ta zamonaviy vositalar, kutubxonalar va npm paketlarining to'liq ensiklopedik ma'lumotnomasi. Har bir vosita uchun: vazifasi, o'rnatish, qachon tanlash kerakligi, minimal ishchi kod va professional tavsiyalar.
Mundarija
- Frontend: UI Komponentlar va Headless Primitivlar
- Frontend: Styling, CSS va Dizayn Tizimlari
- Formalar va Sxemalar Validatsiyasi
- Animatsiyalar, Mikro-interaktivlik va Gestures
- Ma'lumotlar Vizualizatsiyasi va Diagrammalar
- Katta Jadvallar va Ro'yxatlar Virtualizatsiyasi
- Holat Boshqaruvi (State Management)
- Data Fetching, Kesh va Tarmoq Aloqasi
- Sana va Vaqt bilan Ishlash (Date & Time)
- Toast, Modallar va Bildirishnomalar
- Drag and Drop va Fayllarni Yuklash
- Boy Matn Muharrirlari (Rich Text / Markdown)
- Hujjatlar (PDF, Excel, CSV) va Rasm / Fayllar
- Yordamchi Funksiyalar (Utility Libraries)
- Backend Web Frameworklar va Marshrutlash
- Database Drayverlar, ORM va Query Builderlar
- Autentifikatsiya, Shifrlash va Xavfsizlik
- Asinxron Navbatlar va Fon Vazifalari
- Logging, Telemetriya va Monitoring
- CLI va Terminal Asboblari
- Testlash va Mocking
- Tooling, Build va Paket Menejerlari
1. Frontend: UI Komponentlar va Headless Primitivlar
An'anaviy CSS kutubxonalaridan farqli ravishda, zamonaviy frontend rivoji Headless UI (mantiq va a11y bor, stil yo'q) hamda Nusxa-joylashtir (Copy-Paste) modeliga o'tdi.
1.1. shadcn/ui
- Vazifasi: Loyihaga to'liq manba kodi ko'chiriladigan, Radix UI va Tailwind asosidagi zamonaviy komponentlar to'plami.
- O'rnatish:
npx shadcn@latest initvanpx shadcn@latest add button dialog table - Qachon tanlanadi: 2024-2026 yillarda yangi Next.js, Vite yoki Remix loyihalari uchun de-fakto standart. Kod to'liq sizning nazoratingizda bo'ladi, npm moduli sifatida qotib qolmaydi.
- Ishlatilishi:tsx
import { Button } from "@/components/ui/button"; export default function App() { return <Button variant="outline" size="lg">Batafsil</Button>; }
1.2. Radix UI Primitives
- Vazifasi: WAI-ARIA standartlariga 100% mos, klaviatura boshqaruvi va fokus trapiga ega xom (boshlang'ich stil berilmagan) primitivlar.
- O'rnatish:
npm i @radix-ui/react-dialog @radix-ui/react-dropdown-menu @radix-ui/react-popover - Qachon tanlanadi: O'z dizayn tizimingizni noldan yaratayotganda yoki murakkab modallar, menyular yaratishda.
1.3. Lucide React
- Vazifasi: Feather Icons ning zamonaviy va doimiy yangilanib turuvchi vorisi. 1000 dan ortiq toza, vektor SVG ikonkalari.
- O'rnatish:
npm i lucide-react - Qachon tanlanadi: Loyihada yagona, ko'rkam va tree-shakeable ikonka to'plami kerak bo'lganda.
- Ishlatilishi:tsx
import { Search, ChevronRight, CheckCircle2 } from "lucide-react"; <Search className="w-5 h-5 text-gray-500 hover:text-blue-500 transition-colors" />
1.4. Boshqa UI Kutubxonalar taqqoslovi
| Kutubxona | Stil turi | Afzalligi | Kamchiligi |
|---|---|---|---|
| shadcn/ui | Tailwind | To'liq nazorat, eng zamonaviy dizayn, noldan moslashuvchan | Har bir loyihaga fayllarni ko'chirish talab etiladi |
| MUI (Material UI) | Emotion / Pigment CSS | Tayyor Material Design, minglab tayyor xususiyatlar | Og'ir bundle hajmi, Next.js RSC bilan integratsiya murakkab |
| Ant Design | CSS-in-JS | Katta korporativ ERP va ichki admin panellar uchun tayyor jadvallar | Xitoy dizayn maktabi, stilni Tailwind'ga moslash qiyin |
| Mantine | CSS Modules | Juda boy hooklar va komponentlar ekotizimi | Tailwind bilan ishlatish noqulay |
| HeroUI (NextUI) | Tailwind Variants | Chiroyli animatsiyalar, qora mavzu (dark mode) zo'r tayyorlangan | shadcn ga qaraganda kamroq moslashuvchan |
2. Frontend: Styling, CSS va Dizayn Tizimlari
2.1. Tailwind CSS v4
- Vazifasi: Brauzer yukini nolga tushiruvchi eng mashhur utility-first CSS frameworki.
- O'rnatish:
npm i tailwindcss @tailwindcss/vite - Asosiy yutuqlari: CSS fayl ichida
@themeorqali to'g'ridan-to'g'ri konfiguratsiya qilish, Rust asosidagi Oxide dvigateli bilan 10 barobar tezroq kompilyatsiya.
2.2. clsx va tailwind-merge (va CVA)
- Vazifasi: Shartli sinflarni birlashtirish va Tailwind sinflari o'rtasidagi ziddiyatlarni bartaraf etish (
cn()helperi). - O'rnatish:
npm i clsx tailwind-merge class-variance-authority - Ishlatilishi (
lib/utils.ts):tsimport { clsx, type ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } - CVA bilan variantlar yaratish:ts
import { cva } from "class-variance-authority"; export const buttonVariants = cva( "inline-flex items-center justify-center font-medium rounded-md transition-colors", { variants: { variant: { primary: "bg-blue-600 text-white hover:bg-blue-700", danger: "bg-red-600 text-white hover:bg-red-700", ghost: "hover:bg-gray-100 text-gray-700", }, size: { sm: "h-8 px-3 text-xs", md: "h-10 px-4 text-sm", lg: "h-12 px-6 text-base", }, }, defaultVariants: { variant: "primary", size: "md", }, } );
3. Formalar va Sxemalar Validatsiyasi
3.1. React Hook Form + Zod
- Vazifasi: Keraksiz qayta renderlashlarsiz formalar holatini boshqarish va TypeScript turlari bilan 100% integratsiyalashgan sxemalar validatsiyasi.
- O'rnatish:
npm i react-hook-form @hookform/resolvers zod - Ishlatilishi:tsx
import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; const registerSchema = z.object({ email: z.string().email("Yaroqsiz email manzili"), password: z.string().min(8, "Parol kamida 8 ta belgidan iborat bo'lsin"), age: z.coerce.number().min(18, "Yosh kamida 18 bo'lishi shart"), }); type RegisterFormData = z.infer<typeof registerSchema>; export function RegisterForm() { const { register, handleSubmit, formState: { errors } } = useForm<RegisterFormData>({ resolver: zodResolver(registerSchema), }); const onSubmit = (data: RegisterFormData) => { console.log("Validatsiya qilindi:", data); }; return ( <form onSubmit={handleSubmit(onSubmit)} className="space-y-4"> <div> <input {...register("email")} placeholder="Email" className="border p-2 rounded" /> {errors.email && <p className="text-red-500 text-xs">{errors.email.message}</p>} </div> <button type="submit" className="bg-black text-white px-4 py-2 rounded">Yuborish</button> </form> ); }
3.2. Valibot — Zod alternativi
- Vazifasi: Zod ga qaraganda 90% kichikroq bundle hajmi (tree-shaking qilinganda 1-2 KB).
- O'rnatish:
npm i valibot - Qachon tanlanadi: Mobil brauzerlar va bundle hajmi o'ta qattiq cheklangan frontend loyihalarda.
4. Animatsiyalar, Mikro-interaktivlik va Gestures
4.1. Framer Motion (motion/react)
- Vazifasi: React uchun eng mukammal deklarativ animatsiya va layout animatsiyalari kutubxonasi.
- O'rnatish:
npm i motion(yokinpm i framer-motion) - Ishlatilishi:tsx
import { motion, AnimatePresence } from "motion/react"; export function FadeCard({ isVisible }: { isVisible: boolean }) { return ( <AnimatePresence> {isVisible && ( <motion.div initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} exit={{ opacity: 0, y: -20 }} transition={{ duration: 0.3, ease: "easeOut" }} className="p-6 bg-white rounded-xl shadow-lg" > Ma'lumotlar yuklandi! </motion.div> )} </AnimatePresence> ); }
4.2. AutoAnimate (@formkit/auto-animate)
- Vazifasi: Bitta qator kod bilan ro'yxatlar (list), qatorlar o'chirilishi yoki qo'shilishiga avtomatik silliq animatsiya beruvchi 2KB vosita.
- O'rnatish:
npm i @formkit/auto-animate - Ishlatilishi:tsx
import { useAutoAnimate } from "@formkit/auto-animate/react"; export function TodoList({ items }: { items: string[] }) { const [parentRef] = useAutoAnimate(); return ( <ul ref={parentRef}> {items.map(item => <li key={item}>{item}</li>)} </ul> ); }
4.3. Embla Carousel
- Vazifasi: Karusel, slaydlar va gallery yaratish uchun eng yengil (library-agnostic), touch va swipe ni qo'llab-quvvatlovchi zamonaviy dvigatel (shadcn Carousel aynan shu asosda qurilgan).
- O'rnatish:
npm i embla-carousel-react
5. Ma'lumotlar Vizualizatsiyasi va Diagrammalar
Admin panellar, CRM tizimlar va monitoring ekranlarining markaziy qismi.
5.1. Recharts
- Vazifasi: SVG asosli deklarativ diagrammalar to'plami.
- O'rnatish:
npm i recharts - Ishlatilishi:tsx
import { ResponsiveContainer, AreaChart, Area, XAxis, YAxis, Tooltip, CartesianGrid } from "recharts"; const data = [ { oy: "Yan", daromad: 4000 }, { oy: "Fev", daromad: 7000 }, { oy: "Mar", daromad: 12000 }, ]; export function RevenueChart() { return ( <div className="h-72 w-full"> <ResponsiveContainer width="100%" height="100%"> <AreaChart data={data}> <CartesianGrid strokeDasharray="3 3" vertical={false} /> <XAxis dataKey="oy" /> <YAxis /> <Tooltip /> <Area type="monotone" dataKey="daromad" stroke="#2563eb" fill="#93c5fd" /> </AreaChart> </ResponsiveContainer> </div> ); }
5.2. Tanlov mezoni: Recharts vs Chart.js vs ECharts
| Talab | Tavsiya qilinadigan vosita | Sababi |
|---|---|---|
| Oddiy va o'rta biznes grafiklari (SaaS, Dashboard) | Recharts | JSX bilan uyg'un, Tailwind bilan oson stillanadi |
| 50,000+ nuqtali treyding yoki sensor ma'lumotlari | Chart.js (react-chartjs-2) |
HTML5 Canvas orqali xotira va renderingni tejaydi |
| Murakkab 3D, geografik xarita va geovizualizatsiya | Apache ECharts (echarts-for-react) |
Sanoat darajasidagi ulkan funksionallik va xaritalar to'plami |
6. Katta Jadvallar va Ro'yxatlar Virtualizatsiyasi
6.1. TanStack Table v8 (@tanstack/react-table)
- Vazifasi: Headless jadval arxitekturasi. Saralash, global qidiruv, ustunlarni filtrlash, ko'p bosqichli sahifalash (pagination) mantiqini beradi, HTML jadvalni o'zingiz Tailwind bilan chizasiz.
- O'rnatish:
npm i @tanstack/react-table - Pro-tip: Minglab qatorlarni ko'rsatayotganda TanStack Table bilan birga TanStack Virtual ishlatiladi.
6.2. TanStack Virtual (@tanstack/react-virtual)
- Vazifasi: DOM ga faqat ekranda ko'rinib turgan 20-30 ta elementni chizish (virtual scrolling). 1,000,000 ta qator bo'lsa ham brauzer qotmaydi (60 FPS).
- O'rnatish:
npm i @tanstack/react-virtual
7. Holat Boshqaruvi (State Management)
7.1. Zustand
- Vazifasi: Oddiy, yengil (1KB), boilerplate kodi deyarli bo'lmagan eng ommabop global state menejeri.
- O'rnatish:
npm i zustand - Ishlatilishi:ts
import { create } from "zustand"; import { persist } from "zustand/middleware"; interface AuthState { token: string | null; user: { id: string; name: string } | null; login: (token: string, user: { id: string; name: string }) => void; logout: () => void; } export const useAuthStore = create<AuthState>()( persist( (set) => ({ token: null, user: null, login: (token, user) => set({ token, user }), logout: () => set({ token: null, user: null }), }), { name: "auth-storage" } ) );
7.2. State Menejerlari taqqoslash xaritasi:
- Zustand: Kichik, o'rta va ko'plab yirik loyihalar uchun 1-raqamli standart.
- Redux Toolkit (RTK): Eski meros (legacy) korporativ tizimlar va qat'iy standart talab qilinadigan bank loyihalari.
- Jotai: Atomik holat boshqaruvi (har bir o'zgaruvchi mustaqil atom — Figma yoki Canva kabi kanvas/grafik muharrirlar uchun ideal).
8. Data Fetching, Kesh va Tarmoq Aloqasi
8.1. TanStack Query v5 (@tanstack/react-query)
- Vazifasi: Server holatini (Server State) boshqarish: avtomatik kesh, fonda yangilanish (stale-while-revalidate), so'rovlarni birlashtirish (deduplication) va optimistic UI.
- O'rnatish:
npm i @tanstack/react-query @tanstack/react-query-devtools - Ishlatilishi:tsx
import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import axios from "axios"; export function UsersList() { const queryClient = useQueryClient(); const { data: users, isLoading, error } = useQuery({ queryKey: ["users"], queryFn: async () => (await axios.get("/api/users")).data, staleTime: 1000 * 60 * 5, // 5 daqiqa keshda saqlash }); const deleteMutation = useMutation({ mutationFn: (id: string) => axios.delete(`/api/users/${id}`), onSuccess: () => { // Ma'lumot yangilandi, keshni qayta yuklash queryClient.invalidateQueries({ queryKey: ["users"] }); }, }); if (isLoading) return <div>Yuklanmoqda...</div>; return ( <ul> {users.map((u: any) => ( <li key={u.id}> {u.name} <button onClick={() => deleteMutation.mutate(u.id)}>O'chirish</button> </li> ))} </ul> ); }
8.2. Ky — Zamonaviy HTTP mijoz
- Vazifasi: Axios o'rnini bosuvchi, brauzerning mahalliy
fetchAPI ustiga qurilgan, o'ta yengil (Axios dan 4 barobar kichik) HTTP mijoz. - O'rnatish:
npm i ky - Afzalligi: Avtomatik exponential retry, JSON parsing, timeout va HTTP xatolarini to'g'ri ushlash.
9. Sana va Vaqt bilan Ishlash (Date & Time)
9.1. date-fns
- Vazifasi: Funksional, modulli va tree-shakeable sana vositalari.
- O'rnatish:
npm i date-fns - Nega Moment.js emas? Moment.js loyihasi rasman muzlatilgan (deprecated), hajmi 70KB dan ortiq va ob'ektlari o'zgaruvchan (mutable).
date-fnsesa har bir funksiyani alohida import qilish imkonini beradi (har bir funksiya 200 bayt). - Ishlatilishi:ts
import { format, formatDistanceToNow, addDays, isAfter } from "date-fns"; import { uz } from "date-fns/locale"; const bugun = new Date(); const formatlangan = format(bugun, "yyyy-MM-dd HH:mm"); // "2026-09-20 16:40" const nisbiy = formatDistanceToNow(new Date("2026-09-19"), { addSuffix: true, locale: uz }); // "1 kun oldin"
10. Toast, Modallar va Bildirishnomalar
10.1. Sonner
- Vazifasi: Dunyodagi eng chiroyli, silliq harakatlanuvchi, stackable (ustma-ust yig'iluvchi) toast bildirishnomalari.
- O'rnatish:
npm i sonner - Ishlatilishi:tsx
import { Toaster, toast } from "sonner"; // Ilova ildizida: <Toaster position="top-right" richColors /> // Istalgan komponentda: toast.success("Muvaffaqiyatli saqlandi!"); toast.promise(saveUserData(), { loading: "Saqlanmoqda...", success: (data) => `Foydalanuvchi ${data.name} yaratildi!`, error: "Xatolik yuz berdi!", });
11. Drag and Drop va Fayllarni Yuklash
11.1. @dnd-kit
- Vazifasi: Kanban doskalar (Trello kabi), ro'yxatlarni tartiblash va dashboard vidjetlarini sudrab joylashtirish uchun zamonaviy yechim.
- O'rnatish:
npm i @dnd-kit/core @dnd-kit/sortable @dnd-kit/utilities
11.2. react-dropzone
- Vazifasi: Fayllarni sudrab tashlash (Drag & Drop) va format/hajm bo'yicha saralash.
- O'rnatish:
npm i react-dropzone
12. Boy Matn Muharrirlari (Rich Text / Markdown)
12.1. Tiptap
- Vazifasi: ProseMirror ustiga qurilgan, Notion uslubidagi zamonaviy matn muharriri.
- O'rnatish:
npm i @tiptap/react @tiptap/pm @tiptap/starter-kit
12.2. Monaco Editor (@monaco-editor/react)
- Vazifasi: Brauzer ichiga to'liq VS Code kod tahrirlash muhitini (syntax highlighting, intellisense, autocomplete) olib kirish.
- O'rnatish:
npm i @monaco-editor/react
13. Hujjatlar (PDF, Excel, CSV) va Rasm / Fayllar
13.1. Excel va CSV eksporti: exceljs va papaparse
- Frontend / Backend Excel:
npm i exceljs— to'liq formatlangan (ranglar, shriftlar, formulalar bilan) Excel (.xlsx) yaratish. - CSV Parsing:
npm i papaparse— millionlab qatorli CSV fayllarni brauzer xotirasini qotirmasdan oqimli (stream) o'qish.
13.2. PDF Yaratish: @react-pdf/renderer va pdfkit
- React yordamida PDF:
npm i @react-pdf/renderer— JSX komponentlari yordamida cheklar, hisob-fakturalar (invoice) va shartnomalarni PDF formatida generatsiya qilish.
13.3. Rasm siqish: sharp (Backend) va browser-image-compression (Frontend)
- Node.js/NestJS da:
npm i sharp— rasmlarni WebP/AVIF formatiga o'tkazish, EXIF xavfsizlik ma'lumotlarini tozalash va o'lchamini kichraytirish. - Brauzerda (Client-side):
npm i browser-image-compression— foydalanuvchi serverga yuklashidan oldin 10MB lik telefon rasmini brauzerning o'zida 500KB gacha sifat yo'qotmasdan siqib yuborish.
14. Yordamchi Funksiyalar (Utility Libraries)
14.1. es-toolkit — Zamonaviy Lodash
- Vazifasi: 2024-2026 yillarda yaratilgan, Lodash dan 2-3 barobar tezroq va 97% kichikroq bo'lgan TypeScript-first yordamchi kutubxona.
- O'rnatish:
npm i es-toolkit - Ishlatilishi:ts
import { debounce, chunk, cloneDeep, uniq } from "es-toolkit"; const uniqueItems = uniq([1, 2, 2, 3]); // [1, 2, 3]
14.2. nanoid
- Vazifasi: UUID v4 ning xavfsiz va ixcham alternativi (UUID — 36 belgi, nanoid — 21 belgi, URL-friendly).
- O'rnatish:
npm i nanoid
15. Backend Web Frameworklar va Marshrutlash
15.1. NestJS vs Fastify vs Hono
| Framework | Platforma | Qachon tanlanadi |
|---|---|---|
| NestJS | Node.js | Katta korxona, bank, jamoaviy yirik loyihalar (arxitektura, DI, qat'iylik) |
| Fastify | Node.js | Express o'rnida 3 barobar yuqori RPS (throughput) kerak bo'lganda |
| Hono | Cloudflare Workers / Bun / Node | Serverless, Edge computing va mikro-servislar (o'ta yengil, 0 dependency) |
16. Database Drayverlar, ORM va Query Builderlar
16.1. Drizzle ORM
- Vazifasi: TypeScript ekotizimidagi eng tez o'sayotgan, SQL ga eng yaqin va nol-overhead beruvchi type-safe ORM.
- O'rnatish:
npm i drizzle-orm pgvanpm i -D drizzle-kit - Prisma vs Drizzle: Prisma dasturchiga juda qulay va tayyor abstraksiya beradi; Drizzle esa to'g'ridan-to'g'ri SQL so'rovlarini tushunadigan senior dasturchilar uchun maksimal tezlik va past resurs sarfini ta'minlaydi.
17. Autentifikatsiya, Shifrlash va Xavfsizlik
17.1. jose — Web Crypto JWT
- Vazifasi: Eskirgan
jsonwebtokenkutubxonasi o'rnini bosuvchi, V8 Web Crypto API ustida ishlovchi, Node.js, Deno, Bun va Cloudflare Edge platformalarida birdek ishlaydigan eng xavfsiz JWT standarti. - O'rnatish:
npm i jose
17.2. argon2 va bcrypt
- Vazifasi: Parollarni xeshlash.
- Senior maslahati: Zamonaviy loyihalarda parollar uchun OWASP tavsiyasi bo'yicha Argon2id (
npm i argon2) birinchi tanlov hisoblanadi (GPU va ASIC hujumlariga qarshi xotira qiyinligi bilan himoyalangan).
18. Asinxron Navbatlar va Fon Vazifalari
18.1. BullMQ
- Vazifasi: Redis Streams asosidagi, sanoat standartidagi navbat tizimi.
- Imkoniyatlari: Job retry (exponential backoff), kechiktirilgan vazifalar (delayed jobs), takrorlanuvchi cron vazifalar, rate limiting va parallel ishlovchi workerlar klasteri.
- O'rnatish:
npm i bullmq ioredis
19. Logging, Telemetriya va Monitoring
19.1. Pino
- Vazifasi: JSON formatida o'ta yuqori tezlikda log yozuvchi asinxron logger (Winston dan 5 barobar tez).
- O'rnatish:
npm i pinovanpm i -D pino-pretty
19.2. Sentry
- Vazifasi: Frontend va Backend'da real foydalanuvchilarda yuz bergan har qanday xatolikni, stack trace, brauzer versiyasi va foydalanuvchi qadamlari bilan ushlab olib bildirishnoma beruvchi platforma.
- O'rnatish:
npm i @sentry/nodeyokinpm i @sentry/react
20. CLI va Terminal Asboblari
Node.js yordamida chiroyli terminal buyruqlari yaratish:
commander(npm i commander) — buyruqlar, opsiyalar (--port 3000) va help menyusini boshqarish.chalk(npm i chalk) — terminal matnlarini rang-barang qilish (yashil, qizil, qalin).ora(npm i ora) — terminalda yuklanish aylanasi (spinner).@clack/prompts(npm i @clack/prompts) — zamonaviy, chiroyli interaktiv CLI so'rovnomalari (Vite yoki Astro kabi interaktiv savol-javob oynalari).
21. Testlash va Mocking
- Vitest (
npm i -D vitest) — Vite asosidagi o'ta tezkor unit-test tizimi (Jest dan ancha tez). - Playwright (
npm i -D @playwright/test) — zamonaviy E2E brauzer testlari (Chromium, Firefox, WebKit da haqiqiy foydalanuvchi harakatlarini sinash). - MSW (Mock Service Worker) (
npm i -D msw) — API so'rovlarini tarmoq darajasida ushlab, soxta javoblar qaytarish (testlar va frontendni backend bitmasdan turib ishlab chiqish uchun eng zo'r vosita). - Faker.js (
npm i -D @faker-js/faker) — testlar va demo bazalar uchun realistik ismlar, manzillar, telefonlar va matnlarni generatsiya qilish.
22. Tooling, Build va Paket Menejerlari
pnpm: Qattiq havolalar (hard links) va CAS (Content-Addressable Storage) orqali disk xotirasini tejovchi, phantom dependencies xatosini oldini oluvchi zamonaviy paket menejeri.Biome(@biomejs/biome): Rust tilida yozilgan, ESLint va Prettier o'rnini bosuvchi, ulardan 25-30 barobar tezroq ishlovchi yaxlit linter va formatter.Turborepo: Monorepolar uchun keshlovchi va vazifalarni parallel bajaruvchi build tizimi.tsup: TypeScript kutubxonalarini ESM va CJS formatlarida bir necha millisekundda paketlovchi (bundle qiluvchi) esbuild asosidagi vosita.
Xulosa va Amaliy Yo'l-yo'riq
Ushbu ensiklopediya — zamonaviy IT sanoatining asboblar sandig'idir (toolbox). Dasturchi sifatida har bir vositani yodlash shart emas, ammo har bir muammo uchun qaysi vosita eng optimal yechim ekanligini bilish — Senior muhandislik darajasining asosiy belgisidir!
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!