Бир жумада 100,000 XNUMX сап кодду кантип окуу жана оңдоо керек

Бир жумада 100,000 XNUMX сап кодду кантип окуу жана оңдоо керек
Башында чоң жана эски долбоорду түшүнүү ар дайым кыйын. Архитектура – ​​архитектордук баалоо ишинин бири. Көбүнчө чоң, эски долбоорлор менен иштөөгө туура келет, натыйжасы бир жумада берилиши керек.

Бир жумада 100 миң же андан ашык код саптарынан турган долбоорду кантип баалоо керек, ошол эле учурда кардар үчүн чындап пайдалуу натыйжаларды берет.

Көпчүлүк архитекторлор жана техникалык жетекчилер окшош долбоорду баалоого туш болушкан. Бул биздин компанияда жасалгандай жарым формалдуу процесс же өзүнчө кызмат катары көрүнүшү мүмкүн, тигил же бул жол менен көпчүлүгүңүздөр бул менен күрөшкөнсүңөр.

Орусча билбеген досторуңуз үчүн англис тилиндеги оригинал бул жерде: Архитектураны бир жумада баалоо.

Биздин компаниянын мамилеси

Мен сизге анын биздин компанияда кандай иштээрин жана ушул сыяктуу жагдайларда кандай иш-аракет кыларымды айтып берем, бирок сиз бул ыкманы проектиңиздин жана компанияңыздын муктаждыктарына жараша оңой эле өзгөртө аласыз.

Архитектураны баалоонун эки түрү бар.

Интерьер – Биз көбүнчө компаниянын ичиндеги долбоорлор үчүн жасайбыз. Ар бир долбоор бир нече себептерден улам архитектуралык баа берүүнү талап кылышы мүмкүн:

  1. Команда алардын долбоорун идеалдуу деп эсептейт жана бул шектүү. Бизде мындай учурлар болгон жана көбүнчө мындай долбоорлордо баары идеалдан алыс.
  2. Команда өз долбоорун жана алардын чечимдерин сынап көргүсү келет.
  3. Команда баары жаман экенин билет. Алар негизги көйгөйлөрдү жана себептерди санап чыгышы мүмкүн, бирок көйгөйлөрдүн толук тизмесин жана долбоорду жакшыртуу боюнча сунуштарды каалашат.

Сырткы ички баалоого караганда формалдуу процесс. кардар дайыма бир гана учурда келет, качан баары жаман - абдан жаман. Адатта кардар глобалдык көйгөйлөр бар экенин түшүнөт, бирок себептерин туура аныктап, аларды компоненттерге бөлө албайт.

Тышкы кардар үчүн архитектураны баалоо татаалыраак иш. Процесс формалдуу болушу керек. Долбоорлор ар дайым чоң жана эски. Аларда көптөгөн көйгөйлөр, мүчүлүштүктөр жана ийри коддор бар. Аткарылган иштер боюнча отчет эң көп дегенде бир нече жуманын ичинде даяр болушу керек, анда негизги көйгөйлөр жана жакшыртуу боюнча сунуштар камтылууга тийиш. Демек, долбоордун сырткы баа берүүсү менен алек болсок, анда ички баалоо бир кесим болуп калат. Эң кыйын учурду карап көрөлү.

Ишкананын долбоорунун архитектурасын баалоо

Баалоо үчүн типтүү долбоор - бул көп көйгөйлөрү бар чоң, эски, ишкананын долбоору. Бизге кардар келип, анын долбоорун оңдоону суранат. Бул айсбергдегидей, кардар өзүнүн көйгөйлөрүнүн четин гана көрөт жана суунун астында эмне бар экенин билбейт (коддун тереңинде).

Кардар нааразы болушу мүмкүн болгон жана билиши мүмкүн болгон көйгөйлөр:

  • Performance Issues
  • Колдонуу маселелери
  • Узак мөөнөттүү жайгаштыруу
  • Бирдиктин жана башка сыноолордун жоктугу

Кардар билбеген көйгөйлөр, бирок алар долбоордо болушу мүмкүн:

  • Коопсуздук көйгөйлөрү
  • Дизайн көйгөйлөрү
  • Туура эмес архитектура
  • Алгоритмдик каталар
  • Туура эмес технологиялар
  • Техникалык карыз
  • Туура эмес өнүгүү процесси

Архитектураны карап чыгуу процесси

Бул биз компания катары карманган расмий процесс, бирок сиз аны компанияңызга жана долбооруңузга жараша ыңгайлаштыра аласыз.

Кардардын суроо-талабы

Кардар учурдагы долбоордун архитектурасына баа берүүнү суранат. Биз тараптан жооптуу адам долбоор боюнча негизги маалыматтарды чогултуп, керектүү адистерди тандап алат. Долбооруна жараша, бул ар кандай эксперттер болушу мүмкүн.

Solution Architect – баалоо жана координациялоо үчүн жооптуу негизги адам (жана көбүнчө жалгыз).
Конкреттүү эксперттерди топтоо – .Net, Java, Python жана башка техникалык адистер долбоорго жана технологияларга жараша
Булут боюнча эксперттер – бул Azure, GCP же AWS булут архитекторлору болушу мүмкүн.
түркүк – DevOps, Системалык администратор ж.б.
Башка эксперттер – чоң маалыматтар, машина үйрөнүү, аткаруу инженери, коопсуздук боюнча эксперт, QA жетектөөчүсү сыяктуу.

Долбоор жөнүндө маалымат чогултуу

Сиз долбоор жөнүндө мүмкүн болушунча көбүрөөк маалымат чогултуу керек. Сиз кырдаалга жараша ар кандай ыкмаларды колдоно аласыз:

  • Анкета жана почта аркылуу байланыштын башка ыкмалары. Эң натыйжасыз жол.
  • Онлайн жолугушуулар.
  • Маалымат алмашуу үчүн атайын куралдар: Google doc, Confluence, репозиторийлер ж.б.
  • Сайттагы "түз" жолугушуулар. Эң эффективдүү жана эң кымбат жол.

Сиз кардардан эмне алышыңыз керек?

Негизги маалымат. Долбоор эмне жөнүндө? Анын максаты жана баалуулугу. Негизги максаттар жана келечекке пландар. Бизнес максаттары жана стратегиялары. Негизги көйгөйлөр жана каалаган натыйжалар.

Долбоор боюнча маалымат. Технологиялык стек, фреймворктар, программалоо тилдери. Жергиликтүү же булуттагы жайылтуу. Долбоор булуттун ичинде болсо, кандай кызматтар колдонулат. Кандай архитектуралык жана дизайн үлгүлөрү колдонулган.

Функционалдык эмес талаптар. Системанын иштешине, жеткиликтүүлүгүнө жана колдонуунун оңойлугуна байланыштуу бардык талаптар. Коопсуздук талаптары ж.б.

Негизги колдонуу учурлары жана маалымат агымы.

Булак кодуна кирүү. Эң негизги бөлүгү! Долбоорду кантип куруу керектиги боюнча репозиторийлерге жана документтерге сөзсүз кирүү керек.

Инфраструктурага жетүү. Жандуу система менен иштөө үчүн сахнага же өндүрүш инфраструктурасына жетүү жакшы болмок. Кардардын инфраструктурага жана аткарууга мониторинг жүргүзүү үчүн куралдары болсо, бул чоң ийгилик. Бул куралдар тууралуу кийинки бөлүмдө сүйлөшөбүз.

жазуулар. Кардардын документтери болсо, бул жакшы башталыш. Ал эскирген болушу мүмкүн, бирок бул дагы эле жакшы башталыш. Документтерге эч качан ишенбеңиз - аны кардар менен, реалдуу инфраструктурада жана баштапкы коддо сынап көрүңүз.

Архитектураны баалоо процесси

Кантип мынчалык чоң көлөмдөгү маалыматты мынчалык кыска убакытта иштетүүгө болот? Биринчи кезекте ишти параллелдештириңиз.

DevOps инфраструктураны карашы керек. Технологияны кодго киргизиңиз. Иштин көрсөткүчтөрүн көрүү үчүн аткаруу инженери. Берилиштер базасынын адиси маалымат структураларына тереңирээк кириши керек.

Бирок бул сизде көп ресурстар болгондо идеалдуу учур. Адатта, бирден үч кишиге чейин долбоорго баа беришет. Долбоордун бардык багыттары боюнча тийиштүү билимге жана тажрыйбага ээ болсоңуз, сиз баалоону өзүңүз да жүргүзө аласыз. Бул учурда, мүмкүн болушунча бардык процесстерди автоматташтыруу керек.

Тилекке каршы, сиз документтерди кол менен окууга туура келет. Тажрыйбанын туура көлөмү менен сиз документтердин сапатын тез түшүнө аласыз. Чындык менен эмнеси так дал келбейт. Кээде документтерден архитектураны көрө аласыз, алар чыныгы жашоодо эч качан иштебейт. Бул долбоордо иш жүзүндө кандайча жасалгандыгы жөнүндө ойлонууга түрткү болот.

Долбоорду баалоону автоматташтыруу үчүн пайдалуу куралдар

Кодду баалоо жөнөкөй көнүгүү. Сиз дизайн, аткаруу жана коопсуздук маселелерин көрсөтө турган статикалык код анализаторлорун колдоно аласыз. Бул жерде алардын бир канчасы гана:

101 түзүмү архитектор үчүн сонун курал болуп саналат. Ал сизге чоң сүрөттү, модулдардын ортосундагы көз карандылыкты жана рефакторинг үчүн потенциалдуу аймактарды көрсөтөт. Бардык жакшы куралдар сыяктуу эле, бул жакшы акча талап кылат, бирок сиз 30 күндүк сыноо версиясынан пайдалана аласыз.

SonarQube - жакшы эски курал. Статикалык кодду талдоо үчүн курал. 20дан ашык программалоо тилдери үчүн жаман кодду, мүчүлүштүктөрдү жана коопсуздук көйгөйлөрүн аныктоого мүмкүндүк берет.

Бардык булут провайдерлеринде инфраструктураны көзөмөлдөө куралдары бар. Бул сиздин инфраструктураңыздын эффективдүүлүгүн наркы жана натыйжалуулугу боюнча туура баалоого мүмкүндүк берет. AWS үчүн бул ишенимдүү иликтеген. Azure үчүн бул оңой Azure кеңешчиси.

Кошумча өндүрүмдүүлүккө мониторинг жүргүзүү жана каттоо бардык деңгээлдердеги аткаруу маселелерин табууга жардам берет. Натыйжасыз суроо-талаптар менен маалымат базасынан баштап, бэкэнд жана фронт менен аяктайт. Эгерде кардар бул куралдарды мурда орнотпосо да, сиз аларды иштеп жаткан системага тез арада киргизип, аткаруу маселелерин аныктай аласыз.

Ар дайымкыдай эле, жакшы куралдар ага татыктуу. Мен бир нече акы төлөнүүчү куралдарды сунуш кыла алам. Албетте, сиз ачык булакты колдоно аласыз, бирок бул сизге көбүрөөк убакытты талап кылат. Ал эми бул архитектуралык баалоо процессинде эмес, алдын ала жасалышы керек.

Болумушту акча – колдонмонун натыйжалуулугун баалоо куралы
datadog – булут системасынын мониторинг кызматы

Коопсуздук тестирлөө үчүн көптөгөн куралдар бар. Бул жолу мен сизге акысыз системаны сканерлөө куралын сунуштайм.

OWASP ZAP – коопсуздук стандарттарына ылайык веб-тиркемелерди сканерлөө үчүн курал.

Келгиле, баарын бир бүтүнгө бириктирели.

Отчет даярдоо

Отчетуңузду кардардан чогулткан маалыматтар менен баштаңыз. Долбоордун максаттарын, чектөөлөрдү, функционалдык эмес талаптарды сүрөттөп бериңиз. Андан кийин, бардык киргизилген маалыматтар көрсөтүлүшү керек: баштапкы код, документтер, инфраструктура.

Кийинки кадам. Кол менен же автоматташтырылган куралдарды колдонуп тапкан көйгөйлөрүңүздү тизмектеңиз. Колдонмолор бөлүмүнүн аягында автоматтык түрдө түзүлгөн чоң отчетторду жайгаштырыңыз. Табылган көйгөйлөрдүн кыска жана так далилдери болушу керек.
Ката, эскертүү, маалымат масштабында табылган көйгөйлөргө артыкчылык бериңиз. Сиз өзүңүздүн масштабыңызды тандай аласыз, бирок бул жалпы кабыл алынган.

Чыныгы архитектор катары, табылган көйгөйлөрдү оңдоо боюнча сунуштарды берүү сиздин милдетиңиз. Кардар ала турган жакшыртууларды жана бизнестин баасын сүрөттөп бериңиз. Бизнестин баасын кантип көрсөтүү керек архитектуралык рефакторинг биз мурда талкууладык.

Кичинекей итерациялар менен жол картасын даярдаңыз. Ар бир итерация аяктоо үчүн убакытты, сыпаттаманы, жакшыртуу үчүн зарыл болгон ресурстардын көлөмүн, техникалык баалуулукту жана бизнестин баалуулугун камтышы керек.

Биз архитектуралык баа берүүнү аяктап, кардарга отчет беребиз

Эч качан жөн гана отчет жөнөтпөңүз. Ал такыр окулбай калышы мүмкүн, же туура түшүндүрмөсүз окуп, түшүнбөй калышы мүмкүн. Кыскасы, жандуу баарлашуу адамдардын ортосундагы түшүнбөстүктү жоюуга жардам берет. Сиз кардар менен жолугушууну пландаштырып, эң маанилүү көйгөйлөргө көңүл буруп, табылган көйгөйлөр жөнүндө сүйлөшүшүңүз керек. Кардардын көңүлүн ал билбеген көйгөйлөргө буруу керек. Мисалы, коопсуздук маселелери жана алар бизнеске кандай таасир этиши мүмкүн экенин түшүндүрөт. Жол картаңызды жакшыртуулар менен көрсөтүп, кардар үчүн ылайыктуу болгон ар кандай варианттарды талкуулаңыз. Бул убакыт, ресурстар, иштин көлөмү болушу мүмкүн.

Жолугушууңуздун корутундусу катары кардарга отчетуңузду жөнөтүңүз.

Жыйынтык

Архитектураны баалоо татаал процесс. Баалоону туура жүргүзүү үчүн жетиштүү тажрыйбага жана билимге ээ болушуңуз керек.

Кардарга бир жуманын ичинде ага жана анын бизнесине пайдалуу натыйжаларды берүүгө болот. Жалгыз кылсаң да.

Менин тажрыйбамдын негизинде көптөгөн жакшыртуулар ортодо жүктөлүп алынган, кээде эч качан башталбай калган. Өздөрү үчүн алтын ортону тандап алгандар жана минималдуу эмгек чыгымы менен бизнес үчүн эң пайдалуу болгон жакшыртуулардын бир бөлүгүн гана жасагандар продукциясынын сапатын бир топ жакшыртышты. Эч нерсе кылбагандар бир-эки жылдан кийин долбоорду толугу менен жаап салышы мүмкүн.

Сиздин максат кардар минималдуу баада максималдуу жакшыртууларды көрсөтүү болуп саналат.

Бөлүмдөгү башка макалалар архитектура бош убактыңызда окуй аласыз.

Мен сизге таза код жана жакшы архитектуралык чечимдерди каалайм.

Биздин Facebook группа - Программалык камсыздоонун архитектурасы жана иштеп чыгуу.

Source: www.habr.com

Комментарий кошуу