{"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\/it\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu","title":{"rendered":"Come leggere e correggere 100.000 righe di codice in una settimana","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Come leggere e correggere 100.000 righe di codice in una settimana\" src=\"\/wp-content\/uploads\/2020\/03\/9d646716cc8d6eb1f9c49cb8539d7422.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAll'inizio \u00e8 sempre difficile orientarsi in un progetto grande e vecchio. La valutazione dell'architettura \u00e8 una delle attivit\u00e0 dell'architetto. Di solito si lavora su grandi progetti obsoleti, e i risultati devono essere forniti entro una settimana.<\/p>\n<p>Come valutare un progetto di 100k e pi\u00f9 righe di codice in una settimana, fornendo allo stesso tempo risultati realmente utili per il cliente.<\/p>\n<p>La maggior parte degli architetti e dei team leader ha affrontato stime di questo tipo. Questo pu\u00f2 apparire come un processo semi-formale o come un servizio separato come nel nostro caso; in un modo o nell'altro, la maggior parte di voi ha avuto a che fare con questo.<\/p>\n<p>L'originale in inglese per i vostri amici non russofoni si trova qui: <noindex><a rel=\"nofollow\" href=\"http:\/\/alexandvira.com\/architecture\/architecture-assessment-read-and-fix-100000-lines-of-code-in-a-week\/\">Architecture Assessment in a week<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Il nostro approccio<\/h2>\n<p>\nVi spiegher\u00f2 come funziona nella nostra azienda e come mi comporto in situazioni simili, ma potete facilmente adattare questo approccio alle esigenze del vostro progetto e della vostra azienda.<\/p>\n<p>Ci sono due tipi di valutazione dell'architettura.<\/p>\n<p><b>Interna<\/b> \u2013 di solito la facciamo per progetti all'interno dell'azienda. Qualsiasi progetto pu\u00f2 richiedere una valutazione dell'architettura per diversi motivi:<\/p>\n<ol>\n<li>Il team pensa che il proprio progetto sia perfetto e ci\u00f2 \u00e8 sospetto. Abbiamo avuto casi simili e spesso in questi progetti non \u00e8 affatto cos\u00ec.<\/li>\n<li>Il team desidera controllare il proprio progetto e le proprie soluzioni.<\/li>\n<li>Il team sa che ci sono dei problemi. Possono anche elencare i principali problemi e le cause, ma vogliono avere un elenco completo di problemi e raccomandazioni per migliorare il progetto.<\/li>\n<\/ol>\n<p>\n<b>Esterno<\/b> \u2013 \u00e8 un processo pi\u00f9 formale rispetto alla valutazione interna. Il cliente si presenta solo in un caso, quando le cose vanno male \u2013 molto male. Di solito il cliente comprende che ci sono problemi globali, ma non pu\u00f2 identificare correttamente le cause e scomporle.<\/p>\n<p>La valutazione dell'architettura per un cliente esterno \u00e8 un caso pi\u00f9 complesso. Il processo deve essere pi\u00f9 formale. I progetti sono sempre grandi e obsoleti. Presentano molti problemi, bug e codice non ottimale. Il report sul lavoro svolto deve essere pronto entro poche settimane al massimo, indicando i principali problemi e raccomandazioni per il miglioramento. Pertanto, se riusciamo a gestire la valutazione esterna del progetto, quella interna sar\u00e0 un gioco da ragazzi. Consideriamo il caso pi\u00f9 difficile.<\/p>\n<h2>Valutazione dell'architettura di un progetto enterprise<\/h2>\n<p>\nUn progetto tipico da valutare \u00e8 un grande progetto enterprise, vecchio e con molte problematiche. Il cliente si rivolge a noi e chiede di riparare il suo progetto. \u00c8 come un iceberg, il cliente vede solo la punta dei suoi problemi e non si rende conto di ci\u00f2 che si trova sotto l'acqua (in profondit\u00e0 nel codice).<\/p>\n<p>Problemi di cui il cliente pu\u00f2 lamentarsi e di cui pu\u00f2 essere a conoscenza:<\/p>\n<ul>\n<li>Problemi di performance<\/li>\n<li>Problemi di usabilit\u00e0 dell'applicazione<\/li>\n<li>Deploy prolungato<\/li>\n<li>Mancanza di test unitari e di altri tipi di test<\/li>\n<\/ul>\n<p>\nProblemi di cui il cliente probabilmente non \u00e8 a conoscenza, ma che possono essere presenti nel progetto:<\/p>\n<ul>\n<li>Problemi di sicurezza<\/li>\n<li>Problemi di progettazione<\/li>\n<li>Architettura errata<\/li>\n<li>Errori algoritmici<\/li>\n<li>Tecnologie inadeguate<\/li>\n<li>Debito tecnico<\/li>\n<li>Processo di sviluppo errato<\/li>\n<\/ul>\n<p><\/p>\n<h2>Processo formale di valutazione dell'architettura<\/h2>\n<p>\nQuesto \u00e8 un processo formale che seguiamo in azienda, ma puoi adattarlo alle tue esigenze a seconda della tua azienda e del progetto.<\/p>\n<h3>Richiesta da parte del cliente<\/h3>\n<p>\nIl cliente chiede di valutare l'architettura del progetto attuale. La persona responsabile da parte nostra raccoglie informazioni di base sul progetto e seleziona gli esperti necessari. A seconda del progetto, possono essere esperti diversi.<\/p>\n<p><b>Solution Architect<\/b> \u2013 la persona principale responsabile della valutazione e del coordinamento (e spesso l'unica).<br \/>\n<b>Esperti specifici per stack<\/b> \u2013 .Net, Java, Python e altri specialisti tecnici a seconda del progetto e delle tecnologie<br \/>\n<b>Esperti cloud<\/b> \u2013 possono essere architetti cloud di Azure, GCP o AWS.<br \/>\n<b>Infrastruttura<\/b> \u2013 DevOps, amministratore di sistema, ecc.<br \/>\n<b>Altri esperti<\/b> \u2013 come big data, machine learning, performance engineer, esperto di sicurezza, QA lead.<\/p>\n<h3>Raccolta di informazioni sul progetto<\/h3>\n<p>\nDovresti raccogliere quante pi\u00f9 informazioni possibile sul progetto. Puoi utilizzare diverse tecniche a seconda della situazione:<\/p>\n<ul>\n<li>Questionari e altri modi di comunicare via email. Il modo meno efficace.<\/li>\n<li>Incontri online.<\/li>\n<li>Strumenti speciali per la condivisione delle informazioni come: Google doc, Confluence, repository, ecc.<\/li>\n<li>Incontri 'di persona'. Il modo pi\u00f9 efficace e costoso.<\/li>\n<\/ul>\n<p>\n<i>Cosa bisogna ottenere dal cliente?<\/i><\/p>\n<p><b>Informazioni di base.<\/b> Di cosa tratta il progetto. Il suo obiettivo e valore. Obiettivi principali e piani futuri. Obiettivi aziendali e strategie. Problemi principali e risultati desiderati.<\/p>\n<p><b>Informazioni sul progetto<\/b>. Stack tecnologico, framework, linguaggi di programmazione. Deployment on-premise o cloud. Se il progetto \u00e8 in cloud, quali servizi vengono utilizzati? Quali pattern architettonici e di design sono stati applicati.<\/p>\n<p><b>Requisiti non funzionali<\/b>. Tutti i requisiti relativi a prestazioni, disponibilit\u00e0, usabilit\u00e0 del sistema. Requisiti di sicurezza, ecc.<\/p>\n<p><b>Use case di base e flussi di dati.<\/b><\/p>\n<p><b>Accesso al codice sorgente<\/b>. La parte pi\u00f9 importante! Dovete assolutamente ottenere accesso ai depositi e alla documentazione su come costruire il progetto.<\/p>\n<p><b>Accesso all'infrastruttura<\/b>. Sarebbe utile avere accesso all'infrastruttura di staging o produzione per lavorare con un sistema \"live\". \u00c8 una grande fortuna se il cliente dispone di strumenti di monitoraggio dell'infrastruttura e delle prestazioni. Parleremo di questi strumenti nella sezione successiva.<\/p>\n<p><b>Documentazione<\/b>. Se il cliente ha della documentazione, \u00e8 un buon inizio. Potrebbe essere obsoleta, ma \u00e8 comunque un buon inizio. Non fidatevi mai della documentazione \u2013 verificate con il cliente, su infrastruttura reale e nel codice sorgente.<\/p>\n<h3>Processo di valutazione dell'architettura<\/h3>\n<p>\nCome gestire un cos\u00ec grande volume di informazioni in cos\u00ec poco tempo? Prima di tutto, parallelizzate il lavoro.<\/p>\n<p>Il DevOps dovrebbe esaminare l'infrastruttura. Il team leader dovrebbe guardare il codice. L'ingegnere delle prestazioni dovrebbe analizzare le metriche sulle prestazioni. Lo specialista di database dovrebbe approfondire le strutture dei dati.<\/p>\n<p>Ma questo \u00e8 il caso ideale, quando si hanno molte risorse. Di solito, la valutazione del progetto viene effettuata da una a tre persone. Potete anche effettuare la valutazione da soli, il che accade spesso, se avete le conoscenze e l'esperienza adeguate in tutti gli ambiti del progetto. In tal caso, dovete automatizzare tutti i processi, per quanto possibile.<\/p>\n<p>Sfortunatamente, dovrete leggere la documentazione manualmente. Con l'esperienza adeguata, sarete in grado di capire rapidamente la qualit\u00e0 della documentazione. Cosa \u00e8 vero e cosa non corrisponde alla realt\u00e0. A volte, potreste incontrare un'architettura nella documentazione che non funzioner\u00e0 mai nella vita reale. Questo \u00e8 un segnale per vederci chiaro su come sono stati realizzati i progetti nella realt\u00e0.<\/p>\n<h3>Strumenti utili per l'automazione della valutazione del progetto<\/h3>\n<p>\nLa valutazione del codice \u00e8 un esercizio semplice. Puoi utilizzare analizzatori statici del codice che evidenziano problemi di design, performance e sicurezza. Ecco alcuni di essi:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/structure101.com\/\">Structure 101<\/a><\/noindex> \u00e8 uno strumento eccellente per l'architetto. Ti mostrer\u00e0 l'immagine complessiva, le dipendenze tra i moduli e le aree potenziali per il refactoring. Come tutti gli strumenti validi, ha un costo significativo, ma puoi usufruire di una versione trial di 30 giorni.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.sonarqube.org\/\">SonarQube<\/a><\/noindex> \u00e8 il vecchio e buon strumento. Uno strumento per l'analisi statica del codice. Permette di identificare codice scadente, bug, problemi di sicurezza per oltre 20 linguaggi di programmazione.<\/p>\n<p>Tutti i fornitori di cloud hanno strumenti per il monitoraggio dell'infrastruttura. Questo ti consentir\u00e0 di valutare correttamente l'efficacia dell'infrastruttura in termini di costi e prestazioni. Per AWS, questo \u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/premiumsupport\/technology\/trusted-advisor\/\">trusted advisor<\/a><\/noindex>. Per Azure \u00e8 semplicemente <noindex><a rel=\"nofollow\" href=\"https:\/\/azure.microsoft.com\/en-us\/services\/advisor\/\">Azure Advisor<\/a><\/noindex>.<\/p>\n<p>Un monitoraggio aggiuntivo delle performance e della registrazione aiuter\u00e0 a individuare problemi di performance a tutti i livelli. Partendo dal database con query inefficienti, al backend, fino al frontend. Anche se il cliente non ha installato questi strumenti in precedenza, puoi integrarli rapidamente nel sistema esistente per identificare problemi di performance.<\/p>\n<p>Come sempre, gli strumenti validi hanno un costo. Posso consigliarti un paio di strumenti a pagamento. Certo, puoi utilizzare strumenti open-source, ma ti richiederanno pi\u00f9 tempo. E questo dovrebbe essere fatto in anticipo, non durante la valutazione dell'architettura.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/newrelic.com\/\">New Relic<\/a><\/noindex> \u00e8 uno strumento per la valutazione delle performance delle applicazioni<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.datadoghq.com\/\">Datadog<\/a><\/noindex> \u00e8 un servizio cloud di monitoraggio dei sistemi<\/p>\n<p>Esistono numerosi strumenti per il testing della sicurezza. Questa volta ti consiglio uno strumento gratuito per la scansione del sistema.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/owasp.org\/www-project-zap\/\">OWASP ZAP<\/a><\/noindex> \u00e8 uno strumento per la scansione delle applicazioni web per verificarne la conformit\u00e0 agli standard di sicurezza.<\/p>\n<p>Mettiamo tutto insieme.<\/p>\n<h3>Prepariamo il rapporto<\/h3>\n<p>\nInizia il tuo rapporto con i dati raccolti dal cliente. Descrivi gli obiettivi del progetto, le limitazioni e i requisiti non funzionali. Dopo ci\u00f2, dovresti menzionare tutti i dati di input, codice sorgente, documentazione, infrastruttura.<\/p>\n<p>Passo successivo. Indica tutti i problemi che hai trovato manualmente o con strumenti automatizzati. Inserisci i grandi rapporti generati automaticamente alla fine nella sezione appendice. Qui dovrebbero essere prove brevi e concise dei problemi trovati.<br \/>\nPrioritizza i problemi trovati su una scala di errore, avviso, informazione. Puoi scegliere la tua scala, ma questa \u00e8 comunemente accettata.<\/p>\n<p>Come un vero architetto, sei tenuto a fornire raccomandazioni per risolvere i problemi riscontrati. Descrivi i miglioramenti e il valore per l'azienda che il cliente otterr\u00e0. Come dimostrare il valore per l'azienda di <noindex><a rel=\"nofollow\" href=\"http:\/\/alexandvira.com\/architecture\/architecture-refactoring-and-design-refactoring-how-to-sell-it-client\/\">refactoring dell'architettura<\/a><\/noindex> discusso in precedenza.<\/p>\n<p>Prepara un roadmap con piccole iterazioni. Ogni iterazione dovrebbe contenere il tempo di esecuzione, la descrizione, il numero di risorse necessarie per il miglioramento, il valore tecnico e il valore per l'azienda.<\/p>\n<h3>Completiamo la valutazione dell'architettura e forniamo al cliente la relazione<\/h3>\n<p>\nNon inviare mai semplicemente la relazione via email. Potrebbero non leggerla affatto o leggerla e non capirla senza una spiegazione adeguata. In breve, la comunicazione diretta aiuta a risolvere i malintesi tra le persone. Dovresti organizzare un incontro con il cliente e parlare dei problemi riscontrati, ponendo l'accento su quelli pi\u00f9 significativi. \u00c8 importante far notare al cliente problemi di cui potrebbe non essere nemmeno a conoscenza, come problemi di sicurezza, e spiegare come possano influire sul business. Mostra il tuo roadmap con i miglioramenti e discuti le diverse opzioni, pi\u00f9 adatte al cliente. Questo pu\u00f2 riguardare tempo, risorse e carico di lavoro.<\/p>\n<p>Come sintesi del tuo incontro, invia al cliente il tuo rapporto.<\/p>\n<h2>In conclusione<\/h2>\n<p>\nLa valutazione dell'architettura \u00e8 un processo complesso. Per condurre una valutazione adeguata, \u00e8 necessario avere sufficiente esperienza e conoscenze.<\/p>\n<p>\u00c8 davvero possibile fornire al cliente risultati utili per lui e per la sua attivit\u00e0 in soli sette giorni. Anche se lo fai da solo.<\/p>\n<p>Secondo la mia esperienza, molti miglioramenti sono stati interrotti a met\u00e0, e a volte non sono nemmeno stati avviati. Coloro che hanno scelto il giusto equilibrio e hanno implementato solo alcune delle migliorie pi\u00f9 utili per l'azienda con il minor spreco di risorse, hanno significativamente migliorato la qualit\u00e0 del loro prodotto. Chi non ha intrapreso alcuna azione, dopo un paio d'anni, potrebbe dover chiudere il progetto.<\/p>\n<p>Il tuo obiettivo \u00e8 mostrare al cliente i massimi miglioramenti al prezzo minimo.<\/p>\n<p>Altri articoli della sezione <noindex><a rel=\"nofollow\" href=\"http:\/\/alexandvira.com\/category\/architecture\/\">architettura<\/a><\/noindex> puoi leggere nei tuoi momenti di svago.<\/p>\n<p>Ti auguro codice pulito e buone soluzioni architettoniche.<\/p>\n<p>Il nostro gruppo Facebook \u00e8 \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/groups\/206130407152602\/\">Architettura e Sviluppo Software<\/a><\/noindex>.<br \/>\n<br \/>Fonte: <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\/it\/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=\"it_IT\" \/>\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\/it\/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\udd47Come leggere e correggere 100.000 righe di codice in una settimana | ProHoster","description":"All'inizio \u00e8 sempre difficile orientarsi in.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/kak-prochest-i-ispravit-100000-strok-koda-za-nedelyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/74955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=74955"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/74955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/74956"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=74955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=74955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=74955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}