Veb-dasturlash 10 yil oldin va hozir: junior o‘zimga maslahatlar
Birinchi production deployim shunday bo‘lgan: FileZilla, public_html papkasi va duo. Hozir kod serverga testlar va Docker image yig‘ilishidan o‘tgandan keyingina tushadi. Shu vaqt ichida nima o‘zgardi-yu, nima aynan o‘shandayligicha qoldi, shu haqida.
Azamat AbduyaminovAsoschi, yetakchi muhandis
Taxminan 2015-yilda men saytni to‘g‘ridan-to‘g‘ri serverda tahrirlardim. FileZilla’da faylni ochib, PHP’dagi bitta qatorni o‘zgartirardim, saqlab, brauzerda sahifani yangilardim. Oq ekran chiqsa, demak nuqtali vergulni unutganman. Zaxira nusxa yo‘q edi. Git bor edi, lekin “jiddiy loyihalar uchun”.
Hozir Toshkentda kichik studiyani boshqaraman. Oxirgi katta loyihamiz, Enlawyer yuridik firmasi sayti, productionga faqat GitLab CI image’ni yig‘ib, tekshiruvlardan o‘tkazgandan keyin chiqadi. Bu ikki nuqta orasida o‘n yil bor va ulardan nimasi haqiqatan muhimligini ajratib ko‘rgim keldi.
O‘shanda qanday edi
2010-yillar o‘rtasidagi odatiy loyiham: PHP, MySQL, jQuery, Bootstrap 3 va qandaydir arxiv saytidan yuklab olingan bir dasta plagin. Butun vyorstka 4000 qatorlik bitta stil faylida. Qayta aloqa formasi mail() orqali ishlardi va xatlarning yarmi spamga tushardi.
Eng g‘alatisi, bularning hammasi ishlardi. Mijozlar sayt olardi, saytlar ochilardi. Faqat har bir o‘zgarish kichik lotereya edi.
- 2015jQuery, freymvorksiz PHP, FTP orqali deploy, baza phpMyAdmin’da tahrirlanadi
- 2017Composer, ilk freymvorklar paydo bo‘ladi, Git endi faqat “jiddiy loyihalar uchun” emas
- 2019Vue va React jQuery’ni siqib chiqaradi, hamma joyda SPA, ular bilan birga SEO muammolari
- 2021Yii2’da Tezda Sotaman, lokal ishlash uchun Docker
- 2023Nuxt 3 va Django, har bir loyihada CI/CD, SSR odatiy holga aylanadi
- 2025Next.js va React 19, hamma joyda TypeScript, muharrirda AI-assistentlar
Tezda Sotaman: 2021-yilda Yii2
Tezda Sotaman — e’lonlar maydonchasi: uy-joy sotish va ijaraga berish, qurilish, mehmonxonalar. Biz uni 2021–2022-yillarda PHP Yii2 (advanced shablon: alohida frontend, backend va api), MySQL va yonida Python’dagi Telegram-bot bilan qilganmiz.

Hozir boshqa stekni tanlagan bo‘lardim, lekin Yii2 yomonligi uchun emas. U bashorat qilsa bo‘ladigan freymvork, kod generatori zo‘r, marketpleys unda ishlab turibdi. Muammo boshqa joyda: 2021-yildayoq Toshkentda Yii2’da yozishni xohlaydigan yosh dasturchini topish qiyin edi. Hamma React va Python o‘rganardi. Stek faqat vazifaga qarab emas, uch yildan keyin uni qo‘llab-quvvatlaydigan odamlar bozoriga qarab ham tanlanadi.
Junior o‘zimga yetkazadigan birinchi saboq shu: bugun tanlagan texnologiyang keyinchalik kimningdir ishiga aylanadi.
Haqiqatan nima o‘zgardi
Modani olib tashlasak, men to‘rtta katta o‘zgarishni sanadim.
| O‘shanda (≈2015) | Hozir (2025) | |
|---|---|---|
| Deploy | FTP, qo‘lda, juma kuni kechqurun | Docker image, GitLab CI, bitta buyruq bilan orqaga qaytarish |
| Frontend | jQuery va serverdan kelgan HTML bo‘laklari | SSR’li Next.js / Nuxt, komponentlar |
| Tiplar | “Runtime’da ko‘ramiz” | Frontendda TypeScript, Python’da type hints |
| Muhit | “Menda ishlayapti” | docker compose, hamma uchun bir xil |
| SEO | Meta-teglar qo‘lda | Sitemap, structured data, hreflang koddan |
Docker va CI deploy qo‘rquvini yo‘qotdi
Eng asosiysi shu. Avval reliz voqea edi. Hozir Enlawyer’da deploy taxminan shunday ko‘rinadi:
deploy:
stage: deploy
script:
- docker compose pull
- docker compose up -d --remove-orphans
only:
- main
Hech qanday murakkab narsa yo‘q. Lekin shu besh qator jamoaning istalgan a’zosi o‘zgarishni chiqara olishini va server qo‘lda qilingan tuzatishlar muzeyiga aylanmasligini anglatadi.
SSR bizni yana serverga qaytardi, faqat aqlliroq
Qiziq aylana. 2015-yilda HTML’ni serverda PHP render qilardi. Keyin hamma SPA’ga o‘tdi va qidiruv tizimi <div id="app"> bilan bo‘sh sahifani ko‘radigan bo‘ldi. Keyin Nuxt va Next.js keldi va yana serverda render qila boshladi, endi komponentlar va gidratsiya bilan. Mijozlarimiz uchun bu muhim: yuridik firma, telekanal yoki klinika mijozlarni Google’dan oladi va robot uchun bo‘sh sahifa ularga to‘g‘ri kelmaydi.
Xosting va SSL
2015-yilda sayt cPanel’li virtual xostingda, yuzlab begona saytlar yonida yashardi. Agar qo‘shni sayt virus ilsa, hamma azob chekardi. SSL-sertifikat pullik edi, shuning uchun Uznetdagi saytlarning yarmi ochiq HTTP’da ishlardi, brauzerlar esa o‘shanda hali ogohlantirmasdi.
Hozir deyarli har bir loyihamiz o‘z VPS’ida yashaydi: nginx, Docker, PostgreSQL, Redis. Let's Encrypt sertifikatlari bepul va o‘zi yangilanadi. Sayt javob bermay qolsa, monitoring Telegram’ga xabar yuboradi va men bundan mijozdan oldin xabar topaman. Mayda narsadek eshitiladi, lekin o‘n yil oldin sayt yiqilganini odatda mijozning o‘zidan bilardim va bu juda yoqimsiz qo‘ng‘iroq edi.
TypeScript
Uzoq qarshilik qildim. Ortiqcha byurokratiyadek tuyulardi. Bir loyihada price maydoni backenddan goh son, goh string bo‘lib kelib, xatoni ikki kun qidirganimizdan keyin fikrimni o‘zgartirdim. Tiplar bilan bu muharrirning o‘zida ushlanadi.
Muharrirdagi AI: hozircha hayajonsiz
Buni 2025-yil avgustida yozyapman. AI-assistentlar jamoada hammada bor. Ular shablon kodni, migratsiyalarni, testlarni va interfeysni o‘zbek, rus va ingliz tillariga tarjimani yaxshi yozadi. Shu hisobiga soatlab vaqt tejaymiz, rostini aytsam.
Lekin arxitekturani ular o‘ylab topmaydi. Va to‘g‘ri ko‘rinadigan, lekin chekka holatda sinadigan kodni ishonch bilan yozadi. Bu juniorga seniorga qaraganda xavfliroq: senior assistent qayerda yolg‘on gapirganini ko‘radi, junior ko‘rmaydi. Yosh o‘zimga avval assistentsiz yozishni o‘rganib, keyin uni tezlatgich sifatida olishni maslahat bergan bo‘lardim. Studiyada AI’dan qanday foydalanishimiz haqida keyinroq alohida yozaman.
Umuman o‘zgarmagan narsalar
Eng qizig‘i shu yerda. O‘n yil o‘tdi, barcha vositalar almashdi, loyihaning qiyin joylari esa o‘sha-o‘sha qoldi.
Mijoz bilan suhbat. Mijoz hamon “ularnikiga o‘xshagan sayt kerak” degan gap va Instagram’dan skrinshot bilan keladi. Dasturchining vazifasi biznesga aslida nima kerakligini aniqlash. Ba’zan bu sayt emas, Telegram-bot bo‘lib chiqadi. Bu suhbatni hech qaysi freymvork almashtirmaydi.
Muddatlar. Ular hamon ishning oxirgi 10 foizida buziladi: tarjimalar, kontent, “keling, yana mana buni ham qo‘shaylik”. 2015-yilda buni tajribasizlikdan deb o‘ylardim. Endi bu loyihalarning xususiyati ekanini tushunaman va bufer qo‘yaman.
Kontent. Matn va fotosiz saytni ishga tushirib bo‘lmaydi va matnlar deyarli har doim eng oxirida keladi. Enlawyer’da uchta til bor, EN/RU/UZ, va har bir sahifa uch versiyada mavjud. Bu butun frontenddan ko‘proq ish.

Mas’uliyat. Mijozning sayti tunda yiqilsa, sizga qo‘ng‘iroq qilishadi. Docker va CI buni kamaytirdi, lekin bekor qilmadi.
Junior o‘zimga nima degan bo‘lardim
Ortiqcha falsafasiz, oddiy ro‘yxat. 2015-yilda uni chop etib, stol tepasiga osib qo‘ygan bo‘lardim.
- Birinchi kundan Git, hatto sayt-vizitka uchun ham
- Hech qachon productiondagi kodni qo‘lda tahrirlamaslik
- Baza bekaplarini avtomatik qilish va ular tiklanishini tekshirish
- Faqat yilning freymvorkini emas, asoslarni o‘rganish (HTTP, SQL, brauzer qanday ishlashi)
- Boshqalarning kodini, ayniqsa yaxshi kodni o‘qish
- Mijoz bilan kelishuvlarni yozma qayd etish, hech bo‘lmasa Telegram’da
- Ishingiz qancha turishini so‘rashdan uyalmaslik
Oxirgi band texnikaga oid emas, lekin qoldiraman. Dastlabki bir-ikki yil saytlar uchun shunchalik kam pul olardimki, o‘z vaqtimni ham qoplamasdi. Hozir narx qanday shakllanishi qiziq bo‘lsa, bizda tushunarli narx oraliqlari bilan saytlar yaratish sahifasi bor.
Yana bitta gap. 2015-yilda o‘rgangan freymvorklarimning deyarli hammasi endi kerak emas. Begona vazifani tushunib olish va loyihani ishga tushirishgacha yetkazish mahorati esa o‘shandagidek kerak. Dastlabki yillarda vaqtni aynan shunga sarflash kerak.




