NDA ostida qutqarilgan tezkor mahalliy xizmatlar marketpleysi
Bu agregator tezkor mahalliy xizmatga muhtoj odamlarni yaqin atrofdagi ijrochilar bilan bog‘laydi. Mijoz so‘rov yuboradi, platforma uni yaqindagi ijrochilar bilan moslashtiradi, ish esa onlayn bron qilinadi va to‘lanadi. Biz loyihaga u rejadan ancha orqada qolgan paytda qo‘shildik. Mijoz NDA bilan himoyalangan, shuning uchun bu keysda nomlarsiz — vaziyat, qarorlar va nima ishga tushirilgani haqida so‘z boradi.
Vaziyat: sakkiz oylik ish, bir oylik zaxira
Qolgan ishning halol bahosi taxminan sakkiz oy chiqdi. Biznesda esa bor-yo‘g‘i bir oycha vaqt bor edi, har bir qo‘shimcha oy esa pul va investorlar sabri hisobiga kechardi. Ikki yo‘l qoldi. Jamoa hammasini rejadagidek qurib, kompaniya ishga tushirishgacha yetib bormasligi xavfini bo‘yniga olishi mumkin edi yoki ishga tushirish uchun kerak narsani o‘z vaqtida topshirishi mumkin edi. Biz ikkinchi yo‘lni ongli ravishda, muhandislik qarori sifatida tanladik.
MVP’ni taxminan bir oyda qanday topshirdik
1. Qattiq texnik saralash
Mavjud kod bazasini auditdan boshladik: nima ishlaydi, nimani qutqarib qolsa bo‘ladi va nimani qaytadan yozish tezroq. Bizga meros qolgan kodning bir qismi eskirgan PHP 5.6’da ishlardi. Hammasini yoppasiga qayta yozishga urinmadik. Buning o‘rniga ishga tushirishdan oldin aynan nimani o‘zgartirish kerakligini hal qildik, ishlayotgan eski qismlarni esa ishga tushirishdan keyingacha tegmasdan qoldirdik.
2. Ish hajmini ayamasdan qisqartirish
Eng muhim qaror eng kam yoqqani ham edi: ish hajmini birinchi ishga tushirish uchun haqiqatan kerak bo‘lgan narsagacha qisqartirish. Qolgan hamma narsa relizdan keyingi backlog’ga o‘tdi. Qolgani esa xizmatlar marketpleysining o‘zagi bo‘ldi — ularsiz birorta mijoz o‘z ishini bitira olmaydigan jarayonlar.
3. Ajratilgan modullarda parallel ish
Qisqartirilgan hajm ham bir kishi bir oyda bajarishi uchun juda katta edi. Tizimni aniq ajratilgan modullarga bo‘ldik va ishni oltita full-stack dasturchi o‘rtasida parallel olib bordik, shuning uchun hech kim boshqasini kutib o‘tirmadi. Jamoa rahbarining vazifasi eng ko‘p kod yozish emas edi. Uning vazifasi kritik yo‘lni ushlab turish edi: dasturchilar oldidagi to‘siqlarni olib tashlash, modullarni birlashtirish, qismlar bir-biriga mos kelishini ta’minlash va ish hajmining asta-sekin kengayib ketishidan jamoani himoya qilish.
Ishga tushirishda topshirilgan asosiy imkoniyatlar
- Joylashuv bo‘yicha ijrochi tanlash: Yandex Maps API asosida qurilgan, shuning uchun so‘rov haqiqatan yaqin atrofdagi ijrochilarga yetib boradi.
- Bron qilish va onlayn to‘lov: mijozlar ijrochini bron qiladi va onlayn to‘lov integratsiyasi orqali to‘laydi.
- Ijrochilarni ulash: xizmat ko‘rsatuvchilar admin panel orqali platformaga ulanadi.
- Nizolarni hal qilish: mijozlar va ijrochilar o‘rtasidagi nizolarni hal qilish vositalari.
- So‘rov hayot sikli webhook’lari: so‘rov o‘z hayot sikli bo‘ylab o‘tganda hodisalar yuboriladi va ular integratsiyalar hamda bildirishnomalarni ishga tushiradi.
Arxitektura va texnologiyalar
Backend Laravel 8 va MariaDB’da ishlaydi, uning yonida ishga tushirish uchun saqlab qolishga qaror qilgan eski PHP 5.6 kodi ham bor. Frontend — Laravel Mix bilan yig‘iladigan Vue.js 2. Ijrochi tanlash uchun joylashuv mantig‘i Yandex Maps API’da ishlaydi.
Hayot sikli webhook’lari bildirishnomalar kabi qo‘shimcha ta’sirlarni asosiy bron qilish kodidan tashqarida saqlaydi. So‘rov holati har safar o‘zgarganda marketpleys hodisa chiqaradi, unga munosabat bildirishi kerak bo‘lgan har qanday qism esa shu hodisaga obuna bo‘ladi. Aynan shu chegara parallel ishlashni ham mumkin qildi, chunki so‘rovga munosabat bildiradigan kod so‘rovni boshqaradigan kodni o‘zgartirishi shart emas.
Natija
MVP sakkiz oy o‘rniga taxminan bir oyda ishga tushdi: ijrochi tanlash, bron qilish, to‘lovlar, ijrochilarni ulash va nizolarni hal qilish — hammasi ishlab turardi. Asosiy jarayonlar tayyor bo‘lgach, mijoz yana foydalanuvchilarni jalb qilish va ijrochilarni ulashga qaytishi mumkin bo‘ldi.
Bu loyiha nimani ko‘rsatadi
- Muddat — mahsulotning bir qismi. Biznesning puli tugaganidan keyin kelgan to‘liq mahsulot hech kimga yordam bermaydi.
- Nimani qurmaslikni hal qilish qo‘shimcha ish soatlaridan ko‘ra ko‘proq vaqt tejaydi. Funksiyalarni qisqartirish muddatga har qanday qo‘shimcha soatlardan ko‘ra ko‘proq foyda berdi.
- Parallel jamoalarga arxitektura kerak. Oltita dasturchi ishni faqat modullar ularni bir-biri bilan to‘qnashtirmagandagina tezlashtiradi.
Tegishli ishlar
Rejadan orqada qolib, qotib qolgan loyihani qutqarish — veb-ilovalar yaratish bo‘yicha ishimizning bir qismi. O‘z mahsulotimiz sifatida qurgan marketpleyslarimizni ko‘rish uchun onlayn yozilish marketpleysi Bronjoy va mijozlar, sotuvchilar va menejerlar uchun alohida ilovalari bor ko‘p tomonlama marketpleys Bazarmap keyslariga qarang.



