{"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\/sl\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu","title":{"rendered":"Kako prebrati in popraviti 100.000 vrstic kode v enem tednu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kako prebrati in popraviti 100.000 vrstic kode v enem tednu\" src=\"\/wp-content\/uploads\/2020\/03\/9d646716cc8d6eb1f9c49cb8539d7422.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNa za\u010detku je vedno te\u017eko razumeti velik in star projekt. Architecture assessment je ena izmed dejavnosti arhitekta. Obi\u010dajno je treba delati z velikimi, starimi projekti, rezultati pa morajo biti dostavljeni v enem tednu.<\/p>\n<p>Kako oceniti projekt z ve\u010d kot 100 tiso\u010d vrsticami kode v enem tednu in hkrati zagotoviti resni\u010dno koristne rezultate za stranko?<\/p>\n<p>Ve\u010dina arhitektov in vodij ekip se je sre\u010dala s podobnimi ocenami projektov. To je lahko videti kot polformalni postopek ali kot lo\u010dena storitev, kot je to urejeno v na\u0161i dru\u017ebi; tako ali tako je ve\u010dina od vas imela s tem izku\u0161nje.<\/p>\n<p>Izvirnik v angle\u0161\u010dini za va\u0161e nerusko govore\u010de prijatelje je tukaj: <noindex><a rel=\"nofollow\" href=\"http:\/\/alexandvira.com\/architecture\/architecture-assessment-read-and-fix-100000-lines-of-code-in-a-week\/\">Architecture Assessment v enem tednu<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Pristop v na\u0161i dru\u017ebi<\/h2>\n<p>\nPovedal vam bom, kako to deluje v na\u0161i dru\u017ebi in kako ravnam v tak\u0161nih situacijah, vendar lahko ta pristop enostavno prilagodite potrebam va\u0161ega projekta in podjetja.<\/p>\n<p>Obstajata dve vrsti architecture assessment.<\/p>\n<p><b>Notranji<\/b> \u2013 obi\u010dajno ga izvajamo za projekte znotraj dru\u017ebe. Vsak projekt lahko zaprosi za oceno arhitekture iz ve\u010d razlogov:<\/p>\n<ol>\n<li>Ekipa meni, da je njihov projekt popoln, kar je sumljivo. Imeli smo tak\u0161ne primere, in ve\u010dinoma v tak\u0161nih projektih vse ni tako idealno.<\/li>\n<li>Ekipa \u017eeli preveriti svoj projekt in svoje re\u0161itve.<\/li>\n<li>Ekipa ve, da je vse slabo. Morda lahko na\u0161tejejo glavne te\u017eave in vzroke, vendar \u017eelijo dobiti popoln seznam te\u017eav ter priporo\u010dila za izbolj\u0161ave projekta.<\/li>\n<\/ol>\n<p>\n<b>Zunanji<\/b> \u2013 to je bolj formalen postopek kot notranja ocena. Stranka pride vedno samo v enem primeru, ko je vse slabo \u2013 zelo slabo. Obi\u010dajno stranka razume, da so globalne te\u017eave, vendar ne more pravilno opredeliti vzrokov in razdeliti na sestavne dele.<\/p>\n<p>Ocena arhitekture za zunanjo stranko je bolj zapleten primer. Postopek mora biti bolj formalen. Projekti so vedno veliki in stari. V njih je veliko te\u017eav, napak in slabo napisanega kode. Poro\u010dilo o opravljenem delu mora biti pripravljeno v nekaj tednih najve\u010d, kjer morajo biti glavne te\u017eave in priporo\u010dila za izbolj\u0161anje. Zato, \u010de se spoprijemo z zunanjo oceno projekta, bo notranja ocena le mala malenkost. Poglejmo najbolj zapleten primer.<\/p>\n<h2>Ocena arhitekture podjetni\u0161kega projekta<\/h2>\n<p>\nTipi\u010dan projekt za procjenu je veliki, stari, enterprise projekt s brojnim problemima. Klijent dolazi kod nas i tra\u017ei da popravimo njegov projekt. To je poput ledenjaka, klijent vidi samo vrh svojih problema i ne sluti \u0161to se nalazi ispod povr\u0161ine (u dubini koda).<\/p>\n<p>Problemi na koje se klijent mo\u017ee po\u017ealiti i za koje mo\u017ee znati:<\/p>\n<ul>\n<li>Problemi s performansama<\/li>\n<li>Problemi s upotrebljivo\u0161\u0107u aplikacije (Usability)<\/li>\n<li>Dugotrajna implementacija<\/li>\n<li>Nedostatak unit i drugih testova<\/li>\n<\/ul>\n<p>\nProblemi o kojima klijent vjerojatno nije svjestan, ali mogu postojati u projektu:<\/p>\n<ul>\n<li>Problemi s sigurno\u0161\u0107u<\/li>\n<li>Problemi s dizajnom<\/li>\n<li>Neta\u010dna arhitektura<\/li>\n<li>Algoritamske gre\u0161ke<\/li>\n<li>Neodgovaraju\u0107e tehnologije<\/li>\n<li>Tehni\u010dki dug<\/li>\n<li>Pogre\u0161an proces razvoja<\/li>\n<\/ul>\n<p><\/p>\n<h2>Formalni proces ocjenjivanja arhitekture<\/h2>\n<p>\nTo je formalni proces kojeg se pridr\u017eavamo u tvrtki, ali ga mo\u017eete prilagoditi prema svojoj tvrtki i projektu.<\/p>\n<h3>Zahtjev od klijenta<\/h3>\n<p>\nKlijent tra\u017ei procjenu arhitekture trenutnog projekta. Odgovorna osoba s na\u0161e strane prikuplja osnovne informacije o projektu i bira potrebne stru\u010dnjake. Ovisno o projektu, to mogu biti razli\u010diti stru\u010dnjaci.<\/p>\n<p><b>Solution Architect<\/b> \u2013 glavna osoba odgovorna za procjenu i koordinaciju (i \u010desto jedina).<br \/>\n<b>Stack specific experts<\/b> \u2013 .Net, Java, Python i drugi tehni\u010dki stru\u010dnjaci ovisno o projektu i tehnologijama<br \/>\n<b>Cloud experts<\/b> \u2013 to mogu biti Azure, GCP ili AWS cloud arhitekti.<br \/>\n<b>Infrastructure<\/b> \u2013 DevOps, sistemski administrator itd.<br \/>\n<b>Ostali stru\u010dnjaci<\/b> \u2013 poput big data, machine learning, performance engineer, security expert, QA lead.<\/p>\n<h3>Prikupljanje informacija o projektu<\/h3>\n<p>\nTrebate prikupiti \u0161to vi\u0161e informacija o projektu. Mo\u017eete koristiti razli\u010dite tehnike ovisno o situaciji:<\/p>\n<ul>\n<li>Anketni upitnici i druge metode komunikacije putem e-maila. Najmanje u\u010dinkovita metoda.<\/li>\n<li>Online sastanci.<\/li>\n<li>Specijalni alati za razmjenu informacija, poput: Google doc, Confluence, repozitoriji itd.<\/li>\n<li>\u201e\u017divi\u201c sastanci na licu mjesta. Naju\u010dinkovitija i najskuplja metoda.<\/li>\n<\/ul>\n<p>\n<i>\u0160to trebate dobiti od klijenta?<\/i><\/p>\n<p><b>Osnovne informacije.<\/b> O \u010demu se radi u projektu. Njegova svrha i vrijednost. Glavni ciljevi i planovi za budu\u0107nost. Poslovni ciljevi i strategije. Glavni problemi i \u017eeljeni ishod.<\/p>\n<p><b>Informacije o projektu<\/b>. Tehnolo\u0161ki sklad, okviri, programski jeziki. On-premise ali obla\u010dna implementacija. \u010ce je projekt v oblaku, katere storitve se uporabljajo. Kateri arhitekturni in dizajni vzorci so bili uporabljeni.<\/p>\n<p><b>Ne funkcionalne zahteve<\/b>. Vse zahteve, povezane z zmogljivostjo, dostopnostjo, uporabnostjo sistema. Zahteve glede varnosti itd.<\/p>\n<p><b>Osnovni uporabni\u0161ki scenariji in podatkovni tokovi.<\/b><\/p>\n<p><b>Dostop do izvorne kode<\/b>. Najpomembnej\u0161i del! Obvezno morate pridobiti dostop do skladi\u0161\u010d in dokumentacije, kako zgraditi projekt.<\/p>\n<p><b>Dostop do infrastrukture<\/b>. Dobro bi bilo pridobiti dostop do stage ali produkcijske infrastrukture, da delate s \u00bb\u017eivo\u00ab sistemom. To je velika sre\u010da, \u010de ima stranka orodja za spremljanje infrastrukture in zmogljivosti. O teh orodjih bomo govorili v naslednjem razdelku.<\/p>\n<p><b>Dokumentacija<\/b>. \u010ce ima stranka dokumentacijo, je to dober za\u010detek. Morda je zastarela, a je vseeno dober za\u010detek. Nikoli ne verjemite dokumentaciji \u2013 preverite jo s stranko, na realni infrastrukturi in v izvorni kodi.<\/p>\n<h3>Postopek ocenjevanja arhitekture<\/h3>\n<p>\nKako obdelati tako veliko koli\u010dino informacij v tako kratkem \u010dasu? Predvsem razporedite delo.<\/p>\n<p>DevOps naj si ogleda infrastrukturo. Tehni\u010dni vodja v kodo. In\u017eenir zmogljivosti naj si ogleda metrike po zmogljivosti. Specialist za baze podatkov naj poglobi strukture podatkov.<\/p>\n<p>Toda to je idealen primer, ko imate veliko virov. Obi\u010dajno oceno projekta izvede od enega do treh ljudi. Ocenite lahko celo sami, kar se pogosto zgodi, \u010de imate ustrezno znanje in izku\u0161nje na vseh podro\u010djih projekta. V tem primeru morate avtomatizirati vse procese, kolikor je le mogo\u010de.<\/p>\n<p>\u017dal boste morali dokumentacijo prebrati ro\u010dno. Ob ustreznih izku\u0161njah boste lahko precej hitro razumeli kakovost dokumentacije. Kaj je res, in kaj o\u010ditno ne ustreza dejanskosti. V\u010dasih lahko naletite na arhitekturo v dokumentaciji, ki nikoli ne bo delovala v resni\u010dnem svetu. To je spro\u017eilec, da razmislite, kako je v resnici narejeno v projektu.<\/p>\n<h3>Koristna orodja za avtomatizacijo ocene projekta<\/h3>\n<p>\nOcena kode je preprosta naloga. Uporabite lahko stati\u010dne analizatorje kode, ki bodo pokazali te\u017eave z oblikovanjem, zmogljivostjo in varnostjo. Tu je nekaj izmed njih:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/structure101.com\/\">Structure 101<\/a><\/noindex> je odli\u010dno orodje za arhitekta. Poka\u017ee vam celotno sliko, odvisnosti med moduli in potencialna podro\u010dja za refaktoring. Kot pri vseh dobrih orodjih ima svojo ceno, a hkrati lahko izkoristite 30-dnevno preizku\u0161njo.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.sonarqube.org\/\">SonarQube<\/a><\/noindex> je staro znano orodje. Orodje za stati\u010dno analizo kode. Omogo\u010da odkrivanje slabe kode, napak in varnostnih te\u017eav za ve\u010d kot 20 programskih jezikov.<\/p>\n<p>Vsi obla\u010dni ponudniki imajo orodja za spremljanje infrastrukture. To vam omogo\u010da pravilno oceno u\u010dinkovitosti infrastrukture z vidika stro\u0161kov in zmogljivosti. Za AWS je to <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/premiumsupport\/technology\/trusted-advisor\/\">trusted advisor<\/a><\/noindex>. Za Azure je preprosto <noindex><a rel=\"nofollow\" href=\"https:\/\/azure.microsoft.com\/en-us\/services\/advisor\/\">Azure Advisor<\/a><\/noindex>.<\/p>\n<p>Dodatno spremljanje zmogljivosti in bele\u017eenje bo pomagalo pri iskanju te\u017eav z zmogljivostjo na vseh ravneh. Za\u010dne se pri podatkovnih bazah z neu\u010dinkovitimi poizvedbami, backendu in kon\u010da pri frontend-u. Tudi \u010de kupec teh orodij prej ni namestil, jih lahko razmeroma hitro integrirate v obstoje\u010di sistem, da dolo\u010dite te\u017eave z zmogljivostjo.<\/p>\n<p>Kot vedno, dobra orodja nekaj stanejo. Lahko priporo\u010dim nekaj pla\u010dljivih orodij. Seveda lahko uporabite odprtokodna, a za to potrebujete ve\u010d \u010dasa. To naj bo opravljeno vnaprej, ne pa med oceno arhitekture.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/newrelic.com\/\">New Relic<\/a><\/noindex> orodje za oceno zmogljivosti aplikacij<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.datadoghq.com\/\">Datadog<\/a><\/noindex> obla\u010dna storitev za spremljanje sistemov<\/p>\n<p>Za testiranje varnosti je veliko orodij. Tokrat vam priporo\u010dam brezpla\u010dno orodje za skeniranje sistema.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/owasp.org\/www-project-zap\/\">OWASP ZAP<\/a><\/noindex> je orodje za skeniranje spletnih aplikacij glede skladnosti z varnostnimi standardi.<\/p>\n<p>Zdru\u017eujemo vse v celoto.<\/p>\n<h3>Pripravljamo poro\u010dilo<\/h3>\n<p>\nZa\u010dnite svoje poro\u010dilo s podatki, zbranimi od stranke. Opisujte cilje projekta, omejitve in nefunkcionalne zahteve. Po tem je treba omeniti vse vhodne podatke, izvorno kodo, dokumentacijo in infrastrukturo.<\/p>\n<p>Nadaljni korak. Dolo\u010dite vse te\u017eave, ki ste jih odkrili ro\u010dno ali s pomo\u010djo avtomatiziranih orodij. Obse\u017ene avtomatsko generirane poro\u010dila postavite na konec v razdelek prilog. Tukaj morajo biti kratki in jedrnati dokazi o ugotovljenih te\u017eavah.<br \/>\nPrioritizirajte odkrite te\u017eave po lestvici napaka, opozorilo, informacija. Izbrati lahko svojo lestvico, vendar je ta splo\u0161no sprejeta.<\/p>\n<p>Kot pravi arhitekt morate zagotoviti priporo\u010dila za re\u0161evanje ugotovljenih te\u017eav. Opisujte izbolj\u0161ave in vrednost za poslovanje, ki jo bo stranka pridobila. Kako prikazati vrednost za poslovanje od <noindex><a rel=\"nofollow\" href=\"http:\/\/alexandvira.com\/architecture\/architecture-refactoring-and-design-refactoring-how-to-sell-it-client\/\">prestrukturiranja arhitekture<\/a><\/noindex> smo se pogovarjali prej.<\/p>\n<p>Pripravite na\u010drt z majhnimi iteracijami. Vsaka iteracija naj vsebuje \u010das za izvedbo, opis, \u0161tevilo virov potrebnih za izbolj\u0161anje, tehni\u010dno vrednost in vrednost za poslovanje.<\/p>\n<h3>Zaklju\u010dujemo oceno arhitekture in predajamo stranki poro\u010dilo.<\/h3>\n<p>\nNikoli ne po\u0161iljajte poro\u010dila zgolj po po\u0161ti. Morda ga sploh ne bodo prebrali ali ga preberete in ne razumejo brez ustreznega pojasnila. Kraj\u0161a komunikacija pomaga odpraviti nesporazume med ljudmi. Sklicati se morate na sestanek s stranko in govoriti o ugotovljenih te\u017eavah, pri \u010demer poudarite najpomembnej\u0161e. Vredni pa je opozoriti stranko na te\u017eave, za katere morda sploh ni vedela. Tak\u0161ne kot so te\u017eave s varnostjo in razlo\u017eite, kako lahko vplivajo na poslovanje. Prikazujte svojo na\u010drt z izbolj\u0161avami in razpravljajte o razli\u010dnih mo\u017enostih, ki so bolj primerne za stranko. To lahko vklju\u010duje \u010das, vire, obseg dela.<\/p>\n<p>Kot povzetek va\u0161ega sestanka po\u0161ljite stranki svoje poro\u010dilo.<\/p>\n<h2>Na z\u00e1ver<\/h2>\n<p>\nOcena arhitekture je zapleten postopek. Da bi oceno izvedli pravilno, morate imeti dovolj izku\u0161enj in znanja.<\/p>\n<p>To je mogo\u010de \u2014 zagotoviti stranki koristne rezultate za njega in njegovo podjetje v vsega enem tednu. Tudi \u010de to po\u010dnete sami.<\/p>\n<p>Glede na moje izku\u0161nje so se mnoge izbolj\u0161ave ustavile na pol poti, v\u010dasih pa tudi nikoli niso za\u010dele. Tisti, ki so izbrali zlato sredino in izvedli le del izbolj\u0161av, ki so bile maksimalno koristne za poslovanje z minimalnimi napori, so znatno izbolj\u0161ali kakovost svojega izdelka. Tisti, ki niso storili ni\u010desar, so \u010dez nekaj let lahko celo zaprli projekt.<\/p>\n<p>Va\u0161a cilj je pokazati kupcu maksimalna pobolj\u0161anja po minimalnoj cijeni.<\/p>\n<p>Drugi \u010dlanci iz sekcije <noindex><a rel=\"nofollow\" href=\"http:\/\/alexandvira.com\/category\/architecture\/\">arhitektura<\/a><\/noindex> mo\u017ee se pro\u010ditati u slobodno vrijeme.<\/p>\n<p>\u017delim vam \u010dist kod i dobra arhitektonska re\u0161enja.<\/p>\n<p>Na\u0161a facebook grupa \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/groups\/206130407152602\/\">Softverska arhitektura i razvoj<\/a><\/noindex>.<br \/>\n<br \/>Izvor: <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.4 - 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\/sl\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\/sl\/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\udd47Kako pro\u010ditati i ispraviti 100,000 linija koda za nedelju dana | ProHoster","description":"Na po\u010detku je uvijek te\u0161ko sna\u0107i se u.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/74955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=74955"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/74955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/74956"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=74955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=74955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=74955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}