Bir haftada 100,000 XNUMX qator kodlarni qanday o'qish va tuzatish

Bir haftada 100,000 XNUMX qator kodlarni qanday o'qish va tuzatish
Boshida katta va eski loyihani tushunish har doim qiyin. Arxitektura arxitektorni baholash faoliyatidan biridir. Odatda siz katta, eski loyihalar bilan ishlashingiz kerak va natijalar bir hafta ichida etkazilishi kerak.

Mijoz uchun haqiqatan ham foydali bo'lgan natijalarni taqdim eta turib, bir hafta ichida 100 ming yoki undan ortiq kod qatorli loyihani qanday baholash mumkin.

Ko'pgina arxitektorlar va texnik rahbarlar shunga o'xshash loyiha baholashlariga duch kelishdi. Bu bizning kompaniyamizda bo'lgani kabi yarim rasmiy jarayon yoki alohida xizmat sifatida ko'rinishi mumkin, u yoki bu tarzda ko'pchiligingiz bu bilan shug'ullangansiz.

Rus tilida so'zlashmaydigan do'stlaringiz uchun ingliz tilidagi asl nusxasi bu erda: Bir hafta ichida arxitekturani baholash.

Kompaniyamizning yondashuvi

Men sizga kompaniyamizda qanday ishlashini va shunga o'xshash vaziyatlarda qanday harakat qilishimni aytib beraman, lekin siz ushbu yondashuvni loyihangiz va kompaniyangiz ehtiyojlariga qarab osongina o'zgartirishingiz mumkin.

Arxitekturani baholashning ikki turi mavjud.

Ichki makon - Biz buni odatda kompaniya ichidagi loyihalar uchun qilamiz. Har qanday loyiha bir necha sabablarga ko'ra arxitektura baholashini talab qilishi mumkin:

  1. Jamoa o'z loyihasini mukammal deb hisoblaydi va bu shubhali. Bizda bunday holatlar bo'lgan va ko'pincha bunday loyihalarda hamma narsa idealdan uzoqdir.
  2. Jamoa o'z loyihasi va yechimlarini sinab ko'rmoqchi.
  3. Jamoa hammasi yomon ekanini biladi. Ular hatto asosiy muammolar va sabablarni sanab o'tishlari mumkin, ammo muammolarning to'liq ro'yxatini va loyihani takomillashtirish bo'yicha tavsiyalarni xohlashadi.

Tashqi ichki baholashdan ko'ra ko'proq rasmiy jarayondir. Mijoz har doim faqat bitta holatda keladi, qachonki hamma narsa yomon - juda yomon. Odatda mijoz global muammolar borligini tushunadi, lekin sabablarni to'g'ri aniqlay olmaydi va ularni tarkibiy qismlarga ajrata olmaydi.

Tashqi mijoz uchun arxitekturani baholash ancha murakkab holat. Jarayon yanada rasmiy bo'lishi kerak. Loyihalar har doim katta va eski. Ularda juda ko'p muammolar, xatolar va egri kodlar mavjud. Bajarilgan ishlar bo'yicha hisobot maksimal bir necha hafta ichida tayyor bo'lishi kerak, unda asosiy muammolar va takomillashtirish bo'yicha tavsiyalar bo'lishi kerak. Shuning uchun, agar biz loyihani tashqi baholash bilan shug'ullanadigan bo'lsak, unda ichki baholash bir parcha kek bo'ladi. Keling, eng qiyin ishni ko'rib chiqaylik.

Korxona loyihasi arxitekturasini baholash

Baholash uchun odatiy loyiha - bu juda ko'p muammolarga ega bo'lgan katta, eski, korxona loyihasi. Mijoz bizga keladi va bizdan uning loyihasini tuzatishimizni so'raydi. Bu xuddi aysbergga o'xshaydi, mijoz o'z muammolarining faqat uchini ko'radi va suv ostida nima borligini bilmaydi (kodning chuqurligida).

Mijoz shikoyat qilishi mumkin bo'lgan va bilishi mumkin bo'lgan muammolar:

  • Ishlash muammolari
  • Foydalanish bilan bog'liq muammolar
  • Uzoq muddatli joylashtirish
  • Birlik va boshqa testlarning etishmasligi

Mijoz bilmagan, lekin loyihada mavjud bo'lgan muammolar:

  • Xavfsizlik muammolari
  • Dizayn muammolari
  • Noto'g'ri arxitektura
  • Algoritmik xatolar
  • Noto'g'ri texnologiyalar
  • Texnik qarz
  • Noto'g'ri rivojlanish jarayoni

Rasmiy arxitekturani ko'rib chiqish jarayoni

Bu biz kompaniya sifatida amal qiladigan rasmiy jarayon, lekin siz uni kompaniyangiz va loyihangizga qarab sozlashingiz mumkin.

Mijozdan so'rov

Mijoz joriy loyihaning arxitekturasini baholashni so'raydi. Biz tomondan mas'ul shaxs loyiha haqida asosiy ma'lumotlarni to'playdi va kerakli mutaxassislarni tanlaydi. Loyihaga qarab, bu turli mutaxassislar bo'lishi mumkin.

Qaror me'mori - baholash va muvofiqlashtirish uchun mas'ul bo'lgan asosiy shaxs (va ko'pincha yagona).
Muayyan mutaxassislarni to'plang – Loyiha va texnologiyalarga qarab .Net, Java, Python va boshqa texnik mutaxassislar
Bulutli mutaxassislar – bu Azure, GCP yoki AWS bulut arxitektorlari bo‘lishi mumkin.
infrastruktura – DevOps, tizim administratori va boshqalar.
Boshqa mutaxassislar – masalan, katta ma’lumotlar, mashinani o‘rganish, ishlash muhandisi, xavfsizlik bo‘yicha mutaxassis, QA yetakchisi.

Loyiha haqida ma'lumot yig'ish

Loyiha haqida iloji boricha ko'proq ma'lumot to'plashingiz kerak. Vaziyatga qarab siz turli xil texnikalardan foydalanishingiz mumkin:

  • Pochta orqali anketalar va boshqa aloqa usullari. Eng samarasiz usul.
  • Onlayn uchrashuvlar.
  • Ma'lumot almashish uchun maxsus vositalar, masalan: Google doc, Confluence, repozitoriylar va boshqalar.
  • Saytda "jonli" uchrashuvlar. Eng samarali va eng qimmat usul.

Mijozdan nimani olish kerak?

Asosiy ma'lumotlar. Loyiha nima haqida? Uning maqsadi va qiymati. Asosiy maqsadlar va kelajak uchun rejalar. Biznes maqsadlari va strategiyalari. Asosiy muammolar va kerakli natijalar.

Loyiha haqida ma'lumot. Texnologiya stek, ramkalar, dasturlash tillari. Mahalliy yoki bulutli joylashtirish. Agar loyiha bulutda bo'lsa, qanday xizmatlardan foydalaniladi. Qanday me'moriy va dizayn naqshlari ishlatilgan.

Funktsional bo'lmagan talablar. Tizimning ishlashi, mavjudligi va foydalanish qulayligi bilan bog'liq barcha talablar. Xavfsizlik talablari va boshqalar.

Asosiy foydalanish holatlari va ma'lumotlar oqimlari.

Manba kodiga kirish. Eng muhim qism! Siz, albatta, loyihani qanday qurish bo'yicha omborlar va hujjatlarga kirishingiz kerak.

Infratuzilmaga kirish. Jonli tizim bilan ishlash uchun sahna yoki ishlab chiqarish infratuzilmasiga kirish imkoni bo'lsa yaxshi bo'lardi. Agar mijozda infratuzilma va ish faoliyatini nazorat qilish vositalari bo'lsa, bu katta muvaffaqiyat. Ushbu vositalar haqida keyingi bo'limda gaplashamiz.

hujjatlar. Agar mijozda hujjatlar bo'lsa, bu yaxshi boshlanish. Bu eskirgan bo'lishi mumkin, ammo bu hali ham yaxshi boshlanish. Hech qachon hujjatlarga ishonmang - uni mijoz bilan, haqiqiy infratuzilmada va manba kodida sinab ko'ring.

Arxitekturani baholash jarayoni

Qanday qilib qisqa vaqt ichida bunday katta hajmdagi ma'lumotlarni qayta ishlash mumkin? Avvalo, ishni parallel qiling.

DevOps infratuzilmaga qarashi kerak. Kodga texnik rahbarlik qiladi. Ishlash ko'rsatkichlarini ko'rish uchun ishlash muhandisi. Ma'lumotlar bazasi bo'yicha mutaxassis ma'lumotlar tuzilmalarini chuqurroq o'rganishi kerak.

Ammo bu juda ko'p resurslarga ega bo'lganda ideal holat. Odatda, bir-uch kishi loyihani baholaydi. Siz hatto o'zingiz hisob-kitob qilishingiz mumkin, bu ko'pincha loyihaning barcha sohalarida tegishli bilim va tajribaga ega bo'lsangiz. Bunday holda, barcha jarayonlarni imkon qadar avtomatlashtirishingiz kerak.

Afsuski, siz hujjatlarni qo'lda o'qib chiqishingiz kerak bo'ladi. Kerakli tajriba bilan siz hujjatlarning sifatini tezda tushunishingiz mumkin. Nima haqiqat va nima aniq haqiqatga to'g'ri kelmaydi. Ba'zan hujjatlarda haqiqiy hayotda hech qachon ishlamaydigan arxitekturani ko'rishingiz mumkin. Bu loyihada haqiqatda qanday amalga oshirilganligi haqida o'ylash uchun tetikdir.

Loyihani baholashni avtomatlashtirish uchun foydali vositalar

Kodni baholash oddiy mashqdir. Siz dizayn, ishlash va xavfsizlik masalalarini ko'rsatadigan statik kod analizatorlaridan foydalanishingiz mumkin. Mana ulardan bir nechtasi:

Tarkibi 101 arxitektor uchun ajoyib vositadir. Bu sizga katta rasmni, modullar orasidagi bog'liqlikni va refaktoring uchun potentsial sohalarni ko'rsatadi. Barcha yaxshi vositalar singari, u yaxshi pul talab qiladi, lekin siz 30 kunlik sinov versiyasidan foydalanishingiz mumkin.

SonarQube - yaxshi eski vosita. Statik kodni tahlil qilish vositasi. 20 dan ortiq dasturlash tillari uchun yomon kod, xatolar va xavfsizlik muammolarini aniqlash imkonini beradi.

Barcha bulutli provayderlar infratuzilma monitoringi vositalariga ega. Bu sizning infratuzilmangiz samaradorligini xarajat va ishlash nuqtai nazaridan to'g'ri baholash imkonini beradi. AWS uchun bu ishonchli maslahatchi. Bu Azure uchun oson Azure maslahatchisi.

Qo'shimcha ishlash monitoringi va jurnallar barcha darajadagi ishlash muammolarini topishga yordam beradi. Samarasiz so'rovlar bilan ma'lumotlar bazasidan boshlab, backend va frontend bilan tugaydi. Agar mijoz ushbu vositalarni ilgari o'rnatmagan bo'lsa ham, ishlash muammolarini aniqlash uchun ularni mavjud tizimga juda tez integratsiya qilishingiz mumkin.

Har doimgidek, yaxshi vositalar bunga arziydi. Men bir nechta pullik vositalarni tavsiya qilishim mumkin. Albatta, siz ochiq manbadan foydalanishingiz mumkin, ammo bu sizga ko'proq vaqt talab etadi. Va bu me'moriy baholash jarayonida emas, balki oldindan amalga oshirilishi kerak.

Yangi Relic - dastur samaradorligini baholash vositasi
datadog – bulutli tizim monitoringi xizmati

Xavfsizlikni tekshirish uchun ko'plab vositalar mavjud. Bu safar men sizga bepul tizimni skanerlash vositasini tavsiya qilaman.

OWASP ZAP - veb-ilovalarni xavfsizlik standartlariga muvofiqligini tekshirish uchun vosita.

Keling, hamma narsani bir butunga birlashtiraylik.

Hisobot tayyorlash

Hisobotingizni mijozdan yig'ilgan ma'lumotlardan boshlang. Loyihaning maqsadlari, cheklovlari, funktsional bo'lmagan talablarini tavsiflang. Shundan so'ng, barcha kirish ma'lumotlarini eslatib o'tish kerak: manba kodi, hujjatlar, infratuzilma.

Keyingi qadam. Qo'lda yoki avtomatlashtirilgan vositalardan foydalangan holda topilgan muammolarni ro'yxatlang. Ilovalar bo'limining oxirida avtomatik yaratilgan katta hisobotlarni joylashtiring. Topilgan muammolar haqida qisqa va lo'nda dalillar bo'lishi kerak.
Xato, ogohlantirish, ma'lumot shkalasida topilgan muammolarni birinchi o'ringa qo'ying. Siz o'zingizning o'lchovingizni tanlashingiz mumkin, ammo bu umumiy qabul qilingan.

Haqiqiy me'mor sifatida, topilgan muammolarni bartaraf etish bo'yicha tavsiyalar berish sizning mas'uliyatingizdir. Mijoz oladigan yaxshilanishlar va biznes qiymatini tavsiflang. Biznes qiymatini qanday ko'rsatish mumkin arxitekturani qayta tiklash avvalroq muhokama qildik.

Kichik takrorlashlar bilan yo'l xaritasini tayyorlang. Har bir iteratsiya bajarish vaqti, tavsifi, yaxshilash uchun zarur bo'lgan resurslar miqdori, texnik qiymat va biznes qiymatini o'z ichiga olishi kerak.

Biz arxitekturani baholashni yakunlaymiz va mijozga hisobot beramiz

Hech qachon shunchaki xabar yubormang. U umuman o'qilmasligi yoki tegishli tushuntirishsiz o'qib, tushunilmasligi mumkin. Muxtasar qilib aytganda, jonli muloqot odamlar o'rtasidagi tushunmovchiliklarni bartaraf etishga yordam beradi. Siz mijoz bilan uchrashuvni rejalashtirishingiz va eng muhimlariga e'tibor qaratib, topilgan muammolar haqida gaplashishingiz kerak. Mijozning e'tiborini u hatto bilmagan muammolarga qaratishga arziydi. Xavfsizlik muammolari va ular biznesga qanday ta'sir qilishi mumkinligini tushuntiring. Yaxshilashlar bilan yo'l xaritangizni ko'rsating va mijozga mos keladigan turli xil variantlarni muhokama qiling. Bu vaqt, resurslar, ish hajmi bo'lishi mumkin.

Uchrashuvingizning xulosasi sifatida mijozga hisobotingizni yuboring.

Xulosa

Arxitekturani baholash murakkab jarayondir. Baholashni to'g'ri bajarish uchun etarli tajriba va bilimga ega bo'lishingiz kerak.

Bir hafta ichida mijozga o'zi va biznesi uchun foydali natijalarni taqdim etish mumkin. Agar siz buni yolg'iz qilsangiz ham.

Mening tajribamga asoslanib, ko'plab yaxshilanishlar o'rtada yuklab olindi va ba'zan hech qachon boshlanmadi. O'zlari uchun oltin o'rtachani tanlaganlar va minimal mehnat xarajatlari bilan biznes uchun eng foydali bo'lgan yaxshilanishlarning faqat bir qismini amalga oshirganlar mahsulot sifatini sezilarli darajada yaxshiladilar. Hech narsa qilmaganlar bir necha yildan keyin loyihani butunlay yopishlari mumkin edi.

Sizning maqsadingiz mijozga minimal narx uchun maksimal yaxshilanishlarni ko'rsatishdir.

Bo'limdagi boshqa maqolalar Arxitektura bo'sh vaqtingizda o'qishingiz mumkin.

Sizga toza kod va yaxshi me'moriy qarorlar tilayman.

Bizning Facebook guruhimiz - Dasturiy ta'minot arxitekturasi va ishlab chiqish.

Manba: www.habr.com

a Izoh qo'shish