Wéi liest a fixéiert 100,000 Zeilen Code an enger Woch

Wéi liest a fixéiert 100,000 Zeilen Code an enger Woch
Am Ufank ass et ëmmer schwéier e groussen an ale Projet ze verstoen. Architektur ass eng vun den Aktivitéite vun enger Architektur Bewäertung. Normalerweis musst Dir mat groussen, ale Projete schaffen, an d'Resultater mussen an enger Woch geliwwert ginn.

Wéi e Projet vun 100k oder méi Zeilen Code an enger Woch ze evaluéieren, wärend ëmmer nach Resultater liwwert déi wierklech nëtzlech sinn fir de Client.

Déi meescht Architekten an technesch Leads hunn ähnlech Projektbewäertunge begéint. Dëst kann no engem semi-formelle Prozess ausgesinn oder als separat Service wéi et an eiser Gesellschaft gemaach gëtt, op déi eng oder aner Manéier hunn déi meescht vun iech dëst beschäftegt.

D'Original op Englesch fir Är net-russeschsproocheg Frënn ass hei: Architektur Bewäertung an enger Woch.

Eis Firma Approche

Ech soen Iech wéi et an eiser Firma funktionnéiert a wéi ech an ähnleche Situatiounen handelen, awer Dir kënnt dës Approche ganz einfach änneren no de Bedierfnesser vun Ärem Projet a Firma.

Et ginn zwou Zorte vun Architektur Bewäertung.

Interieur - mir maachen et normalerweis fir Projeten bannent der Firma. All Projet kann aus verschiddene Grënn eng Architektur Bewäertung ufroen:

  1. D'Team denkt datt hire Projet perfekt ass an dëst ass verdächteg. Mir haten esou Fäll, an dacks ass an esou Projeten alles wäit vun ideal.
  2. D'Equipe wëll hire Projet an hir Léisungen testen.
  3. D'Equipe weess datt d'Saache schlecht sinn. Si kënne souguer d'Haaptproblemer an d'Ursaachen oplëschten, awer wëllen eng komplett Lëscht vu Probleemer a Empfehlungen fir de Projet ze verbesseren.

Extern ass e méi formelle Prozess wéi eng intern Bewäertung. De Client kënnt ëmmer nëmmen an engem Fall, wann alles schlecht ass - ganz schlecht. Normalerweis versteet de Client datt et global Probleemer gëtt, awer kann d'Ursaachen net korrekt identifizéieren an se a Komponenten opbriechen.

D'Evaluatioun vun enger Architektur fir en externe Client ass e méi komplexe Fall. De Prozess soll méi formell sinn. D'Projete sinn ëmmer grouss an al. Si hu vill Problemer, Käferen a kromme Code. E Bericht iwwer d'Aarbechte soll maximal bannent e puer Woche fäerdeg sinn, deen d'Haaptproblemer a Recommandatioune fir Verbesserung sollt enthalen. Dofir, wa mir mat der externer Bewäertung vum Projet beschäftegen, da wäert déi intern Bewäertung e Stéck Kuch sinn. Loosst eis de schwieregste Fall betruechten.

Enterprise Projet Architektur Bewäertung

En typesche Projet fir ze evaluéieren ass e groussen, alen Enterprise Projet mat vill Probleemer. E Client kënnt bei eis a freet eis fir säi Projet ze fixéieren. Et ass wéi mat engem Äisbierg, de Client gesäit nëmmen den Tipp vu senge Problemer an huet keng Ahnung wat ënner dem Waasser ass (an der Tiefe vum Code).

Probleemer iwwer déi de Client sech beschwéieren kann a sech bewosst sinn:

  • Leeschtung Problemer
  • Benotzerfrëndlechkeet Problemer
  • Laangfristeg Détachement
  • Mangel un Eenheet an aner Tester

Probleemer déi de Client héchstwahrscheinlech net bewosst ass, awer se kënnen am Projet präsent sinn:

  • Sécherheetsproblemer
  • Design Problemer
  • Falsch Architektur
  • Algorithmesch Feeler
  • Onpassend Technologien
  • Technesch Schold
  • Falsch Entwécklungsprozess

Formell Architektur review Prozess

Dëst ass e formelle Prozess dee mir als Firma verfollegen, awer Dir kënnt et personaliséieren ofhängeg vun Ärer Firma a Projet.

Ufro vun engem Client

De Client freet d'Architektur vum aktuelle Projet ze evaluéieren. Déi responsabel Persoun vun eiser Säit sammelt Basisinformatiounen iwwer de Projet a wielt déi néideg Experten aus. Ofhängeg vum Projet kënnen dës verschidden Experten sinn.

Léisungsarchitekt – d'Haaptpersoun, déi fir d'Bewäertung an d'Koordinatioun verantwortlech ass (an dacks déi eenzeg).
Stack spezifesch Experten – .Net, Java, Python, an aner technesch Spezialisten ofhängeg vum Projet an Technologien
Cloud Experten - dës kënnen Azure, GCP oder AWS Cloud Architekten sinn.
Infrastruktur - DevOps, Systemadministrator, etc.
Aner Experten - wéi grouss Daten, Maschinnléieren, Leeschtungsingenieur, Sécherheetsexpert, QA Lead.

Sammelen Informatiounen iwwert de Projet

Dir sollt sou vill wéi méiglech Informatioun iwwer de Projet sammelen. Dir kënnt verschidden Techniken benotzen jee no der Situatioun:

  • Questionnaires an aner Methode vun Kommunikatioun iwwer Mail. De stäerkste ineffektiv Manéier.
  • Online Reuniounen.
  • Spezial Tools fir Informatiounsaustausch wéi: Google doc, Confluence, Repositories, asw.
  • "Live" Reuniounen op der Plaz. Déi effektivsten an deierste Manéier.

Wat sollt Dir vum Client kréien?

Basis Informatiounen. Ëm wat geet de Projet? Säin Zweck a Wäert. Haaptziler a Pläng fir d'Zukunft. Business Ziler a Strategien. Haaptproblemer a gewënschte Resultater.

Projet Informatiounen. Technologie Stack, Kaderen, Programméierungssproochen. On-premise oder Cloud Deployment. Wann de Projet an der Wollek ass, wéi eng Servicer gi benotzt. Wéi eng architektonesch an Designmuster goufen benotzt.

Net-funktionell Ufuerderunge. All Ufuerderungen am Zesummenhang mat der Leeschtung, der Disponibilitéit an der einfacher Benotzung vum System. Sécherheetsanforderungen etc.

Basis Benotzungsfäll an Datefloss.

Zougang zu Quellcode. De wichtegsten Deel! Dir sollt definitiv Zougang zu de Repositories an d'Dokumentatioun kréien wéi Dir de Projet bauen.

Zougang zu Infrastruktur. Et wier flott Zougang zu der Bühn oder Produktiounsinfrastruktur ze hunn fir mam Live System ze schaffen. Et ass e grousse Succès wann de Client Tools huet fir Infrastruktur a Leeschtung ze iwwerwaachen. Mir wäerten iwwer dës Tools an der nächster Sektioun schwätzen.

Dokumentatioun. Wann de Client Dokumentatioun huet ass dëst e gudde Start. Et ass vläicht verännert, awer et ass nach ëmmer e gudde Start. Vertrau ni d'Dokumentatioun - Test et mam Client, op real Infrastruktur an am Quellcode.

Architektur Evaluatioun Prozess

Wéi kann een esou eng grouss Quantitéit un Informatioun an esou kuerzer Zäit veraarbecht? Éischt vun all, parallelize der Aarbecht.

DevOps soll d'Infrastruktur kucken. Tech Lead an de Code. Leeschtungsingenieur fir Leeschtungsmetriken ze gesinn. En Datebankspezialist soll méi déif an d'Datestrukture gräifen.

Awer dëst ass en ideale Fall wann Dir vill Ressourcen hutt. Typesch evaluéieren een bis dräi Leit e Projet. Dir kënnt d'Devis souguer selwer maachen, wat dacks de Fall ass wann Dir dat richtegt Wëssen an Erfarung an alle Beräicher vum Projet hutt. An dësem Fall musst Dir all Prozesser sou vill wéi méiglech automatiséieren.

Leider musst Dir d'Dokumentatioun manuell liesen. Mat der richteger Quantitéit un Erfahrung kënnt Dir séier d'Qualitéit vun der Dokumentatioun verstoen. Wat stëmmt a wat fällt kloer net mat der Realitéit. Heiansdo kënnt Dir Architektur an der Dokumentatioun gesinn déi ni am richtege Liewen funktionnéiert. Dëst ass en Ausléiser fir Iech ze denken wéi et an der Realitéit am Projet gemaach gouf.

Nëtzlech Tools fir d'Evaluatioun vun de Projeten ze automatiséieren

Code Evaluatioun ass eng einfach Übung. Dir kënnt statesch Code Analysatoren benotzen déi Iech Design, Leeschtung a Sécherheetsprobleemer weisen. Hei sinn e puer vun hinnen:

Struktur 101 ass e super Tool fir en Architekt. Et wäert Iech dat grousst Bild weisen, Ofhängegkeeten tëscht Moduler a potenziell Beräicher fir Refactoring. Wéi all gutt Tools kascht et gutt Geld, awer Dir kënnt vun enger 30-Deeg Testversioun profitéieren.

SonarQube - eng gutt al Outil. En Tool fir statesch Code Analyse. Erlaabt Iech schlechte Code, Bugs a Sécherheetsproblemer fir méi wéi 20 Programméierungssproochen z'identifizéieren.

All Cloud Provider hunn Infrastruktur Iwwerwachung Tools. Dëst erlaabt Iech d'Effizienz vun Ärer Infrastruktur richteg ze evaluéieren a punkto Käschten a Leeschtung. Fir AWS ass dëst vertraut Beroder. Et ass einfach fir Azure Azure Beroder.

Zousätzlech Leeschtungsiwwerwaachung a Logbicher hëlleft Leeschtungsprobleemer op allen Niveauen ze fannen. Start vun enger Datebank mat ineffektiven Ufroen, de Backend an Enn mam Frontend. Och wann de Client dës Tools net virdru installéiert huet, kënnt Dir se zimlech séier an den existente System integréieren fir Performanceprobleemer z'identifizéieren.

Wéi ëmmer si gutt Tools et wäert. Ech kann e puer bezuelt Tools recommandéieren. Natierlech kënnt Dir Open-Source benotzen awer et wäert Iech méi Zäit huelen. An dëst sollt viraus gemaach ginn, net während dem architektonesche Bewäertungsprozess.

New Relic - e Tool fir d'Performance vun der Applikatioun ze bewäerten
datenhond - Cloud System Iwwerwachung Service

Et gi vill Tools verfügbar fir Sécherheetstesten. Dës Kéier wäert ech Iech e gratis System Scannen Tool recommandéieren.

OWASP ZAP - e Tool fir Webapplikatiounen ze scannen fir d'Konformitéit mat Sécherheetsnormen.

Komme mer alles zesummen an een Ganzt.

Virbereedung vun engem Rapport

Start Äre Bericht mat den Donnéeën, déi Dir vum Client gesammelt hutt. Beschreift de Projet Ziler, Aschränkungen, net-funktionell Ufuerderunge. Duerno sollten all Inputdaten ernimmt ginn: Quellcode, Dokumentatioun, Infrastruktur.

Nächste Schrëtt. Lëscht all Probleemer déi Dir manuell fonnt hutt oder automatiséiert Tools benotzt. Plaz grouss automatesch generéiert Berichter um Enn an der Uwendungssektioun. Et soll kuerz a succinct Beweiser vun de Problemer fonnt ginn.
Prioritéit d'Problemer fonnt um Feeler, Warnung, Info Skala. Dir kënnt Är eege Skala wielen, awer dëst ass déi allgemeng akzeptéiert.

Als richtegen Architekt ass et Är Verantwortung Empfehlungen ze ginn fir d'Problemer ze korrigéieren déi fonnt goufen. Beschreift d'Verbesserungen an de Geschäftswäert dee Client kritt. Wéi weisen Geschäftswäert vun Architektur Refactoring mir diskutéiert virdrun.

Bereet e Fahrplang mat klengen Iteratiounen. All Iteration soll Zäit enthalen fir ze kompletéieren, Beschreiwung, Betrag u Ressourcen fir Verbesserung, technesche Wäert a Geschäftswäert.

Mir kompletéieren d'Architekturbewäertung a ginn dem Client e Bericht

Ni just Mail e Rapport. Et kann guer net gelies ginn, oder vläicht net ouni richteg Erklärung gelies a verstane ginn. Kuerz gesot, Live Kommunikatioun hëlleft Mëssverständnisser tëscht Leit ze eliminéieren. Dir sollt eng Reunioun mam Client plangen an iwwer d'Problemer schwätzen, déi fonnt goufen, konzentréieren op déi bedeitendst. Et ass derwäert dem Client seng Opmierksamkeet op Probleemer ze zéien, déi hien net emol bewosst ass. Wéi Sécherheetsprobleemer an erkläre wéi se d'Geschäft kéinte beaflossen. Weist Är Fahrplang mat Verbesserungen an diskutéiert verschidden Optiounen déi méi gëeegent fir de Client sinn. Dëst kéint Zäit, Ressourcen, Betrag vun der Aarbecht sinn.

Als Resumé vun Ärer Versammlung, schéckt Äre Bericht un de Client.

Conclusioun

Architektur Evaluatioun ass e komplexe Prozess. Fir d'Bewäertung richteg auszeféieren, musst Dir genuch Erfahrung a Wëssen hunn.

Et ass méiglech de Client Resultater nëtzlech fir hien a säi Geschäft an nëmmen enger Woch ze bidden. Och wann Dir et eleng maacht.

Baséiert op meng Erfahrung, vill Verbesserungen goufen an der Mëtt erofgeluede, an heiansdo ni ugefaangen. Déi, déi de gëllene Mëttel fir sech selwer gewielt hunn an nëmmen en Deel vun de Verbesserungen gemaach hunn, déi am meeschte nëtzlech waren fir d'Geschäft mat minimalem Aarbechtskäschte, hunn d'Qualitéit vun hirem Produkt wesentlech verbessert. Déi, déi näischt gemaach hunn, konnten de Projet no e puer Joer ganz zoumaachen.

Äert Zil ass de Client maximal Verbesserunge fir de Mindestpräis ze weisen.

Aner Artikelen aus der Rubrik Architektur Dir kënnt an Ärer Fräizäit liesen.

Ech wënschen Iech propper Code a gutt architektonesch Entscheedungen.

Eis Facebook Grupp - Software Architektur an Entwécklung.

Source: will.com

Setzt e Commentaire