{"id":74955,"date":"2020-03-22T08:42:23","date_gmt":"2020-03-22T05:42:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu"},"modified":"2020-03-22T08:42:23","modified_gmt":"2020-03-22T05:42:23","slug":"kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu","title":{"rendered":"Jak przeczyta\u0107 i poprawi\u0107 100,000 linii kodu w tydzie\u0144","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Jak przeczyta\u0107 i poprawi\u0107 100,000 linii kodu w tydzie\u0144\" src=\"\/wp-content\/uploads\/2020\/03\/9d646716cc8d6eb1f9c49cb8539d7422.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNa pocz\u0105tku zawsze trudno jest zrozumie\u0107 du\u017cy i stary projekt. Ocena architektury to jedna z dzia\u0142a\u0144 architekta. Zwykle trzeba pracowa\u0107 nad du\u017cymi, starymi projektami, a wyniki nale\u017cy przedstawi\u0107 w ci\u0105gu tygodnia.<\/p>\n<p>Jak oceni\u0107 projekt o wielko\u015bci 100k i wi\u0119cej linii kodu w ci\u0105gu tygodnia, dostarczaj\u0105c jednocze\u015bnie naprawd\u0119 przydatne wyniki dla klienta?<\/p>\n<p>Wi\u0119kszo\u015b\u0107 architekt\u00f3w i lider\u00f3w technicznych spotka\u0142a si\u0119 z podobnymi ocenami projekt\u00f3w. Mo\u017ce to wygl\u0105da\u0107 jak p\u00f3\u0142formalny proces lub jako osobna us\u0142uga, jak to jest zrobione w naszej firmie, tak czy siak wi\u0119kszo\u015b\u0107 z was mia\u0142a z tym do czynienia.<\/p>\n<p>Orygina\u0142 w j\u0119zyku angielskim dla waszych nie rosyjskoj\u0119zycznych przyjaci\u00f3\u0142 znajduje si\u0119 tutaj: <noindex><a rel=\"nofollow\" href=\"http:\/\/alexandvira.com\/architecture\/architecture-assessment-read-and-fix-100000-lines-of-code-in-a-week\/\">Ocena architektury w tydzie\u0144<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Podej\u015bcie w naszej firmie<\/h2>\n<p>\nOpowiem wam, jak to dzia\u0142a w naszej firmie i jak post\u0119puj\u0119 w takich sytuacjach, ale mo\u017cecie swobodnie zmienia\u0107 to podej\u015bcie w zale\u017cno\u015bci od potrzeb waszego projektu i firmy.<\/p>\n<p>S\u0105 dwa rodzaje ocen architektury.<\/p>\n<p><b>Wewn\u0119trzna<\/b> \u2013 zazwyczaj przeprowadzamy j\u0105 dla projekt\u00f3w wewn\u0105trz firmy. Ka\u017cdy projekt mo\u017ce poprosi\u0107 o ocen\u0119 architektury z kilku powod\u00f3w:<\/p>\n<ol>\n<li>Zesp\u00f3\u0142 uwa\u017ca, \u017ce ich projekt jest idealny, co jest podejrzane. Mieli\u015bmy takie przypadki i cz\u0119sto w takich projektach nic nie jest idealne.<\/li>\n<li>Zesp\u00f3\u0142 chce sprawdzi\u0107 sw\u00f3j projekt i swoje rozwi\u0105zania.<\/li>\n<li>Zesp\u00f3\u0142 wie, \u017ce jest \u017ale. Mog\u0105 nawet wymieni\u0107 g\u0142\u00f3wne problemy i przyczyny, ale chc\u0105 otrzyma\u0107 pe\u0142n\u0105 list\u0119 problem\u00f3w i rekomendacji dotycz\u0105cych poprawy projektu.<\/li>\n<\/ol>\n<p>\n<b>Zewn\u0119trzna<\/b> \u2013 jest to bardziej formalny proces ni\u017c ocena wewn\u0119trzna. Klient zawsze przychodzi tylko w jednym przypadku, gdy wszystko jest \u017ale \u2013 bardzo \u017ale. Zwykle klient rozumie, \u017ce s\u0105 globalne problemy, ale nie potrafi dok\u0142adnie okre\u015bli\u0107 przyczyn i podzieli\u0107 ich na sk\u0142adniki.<\/p>\n<p>Ocena architektury dla zewn\u0119trznego klienta to bardziej skomplikowana sprawa. Proces musi by\u0107 bardziej formalny. Projekty s\u0105 zawsze du\u017ce i stare. Zawieraj\u0105 wiele problem\u00f3w, b\u0142\u0119d\u00f3w i nieklasycznego kodu. Raport z przeprowadzonej pracy musi by\u0107 gotowy w ci\u0105gu kilku tygodni maksymalnie, gdzie powinny by\u0107 g\u0142\u00f3wne problemy i rekomendacje dotycz\u0105ce poprawy. Dlatego, je\u015bli poradzimy sobie z zewn\u0119trzn\u0105 ocen\u0105 projektu, wewn\u0119trzna b\u0119dzie zosta\u0107 tylko drobnostk\u0105. Rozwa\u017cmy najtrudniejszy przypadek.<\/p>\n<h2>Ocena architektury projektu przedsi\u0119biorstwowego<\/h2>\n<p>\nTypowy projekt do oceny to du\u017cy, stary projekt enterprise z wieloma problemami. Klient przychodzi do nas z pro\u015bb\u0105 o napraw\u0119 swojego projektu. To jak z g\u00f3r\u0105 lodow\u0105, klient widzi tylko czubek swoich problem\u00f3w i nie zdaje sobie sprawy z tego, co znajduje si\u0119 pod wod\u0105 (w g\u0142\u0119bi kodu).<\/p>\n<p>Problemy, na kt\u00f3re klient mo\u017ce narzeka\u0107 i by\u0107 ich \u015bwiadomy:<\/p>\n<ul>\n<li>Problemy z wydajno\u015bci\u0105<\/li>\n<li>Problemy z u\u017cyteczno\u015bci\u0105 aplikacji (Usability)<\/li>\n<li>D\u0142ugi czas wdra\u017cania<\/li>\n<li>Brak test\u00f3w jednostkowych i innych test\u00f3w<\/li>\n<\/ul>\n<p>\nProblemy, o kt\u00f3rych klient mo\u017ce nie mie\u0107 poj\u0119cia, ale mog\u0105 wyst\u0119powa\u0107 w projekcie:<\/p>\n<ul>\n<li>Problemy z bezpiecze\u0144stwem<\/li>\n<li>Problemy projektowe<\/li>\n<li>Nieprawid\u0142owa architektura<\/li>\n<li>B\u0142\u0119dy algorytmiczne<\/li>\n<li>Niew\u0142a\u015bciwe technologie<\/li>\n<li>D\u0142ug techniczny<\/li>\n<li>Nieprawid\u0142owy proces rozwoju<\/li>\n<\/ul>\n<p><\/p>\n<h2>Formalny proces oceny architektury<\/h2>\n<p>\nTo formalny proces, kt\u00f3rego przestrzegamy w firmie, ale mo\u017cesz go dostosowa\u0107 do swoich potrzeb w zale\u017cno\u015bci od swojej firmy i projektu.<\/p>\n<h3>Zapytanie od klienta<\/h3>\n<p>\nKlient prosi o ocen\u0119 architektury bie\u017c\u0105cego projektu. Osoba odpowiedzialna z naszej strony zbiera podstawowe informacje o projekcie i dobiera potrzebnych ekspert\u00f3w. W zale\u017cno\u015bci od projektu mog\u0105 to by\u0107 r\u00f3\u017cni eksperci.<\/p>\n<p><b>Architekt rozwi\u0105za\u0144<\/b> \u2013 g\u0142\u00f3wna osoba odpowiedzialna za ocen\u0119 i koordynacj\u0119 (cz\u0119sto jest to jedyna osoba).<br \/>\n<b>Eksperci specyficzni dla technologii<\/b> \u2013 specjali\u015bci .Net, Java, Python i inni techniczni eksperci w zale\u017cno\u015bci od projektu i technologii<br \/>\n<b>Eksperci chmurowi<\/b> \u2013 mog\u0105 to by\u0107 architekci chmurowi Azure, GCP lub AWS.<br \/>\n<b>Infrastruktura<\/b> \u2013 DevOps, administrator system\u00f3w, itd.<br \/>\n<b>Inni eksperci<\/b> \u2013 tacy jak eksperci big data, machine learning, in\u017cynierowie wydajno\u015bci, eksperci ds. bezpiecze\u0144stwa, liderzy QA.<\/p>\n<h3>Zbieranie informacji o projekcie<\/h3>\n<p>\nPowiniene\u015b zebra\u0107 jak najwi\u0119cej informacji o projekcie. Mo\u017cesz stosowa\u0107 r\u00f3\u017cne techniki w zale\u017cno\u015bci od sytuacji:<\/p>\n<ul>\n<li>Ankiety i inne sposoby komunikacji przez e-mail. Najmniej efektywny spos\u00f3b.<\/li>\n<li>Spotkania online.<\/li>\n<li>Specjalne narz\u0119dzia do wymiany informacji takie jak: Google doc, Confluence, repozytoria itd.<\/li>\n<li>\u201eNa \u017cywo\u201d spotkania na miejscu. Najbardziej efektywny i najdro\u017cszy spos\u00f3b.<\/li>\n<\/ul>\n<p>\n<i>Co nale\u017cy uzyska\u0107 od klienta?<\/i><\/p>\n<p><b>Podstawowe informacje.<\/b> O czym jest projekt. Jego cel i warto\u015b\u0107. G\u0142\u00f3wne cele i plany na przysz\u0142o\u015b\u0107. Cele biznesowe i strategie. G\u0142\u00f3wne problemy i oczekiwany wynik.<\/p>\n<p><b>Informacje o projekcie<\/b>. Stos technologiczny, frameworki, j\u0119zyki programowania. Wdra\u017canie on-premise lub w chmurze. Je\u015bli projekt jest w chmurze, jakie us\u0142ugi s\u0105 u\u017cywane. Jakie wzorce architektoniczne i projektowe zosta\u0142y zastosowane.<\/p>\n<p><b>Wymagania niefunkcjonalne<\/b>. Wszystkie wymagania zwi\u0105zane z wydajno\u015bci\u0105, dost\u0119pno\u015bci\u0105, u\u017cyteczno\u015bci\u0105 systemu. Wymagania dotycz\u0105ce bezpiecze\u0144stwa itp.<\/p>\n<p><b>Podstawowe przypadki u\u017cycia i przep\u0142ywy danych.<\/b><\/p>\n<p><b>Dost\u0119p do kodu \u017ar\u00f3d\u0142owego<\/b>. Najwa\u017cniejsza cz\u0119\u015b\u0107! Musisz koniecznie uzyska\u0107 dost\u0119p do repozytori\u00f3w i dokumentacji, jak zbudowa\u0107 projekt.<\/p>\n<p><b>Dost\u0119p do infrastruktury<\/b>. Dobrze by\u0142oby uzyska\u0107 dost\u0119p do infrastruktury stage lub produkcyjnej, aby pracowa\u0107 z \u201e\u017cywym\u201d systemem. To du\u017ca zaleta, je\u015bli klient ma narz\u0119dzia do monitorowania infrastruktury i wydajno\u015bci. O tych narz\u0119dziach porozmawiamy w nast\u0119pnej sekcji.<\/p>\n<p><b>Dokumentacja<\/b>. Je\u015bli klient posiada dokumentacj\u0119, to dobry pocz\u0105tek. Mo\u017ce by\u0107 przestarza\u0142a, ale to wci\u0105\u017c dobry pocz\u0105tek. Nigdy nie wierz dokumentacji \u2013 sprawdzaj j\u0105 z klientem, na rzeczywistej infrastrukturze i w kodzie \u017ar\u00f3d\u0142owym.<\/p>\n<h3>Proces oceny architektury<\/h3>\n<p>\nJak poradzi\u0107 sobie z tak du\u017c\u0105 ilo\u015bci\u0105 informacji w tak kr\u00f3tkim czasie? Przede wszystkim rozdziel prac\u0119.<\/p>\n<p>DevOps powinien spojrze\u0107 na infrastruktur\u0119. Lider techniczny na kod. In\u017cynier wydajno\u015bci powinien zapozna\u0107 si\u0119 z metrykami wydajno\u015bci. Specjalista ds. baz danych powinien g\u0142\u0119biej zbada\u0107 struktury danych.<\/p>\n<p>Ale to idealny przypadek, gdy masz du\u017co zasob\u00f3w. Zazwyczaj ocen\u0119 projektu przeprowadza jedna do trzech os\u00f3b. Mo\u017cesz nawet przeprowadzi\u0107 ocen\u0119 samodzielnie, co cz\u0119sto si\u0119 zdarza, je\u015bli masz odpowiedni\u0105 wiedz\u0119 i do\u015bwiadczenie w wszystkich obszarach projektu. W takim przypadku powiniene\u015b zautomatyzowa\u0107 wszystkie procesy, na ile to mo\u017cliwe.<\/p>\n<p>Niestety, musisz przeczyta\u0107 dokumentacj\u0119 manualnie. Przy odpowiednim do\u015bwiadczeniu b\u0119dziesz m\u00f3g\u0142 do\u015b\u0107 szybko oceni\u0107 jako\u015b\u0107 dokumentacji. Co jest prawd\u0105, a co wyra\u017anie nie zgadza si\u0119 z rzeczywisto\u015bci\u0105. Czasami mo\u017cesz napotka\u0107 tak\u0105 architektur\u0119 w dokumentacji, kt\u00f3ra nigdy nie zadzia\u0142a w rzeczywisto\u015bci. To sygna\u0142 dla Ciebie, aby zastanowi\u0107 si\u0119, jak to zosta\u0142o zrealizowane w projekcie.<\/p>\n<h3>Przydatne narz\u0119dzia do automatyzacji oceny projektu<\/h3>\n<p>\nOcena kodu to proste \u0107wiczenie. Mo\u017cesz u\u017cy\u0107 statycznych analizator\u00f3w kodu, kt\u00f3re poka\u017c\u0105 problemy z projektem, wydajno\u015bci\u0105 i bezpiecze\u0144stwem. Oto kilka z nich:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/structure101.com\/\">Structure 101<\/a><\/noindex> to doskona\u0142e narz\u0119dzie dla architekta. Poka\u017ce ci og\u00f3lny obraz, zale\u017cno\u015bci mi\u0119dzy modu\u0142ami oraz potencjalne obszary do refaktoryzacji. Jak wszystkie dobre narz\u0119dzia, kosztuje sporo, ale jednocze\u015bnie mo\u017cesz skorzysta\u0107 z 30-dniowej wersji pr\u00f3bnej.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.sonarqube.org\/\">SonarQube<\/a><\/noindex> to stary, dobry narz\u0119dzie. Narz\u0119dzie do statycznej analizy kodu. Umo\u017cliwia identyfikacj\u0119 z\u0142ego kodu, b\u0142\u0119d\u00f3w oraz problem\u00f3w z bezpiecze\u0144stwem w ponad 20 j\u0119zykach programowania.<\/p>\n<p>Wszyscy dostawcy chmury maj\u0105 narz\u0119dzia do monitorowania infrastruktury. Pozwoli to prawid\u0142owo oceni\u0107 efektywno\u015b\u0107 infrastruktury pod k\u0105tem koszt\u00f3w i wydajno\u015bci. Dla AWS to <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/premiumsupport\/technology\/trusted-advisor\/\">trusted advisor<\/a><\/noindex>. Dla Azure to po prostu <noindex><a rel=\"nofollow\" href=\"https:\/\/azure.microsoft.com\/en-us\/services\/advisor\/\">Azure Advisor<\/a><\/noindex>.<\/p>\n<p>Dodatkowe monitorowanie wydajno\u015bci i logowanie pomo\u017ce zidentyfikowa\u0107 problemy z wydajno\u015bci\u0105 na wszystkich poziomach. Od bazy danych z nieefektywnymi zapytaniami, backendu, po frontend. Nawet je\u015bli klient wcze\u015bniej nie zainstalowa\u0142 tych narz\u0119dzi, mo\u017cesz do\u015b\u0107 szybko zintegrowa\u0107 je z istniej\u0105cym systemem, aby okre\u015bli\u0107 problemy z wydajno\u015bci\u0105.<\/p>\n<p>Jak zawsze dobre narz\u0119dzia kosztuj\u0105. Mog\u0119 poleci\u0107 kilka p\u0142atnych narz\u0119dzi. Oczywi\u015bcie mo\u017cesz korzysta\u0107 z open-source, ale zajmie to wi\u0119cej czasu. A to nale\u017cy zrobi\u0107 z wyprzedzeniem, a nie w trakcie oceny architektury.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/newrelic.com\/\">New Relic<\/a><\/noindex> to narz\u0119dzie do oceny wydajno\u015bci aplikacji<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.datadoghq.com\/\">Datadog<\/a><\/noindex> to us\u0142uga monitorowania w chmurze<\/p>\n<p>Do testowania bezpiecze\u0144stwa jest wiele narz\u0119dzi. Tym razem polec\u0119 ci darmowe narz\u0119dzie do skanowania systemu.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/owasp.org\/www-project-zap\/\">OWASP ZAP<\/a><\/noindex> to narz\u0119dzie do skanowania aplikacji internetowych pod k\u0105tem zgodno\u015bci z normami bezpiecze\u0144stwa.<\/p>\n<p>Zbieramy wszystko w ca\u0142o\u015b\u0107.<\/p>\n<h3>Przygotowujemy raport<\/h3>\n<p>\nRozpocznij sw\u00f3j raport od zebranych danych od klienta. Opisz cele projektu, ograniczenia, wymagania niefunkcjonalne. Nast\u0119pnie nale\u017cy wspomnie\u0107 o wszystkich danych wej\u015bciowych, takich jak kod \u017ar\u00f3d\u0142owy, dokumentacja, infrastruktura.<\/p>\n<p>Kolejny krok. Wymie\u0144 wszystkie problemy, kt\u00f3re znalaz\u0142e\u015b r\u0119cznie lub za pomoc\u0105 narz\u0119dzi automatycznych. Du\u017ce raporty generowane automatycznie umie\u015b\u0107 na ko\u0144cu w sekcji za\u0142\u0105cznik\u00f3w. Tutaj powinny by\u0107 kr\u00f3tkie i tre\u015bciwe dowody znalezionych problem\u00f3w.<br \/>\nPriorytetyzuj znalezione problemy w skali error, warning, info. Mo\u017cesz wybra\u0107 swoj\u0105 skal\u0119, ale ta jest powszechnie przyj\u0119ta.<\/p>\n<p>Jako prawdziwy architekt masz obowi\u0105zek dostarczy\u0107 rekomendacje dotycz\u0105ce usuni\u0119cia znalezionych problem\u00f3w. Opisz poprawki oraz warto\u015b\u0107 dla biznesu, jak\u0105 uzyska klient. Jak pokaza\u0107 warto\u015b\u0107 dla biznesu od <noindex><a rel=\"nofollow\" href=\"http:\/\/alexandvira.com\/architecture\/architecture-refactoring-and-design-refactoring-how-to-sell-it-client\/\">refaktoryzacja architektury<\/a><\/noindex> omawiali\u015bmy wcze\u015bniej.<\/p>\n<p>Przygotuj roadmap z ma\u0142ymi iteracjami. Ka\u017cda iteracja powinna zawiera\u0107 czas realizacji, opis, liczb\u0119 zasob\u00f3w potrzebnych do poprawy, warto\u015b\u0107 techniczn\u0105 i warto\u015b\u0107 dla biznesu.<\/p>\n<h3>Ko\u0144czymy ocen\u0119 architektury i dostarczamy klientowi raport.<\/h3>\n<p>\nNigdy nie wysy\u0142aj raportu tylko mailem. Mo\u017ce nie zosta\u0107 przeczytany lub zostanie przeczytany, ale nie zrozumiany bez odpowiedniego wyja\u015bnienia. Kr\u00f3tko m\u00f3wi\u0105c \u2013 bezpo\u015brednia komunikacja pomaga wyeliminowa\u0107 nieporozumienia mi\u0119dzy lud\u017ami. Powiniene\u015b um\u00f3wi\u0107 si\u0119 na spotkanie z klientem i om\u00f3wi\u0107 znalezione problemy, k\u0142ad\u0105c akcent na te najwa\u017cniejsze. Warto zwr\u00f3ci\u0107 uwag\u0119 klienta na problemy, kt\u00f3rych m\u00f3g\u0142 nawet nie by\u0107 \u015bwiadomy. Takie jak problemy z bezpiecze\u0144stwem i wyja\u015bni\u0107, jak mog\u0105 wp\u0142yn\u0105\u0107 na biznes. Poka\u017c swoj\u0105 roadmap z poprawkami i om\u00f3w r\u00f3\u017cne opcje, kt\u00f3re s\u0105 bardziej odpowiednie dla klienta. Mo\u017ce to dotyczy\u0107 czasu, zasob\u00f3w, zakresu prac.<\/p>\n<p>Podsumowuj\u0105c swoje spotkanie, wy\u015blij klientowi sw\u00f3j raport.<\/p>\n<h2>Na zako\u0144czenie<\/h2>\n<p>\nOcena architektury to skomplikowany proces. Aby przeprowadzi\u0107 ocen\u0119 prawid\u0142owo, musisz mie\u0107 wystarczaj\u0105ce do\u015bwiadczenie i wiedz\u0119.<\/p>\n<p>To mo\u017cliwe \u2013 dostarczy\u0107 klientowi przydatne wyniki w ci\u0105gu tygodnia. Nawet je\u015bli robisz to samodzielnie.<\/p>\n<p>Z mojego do\u015bwiadczenia wynika, \u017ce wiele popraw dzia\u0142a\u0144 utkn\u0119\u0142o w po\u0142owie, a czasami nawet nigdy si\u0119 nie zacz\u0119\u0142o. Ci, kt\u00f3rzy wybrali z\u0142oty \u015brodek i dokonali tylko cz\u0119\u015bci ulepsze\u0144 maksymalnie korzystnych dla biznesu przy minimalnym nak\u0142adzie pracy, znacznie poprawili jako\u015b\u0107 swojego produktu. Ci, kt\u00f3rzy nic nie robili, mogli za kilka lat ca\u0142kowicie zamkn\u0105\u0107 projekt.<\/p>\n<p>Twoim celem jest pokazanie klientowi maksymalnych ulepsze\u0144 za minimaln\u0105 cen\u0119.<\/p>\n<p>Inne artyku\u0142y z tej sekcji <noindex><a rel=\"nofollow\" href=\"http:\/\/alexandvira.com\/category\/architecture\/\">architektura<\/a><\/noindex> mo\u017cna przeczyta\u0107 w wolnym czasie.<\/p>\n<p>\u017bycz\u0119 ci czystego kodu i dobrych rozwi\u0105za\u0144 architektonicznych.<\/p>\n<p>Nasza grupa na Facebooku \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/groups\/206130407152602\/\">Architektura oprogramowania i rozw\u00f3j<\/a><\/noindex>.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/493226\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u044f\u0436\u0435\u043b\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0438 \u0441\u0442\u0430\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. Architecture assessment \u2014 \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0435\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u0430. \u041e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438, \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438, \u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043d\u0430\u0434\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e. \u041a\u0430\u043a \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 100\u043a \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0438 \u0442\u0435\u0445 \u043b\u0438\u0434\u043e\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":74956,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-74955","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u044f\u0436\u0435\u043b\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043f\u0440\u043e\u0447\u0435\u0441\u0442\u044c \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c 100,000 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u044f\u0436\u0435\u043b\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-22T05:42:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-22T05:42:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Jak przeczyta\u0107 i poprawi\u0107 100 000 linii kodu w tydzie\u0144 | ProHoster","description":"Na pocz\u0105tku zawsze jest trudno si\u0119 po\u0142apa\u0107 w.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043f\u0440\u043e\u0447\u0435\u0441\u0442\u044c \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c 100,000 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e | ProHoster","og:description":"\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u044f\u0436\u0435\u043b\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-22T05:42:23+00:00","article:modified_time":"2020-03-22T05:42:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"74955","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:04:26","updated":"2022-10-02 00:18:18","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/74955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=74955"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/74955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/74956"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=74955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=74955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=74955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}