{"id":981,"date":"2015-03-20T15:14:53","date_gmt":"2015-03-20T13:14:53","guid":{"rendered":"http:\/\/facemsoft.ro\/?p=981"},"modified":"2020-08-17T17:47:43","modified_gmt":"2020-08-17T14:47:43","slug":"clean-code-episodul-1","status":"publish","type":"post","link":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/","title":{"rendered":"Clean Code &#8211; Episodul 1"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"981\" class=\"elementor elementor-981\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-oeo96mf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"oeo96mf\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-g771qkq\" data-id=\"g771qkq\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-pe4d6nm elementor-widget elementor-widget-video\" data-id=\"pe4d6nm\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;show_image_overlay&quot;:&quot;yes&quot;,&quot;image_overlay&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/facemsoft.ro\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/CleanCode1.png&quot;,&quot;id&quot;:982,&quot;size&quot;:&quot;&quot;},&quot;lightbox&quot;:&quot;yes&quot;,&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=a_YNmvOdIA0&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-lightbox\">\n\t\t\t\t\t\t\t<div class=\"elementor-custom-embed-image-overlay\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox=\"{&quot;type&quot;:&quot;video&quot;,&quot;videoType&quot;:&quot;youtube&quot;,&quot;url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/embed\\\/a_YNmvOdIA0?feature=oembed&amp;start&amp;end&amp;wmode=opaque&amp;loop=0&amp;controls=1&amp;mute=0&amp;rel=0&amp;cc_load_policy=0&quot;,&quot;autoplay&quot;:&quot;&quot;,&quot;modalOptions&quot;:{&quot;id&quot;:&quot;elementor-lightbox-pe4d6nm&quot;,&quot;entranceAnimation&quot;:&quot;&quot;,&quot;entranceAnimation_tablet&quot;:&quot;&quot;,&quot;entranceAnimation_mobile&quot;:&quot;&quot;,&quot;videoAspectRatio&quot;:&quot;169&quot;}}\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJ0eXBlIjoidmlkZW8iLCJ2aWRlb1R5cGUiOiJ5b3V0dWJlIiwidXJsIjoiaHR0cHM6XC9cL3d3dy55b3V0dWJlLmNvbVwvZW1iZWRcL2FfWU5tdk9kSUEwP2ZlYXR1cmU9b2VtYmVkJnN0YXJ0JmVuZCZ3bW9kZT1vcGFxdWUmbG9vcD0wJmNvbnRyb2xzPTEmbXV0ZT0wJnJlbD0wJmNjX2xvYWRfcG9saWN5PTAiLCJhdXRvcGxheSI6IiIsIm1vZGFsT3B0aW9ucyI6eyJpZCI6ImVsZW1lbnRvci1saWdodGJveC1wZTRkNm5tIiwiZW50cmFuY2VBbmltYXRpb24iOiIiLCJlbnRyYW5jZUFuaW1hdGlvbl90YWJsZXQiOiIiLCJlbnRyYW5jZUFuaW1hdGlvbl9tb2JpbGUiOiIiLCJ2aWRlb0FzcGVjdFJhdGlvIjoiMTY5In19\">\n\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"755\" height=\"510\" src=\"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2015\/03\/CleanCode1.png?fit=755%2C510&amp;ssl=1\" class=\"attachment-full size-full wp-image-982\" alt=\"Clean Code curs 1\" srcset=\"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2015\/03\/CleanCode1.png?w=755&amp;ssl=1 755w, https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2015\/03\/CleanCode1.png?resize=300%2C203&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-custom-embed-play\" role=\"button\" aria-label=\"Play Video\" tabindex=\"0\" data-no-translation-aria-label=\"\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-play\"><\/i>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a14d82e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a14d82e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c42b051\" data-id=\"c42b051\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4f4faef elementor-widget elementor-widget-spacer\" data-id=\"4f4faef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ccb421 elementor-widget elementor-widget-heading\" data-id=\"6ccb421\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Transcriere<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fca5525 elementor-widget elementor-widget-text-editor\" data-id=\"fca5525\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3><span>A\u021bi realizat vreodat\u0103 ca \u0219i programator c\u0103 v\u0103 petrece\u021bi mai mult timp citind cod dec\u00e2t scriind? Dac\u0103 r\u0103spunsul este da, atunci a\u021bi nimerit unde trebuie. Salut! Numele meu e Bogdan Iancu \u0219i ast\u0103zi a\u0219 vrea s\u0103 vorbim despre Clean Code sau varianta mai pe lung: de ce e mai important felul \u00een care scriem cod, dec\u00e2t ceea ce scriem efectiv. Ca s\u0103 trec repede \u00een agenda despre ce vom discuta ast\u0103zi: A\u0219 vrea la \u00eenceput s\u0103 vorbim despre motiva\u021bia acestui \u201ecod curat\u201d. De ce Clean Code? Despre ni\u0219te principii sau prin\u021bipuri cum ar spune Caragiale, c\u0103 nu e a\u0219a, o bucat\u0103 de cod f\u0103r\u0103 prin\u021bipuri care va s\u0103 zic\u0103 c\u0103 nu le are. Ni\u0219te conven\u021bii de nume, pu\u021bin\u0103 practic\u0103 legat\u0103 de clean code, adic\u0103 clean code aplicat \u00een diverse elemente de limbaj de programare, la sf\u00e2r\u0219it un scurt dic\u021bionar, ni\u0219te instrumente ce ne ajut\u0103 s\u0103 scriem cod curat \u0219i un bonus.<\/span><\/h3><h3><span>De ce Clean Code? Cum spuneam \u0219i la \u00eenceput, programatorii \u00ee\u0219i petrec \u00een medie mai mult timp citind cod dec\u00e2t scriind. La \u00eenceput nu v-am amintit procentele \u00eens\u0103 ele sunt destul de mari, sau destul de dispropor\u021bionate. Programatorii, \u00een medie, 90% din timp citesc cod \u0219i doar 10% din timp scriu cod. \u0218i a\u0219adar putem spune c\u0103 programarea nu const\u0103 \u00een a spune computerului ce s\u0103 fac\u0103 \u0219i de fapt const\u0103 \u00een a spune altui om ce vrem ca acel computer s\u0103 fac\u0103. Din p\u0103cate, \u0219i sunt sigur c\u0103 a\u021bi realizat \u0219i voi asta, acel om suntem c\u00e2teodat\u0103 chiar noi, o variant\u0103 din viitor a noastr\u0103, un \u201efuture us\u201d. \u0218i dac\u0103 st\u0103m bine s\u0103 ne g\u00e2ndim p\u00e2n\u0103 la urm\u0103 suntem autori. La fel cum scriitorii folosesc c\u0103r\u021bi, paragrafe, capitole \u0219i texte, text efectiv, la fel \u0219i noi folosim programe, clase, metode, cod \u00een metode, suntem pl\u0103ti\u021bi pentru ceea ce scriem, a\u0219adar p\u00e2n\u0103 la urm\u0103 suntem ni\u0219te autori. \u0218i dac\u0103 alegem s\u0103 nu scriem cod (clean), vom realiza de fapt c\u0103 am fost mai lene\u0219i dec\u00e2t dac\u0103 am fi scris codul corect de la \u00eenceput. De ce? P\u0103i dac\u0103 suntem lene\u0219i de la \u00eenceput \u0219i nu scriem codul clean sau curat, vom sesiza c\u0103 apoi, chiar dac\u0103 atunci ne ia foarte pu\u021bin timp s\u0103 scriem, apoi va dura mult mai mult s\u0103 scriem acel cod, s\u0103-l modific\u0103m, dec\u00e2t dac\u0103 atunci c\u00e2nd l-am scris prima dat\u0103 am fi alocat pu\u021bin mai mult timp scriindu-l corect sau curat. \u0218i nu \u00een ultimul r\u00e2nd, s\u0103 nu ajungem la serviciu un substantiv.&nbsp;<\/span><\/h3><h3><span>Nu \u0219tiu dac\u0103 v-a\u021bi lovit de chestia asta, dar uite s\u0103 spunem c\u0103 eu a\u0219 fi colegul cunoscut pentru modul \u00een care scrie cod, adic\u0103 cu picioarele. S\u0103 spunem c\u0103 ceilal\u021bi colegi vor s\u0103 compare un cod scris de un alt coleg cu un cod scris de mine, adic\u0103 tot cu picioarele, ar putea spune despre acel cod c\u0103 e un \u201ebogd\u0103nism\u201d. Dac\u0103 eu m\u0103 numesc Bogdan, a scris cod la fel ca mine, am ajuns un substantiv. Nu am vrea s\u0103 ajungem \u00een situa\u021bia asta, nu? A\u0219a c\u0103 aplic\u0103m ni\u0219te principii \u0219i acestea sun\u0103 oarecum ciudat, adic\u0103 au ni\u0219te nume care nu duc cu nimic la, nu amintesc \u00een nici un fel de principii legate de programare, dar o s\u0103 vedem ce \u00eenseamn\u0103 fiecare. Sunt doar ni\u0219te acronime ce ne permit s\u0103 le re\u021binem u\u0219or. Acestea sunt DRY, KISS, YAGNI \u0219i SOLID.<\/span><\/h3><h3><span>\u0218i p\u00e2n\u0103 la a vedea ce \u00eenseamn\u0103 fiecare a\u0219 vrea s\u0103 v\u0103 mai amintesc ceva. C\u00e2nd citim cod creierul nostru joac\u0103 rol de compilator. Adic\u0103 trebuie s\u0103 parcurg codul respectiv \u0219i s\u0103 v\u0103d ce face el efectiv ca s\u0103 \u00ee\u021bi po\u021bi da seama unde pun o linie \u00een plus \u0219i ce scriu mai departe. Conform studiilor, oamenii pot re\u021bine, s-a dovedit, c\u0103 oamenii pot re\u021bine simultan 7 elemente. Plus minus dou\u0103, asta de la persoan\u0103 la persoan\u0103, \u00een memorie. Asta \u00eenseamn\u0103 c\u0103 orice func\u021bie care are mai mult de \u0219apte parametri, mai mult de \u0219apte variabile locale sau mai mult de \u0219apte niveluri de indentare, o s\u0103 vedem imediat ce \u00eenseamn\u0103 fiecare, e destul de greu de re\u021binut sau destul de greu de parcurs de un om. S\u0103 spunem c\u0103 principiul nostru e de a scrie cod pentru calculator pe care s\u0103 \u00eel \u00een\u021beleag\u0103 ceilal\u021bi oameni, nu cod pe care s\u0103 \u00eel \u00een\u021beleag\u0103 calculatorul. Deci ave\u021bi mare aten\u021bie asupra acestei cifre de 7 atunci c\u00e2nd scrie\u021bi cod.<\/span><\/h3><h3><span>Apoi mai exist\u0103 conceptul de \u201erubber duck programming\u201d de care nu \u0219tiu dac\u0103 a\u021bi auzit. Dac\u0103 nu a\u021bi auzit, el e destul de simplu \u0219i funny (amuzant) \u00een acela\u0219i timp. Presupune explicarea codului scris unei r\u0103\u021bu\u0219te de cauciuc. Deci avem o r\u0103\u021bu\u0219c\u0103 de cauciuc pe birou \u0219i \u00eei explic\u0103m r\u0103\u021bu\u0219tei ce am scris pentru fiecare chestie. Pentru fiecare linie de cod. \u0218i verbaliz\u00e2nd acel cod, pe l\u00e2ng\u0103 faptul c\u0103 putem face debugging \u00een acest fel, adic\u0103 depanarea codului, pentru c\u0103 spun\u00e2nd cu voce tare, sau chiar \u0219i \u00een g\u00e2nd, dar vorbind cu altcineva la persoana a treia, sau la persoana a doua, dac\u0103 ne adres\u0103m \u00een mod direct, \u0219i verbaliz\u00e2nd acel cod, realiz\u0103m ce erori am f\u0103cut \u0219i ce putem modifica. La fel \u0219i dup\u0103 ce termin\u0103m de scris codul, ar fi ok s\u0103 i-l explic\u0103m r\u0103\u021bu\u0219tei, ca s\u0103 ne d\u0103m seama dac\u0103 ar putea fi cumva modificat astfel \u00eenc\u00e2t s\u0103 fie mai u\u0219or de \u00een\u021beles atunci c\u00e2nd va fi citit de un alt programator.<\/span><\/h3><h3><span>Ok. \u0218i hai s\u0103 trecem rapid peste aceste principii care sunau a\u0219a oarecum ciudat. DRY &#8211; nu se refer\u0103 la un de\u0219ert sau la altceva uscat, ci este o prescurtare de la Don\u2019t Repeat Yourself, adic\u0103 atunci c\u00e2nd scriem cod nu e loc de copy-paste. De fiecare dat\u0103 c\u00e2nd scriem cod \u0219i g\u0103sim \u00een func\u021biile noastre un lucru scris de mai multe ori sau sim\u021bim nevoia s\u0103 lu\u0103m cu copy-paste un lucru \u0219i s\u0103 \u00eel punem \u00een alt\u0103 parte, de fiecare dat\u0103, e loc de o nou\u0103 func\u021bie sau de o nou\u0103 metod\u0103. Deci acel cod va trebui scris \u00eentr-o metod\u0103 separat\u0103 pe care s\u0103 o apel\u0103m de fiecare dat\u0103 c\u00e2nd ar trebui de fapt s\u0103 d\u0103m paste. \u0218i de ce facem lucrul \u0103sta? P\u0103i \u00een primul r\u00e2nd din punct de vedere al mentenan\u021bei, dac\u0103 \u00een acel cod pe care noi \u00eel luam cu copy-paste va trebui s\u0103 modific\u0103m ceva, dac\u0103 noi am dat copy-paste \u0219i l-am pus de 7 ori de exemplu, va trebui s\u0103 modific\u0103m de 7 ori, chestia respectiv\u0103. Cu riscul de a nu g\u0103si un loc \u00een care am dat paste \u0219i s\u0103 ne trezim cu un bug pe care nu avem cum s\u0103 \u00eel explic\u0103m. Fiind \u00eentr-un singur loc, e foarte u\u0219or s\u0103 fac apelul acelei metode sau s\u0103 fac modificarea doar \u00een acel loc.&nbsp;<\/span>\u0218i legat de apel, e mult ai u\u0219or s\u0103 apelez o metod\u0103 folosind \u0219i intellisense-ul din multe IDE-uri, adic\u0103 medii de dezvoltare, dec\u00e2t s\u0103 dau paste. Adic\u0103 e ceva de genul: scriu primele litere, control+spa\u021biu sau care e shortcut-ul (scurt\u0103tura) din mediul respectiv pentru autocompletarea codului surs\u0103.<\/h3><h3>Ok, urm\u0103torul principiu. KISS &#8211; provine de la Keep It Simple and Stupid, deci s\u0103 men\u021binem codul simplu \u0219i stupid, sau stupid de simplu, mai bine spus. \u0102sta e aplicabil ori de c\u00e2te ori vrem ca o metod\u0103 s\u0103 fac\u0103 de toate. Deci nu e ok ca o metod\u0103 s\u0103 fac\u0103 prelucr\u0103ri complexe, gen: s\u0103 verifice utilizatorul \u0219i s\u0103 trimit\u0103 mail. Nu, avem dou\u0103 metode separate, una verific\u0103 utilizatori, una trimite mail. E oarecum similar \u0219i cu Single Resposability, pe care o s\u0103 \u00eel vedem imediat, ce presupune ca o metod\u0103 sau o clas\u0103 s\u0103 fac\u0103 un singur lucru, e asem\u0103n\u0103tor oarecum, se refer\u0103 oarecum \u0219i la urm\u0103torul, \u0219i anume la YAGNI.<\/h3><h3>YAGNI vine de la You Ain\u2019t Gonna Need It (N-o s\u0103 ai nevoie de el &#8211; sau de ea dac\u0103 e func\u021bie) \u0219i anume, nu trebuie s\u0103 scrii niciodat\u0103 metode ce nu sunt necesare \u00eenc\u0103. Adic\u0103 nu trebuie s\u0103 g\u00e2ndim aprioric pentru cei ce ne vor citi metodele, s\u0103 spunem \u201eaaa, sigur o s\u0103 aib\u0103 nevoie de asta, hai s\u0103 o scriu aici\u201d. Nu, dac\u0103 nu e cerut\u0103 \u00een specifica\u021bii \u0219i eu nu am nevoie s\u0103 apelez, nu apelez. E principiul \u201eCe po\u021bi face azi las\u0103 pe m\u00e2ine c\u0103 poate m\u00e2ine nu mai trebuie\u201d. La fel se \u00eent\u00e2mpl\u0103 \u0219i aici. Poate m\u00e2ine nu vor fi necesare, poate nu vor fi necesare niciodat\u0103. De ce s\u0103 depun efort acum ca s\u0103 scriu ni\u0219te func\u021bii pe care poate cineva le va folosi. Dac\u0103 are nevoie s\u0103 \u0219i le scrie, e destul de simplu. \u0218i asta este valabil \u0219i pentru noi, avem nevoie de ceva, ne scriem, nu cerem altcuiva s\u0103 ne scrie o func\u021bie. Spuneam c\u0103 e oarecum derivat din KISS, da. Sau sunt no\u021biuni care coincid pe alocuri. \u0218i ajungem la cel mai complicat dintre ele \u0219i anume SOLID. Acesta are la r\u00e2ndul lui, SOLID e format din alte 5 principii: S-ul provine de la Single Responsability, O-ul de la Open-Closed, L-ul de Liskov Substituion, I-ul de la Interface Segregation \u0219i D-ul de la Dependency Inversion. \u0218i hai s\u0103 le luam pe fiecare \u00een parte (\u00een episodul urm\u0103tor).<\/h3>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Transcriere A\u021bi realizat vreodat\u0103 ca \u0219i programator c\u0103 v\u0103 petrece\u021bi mai mult timp citind cod dec\u00e2t scriind? Dac\u0103 r\u0103spunsul este da, atunci a\u021bi nimerit unde trebuie. Salut! Numele meu e Bogdan Iancu \u0219i ast\u0103zi a\u0219 vrea s\u0103 vorbim despre Clean Code sau varianta mai pe lung: de ce e mai [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3084,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[158,172],"tags":[159,162,163,161,160],"class_list":["post-981","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-clean-code","category-tutoriale-video","tag-clean-code","tag-cod-bine-scris","tag-cod-corect","tag-programare","tag-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Clean Code - Episodul 1 - Facem Soft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Clean Code - Episodul 1 - Facem Soft\" \/>\n<meta property=\"og:description\" content=\"Transcriere A\u021bi realizat vreodat\u0103 ca \u0219i programator c\u0103 v\u0103 petrece\u021bi mai mult timp citind cod dec\u00e2t scriind? Dac\u0103 r\u0103spunsul este da, atunci a\u021bi nimerit unde trebuie. Salut! Numele meu e Bogdan Iancu \u0219i ast\u0103zi a\u0219 vrea s\u0103 vorbim despre Clean Code sau varianta mai pe lung: de ce e mai [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Facem Soft\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/facemsoft\" \/>\n<meta property=\"article:published_time\" content=\"2015-03-20T13:14:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-08-17T14:47:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2017\/09\/clean_code.png?fit=1200%2C589&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"589\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Bogdan Iancu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bogdan Iancu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/\"},\"author\":{\"name\":\"Bogdan Iancu\",\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/#\\\/schema\\\/person\\\/f2cca604e1acf812e3f40c8cc8a82190\"},\"headline\":\"Clean Code &#8211; Episodul 1\",\"datePublished\":\"2015-03-20T13:14:53+00:00\",\"dateModified\":\"2020-08-17T14:47:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/\"},\"wordCount\":1656,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/facemsoft.ro\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/clean_code.png?fit=1200%2C589&ssl=1\",\"keywords\":[\"clean code\",\"cod bine scris\",\"cod corect\",\"programare\",\"programming\"],\"articleSection\":[\"Clean Code\",\"Tutoriale video\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/\",\"url\":\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/\",\"name\":\"Clean Code - Episodul 1 - Facem Soft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/facemsoft.ro\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/clean_code.png?fit=1200%2C589&ssl=1\",\"datePublished\":\"2015-03-20T13:14:53+00:00\",\"dateModified\":\"2020-08-17T14:47:43+00:00\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/en\\\/tutoriale-video\\\/clean-code\\\/clean-code-episodul-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/facemsoft.ro\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/clean_code.png?fit=1200%2C589&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/facemsoft.ro\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/clean_code.png?fit=1200%2C589&ssl=1\",\"width\":\"1200\",\"height\":\"589\",\"caption\":\"Clean Code\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/#website\",\"url\":\"https:\\\/\\\/facemsoft.ro\\\/\",\"name\":\"Facem Soft\",\"description\":\"Cursuri IT livrate din pasiune pentru programare\",\"publisher\":{\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/facemsoft.ro\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/#organization\",\"name\":\"S.C. Facem Soft - Training & Consulting S.R.L.\",\"url\":\"https:\\\/\\\/facemsoft.ro\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/facemsoft.ro\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/logo_site_v3.png?fit=3333%2C2500&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/facemsoft.ro\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/logo_site_v3.png?fit=3333%2C2500&ssl=1\",\"width\":3333,\"height\":2500,\"caption\":\"S.C. Facem Soft - Training & Consulting S.R.L.\"},\"image\":{\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/facemsoft\",\"https:\\\/\\\/www.instagram.com\\\/bogdaniancu88\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/bogdaniancu88\\\/\",\"https:\\\/\\\/www.youtube.com\\\/FacemSoft\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/#\\\/schema\\\/person\\\/f2cca604e1acf812e3f40c8cc8a82190\",\"name\":\"Bogdan Iancu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/facemsoft.ro\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/d91\\\/d916ae63d2921531d15dbaa2880e93bfx96.jpg\",\"url\":\"https:\\\/\\\/facemsoft.ro\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/d91\\\/d916ae63d2921531d15dbaa2880e93bfx96.jpg\",\"contentUrl\":\"https:\\\/\\\/facemsoft.ro\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/d91\\\/d916ae63d2921531d15dbaa2880e93bfx96.jpg\",\"caption\":\"Bogdan Iancu\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Clean Code - Episodul 1 - Facem Soft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/","og_locale":"en_GB","og_type":"article","og_title":"Clean Code - Episodul 1 - Facem Soft","og_description":"Transcriere A\u021bi realizat vreodat\u0103 ca \u0219i programator c\u0103 v\u0103 petrece\u021bi mai mult timp citind cod dec\u00e2t scriind? Dac\u0103 r\u0103spunsul este da, atunci a\u021bi nimerit unde trebuie. Salut! Numele meu e Bogdan Iancu \u0219i ast\u0103zi a\u0219 vrea s\u0103 vorbim despre Clean Code sau varianta mai pe lung: de ce e mai [&hellip;]","og_url":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/","og_site_name":"Facem Soft","article_publisher":"https:\/\/www.facebook.com\/facemsoft","article_published_time":"2015-03-20T13:14:53+00:00","article_modified_time":"2020-08-17T14:47:43+00:00","og_image":[{"width":1200,"height":589,"url":"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2017\/09\/clean_code.png?fit=1200%2C589&ssl=1","type":"image\/png"}],"author":"Bogdan Iancu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Bogdan Iancu","Estimated reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/#article","isPartOf":{"@id":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/"},"author":{"name":"Bogdan Iancu","@id":"https:\/\/facemsoft.ro\/#\/schema\/person\/f2cca604e1acf812e3f40c8cc8a82190"},"headline":"Clean Code &#8211; Episodul 1","datePublished":"2015-03-20T13:14:53+00:00","dateModified":"2020-08-17T14:47:43+00:00","mainEntityOfPage":{"@id":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/"},"wordCount":1656,"commentCount":0,"publisher":{"@id":"https:\/\/facemsoft.ro\/#organization"},"image":{"@id":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2017\/09\/clean_code.png?fit=1200%2C589&ssl=1","keywords":["clean code","cod bine scris","cod corect","programare","programming"],"articleSection":["Clean Code","Tutoriale video"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/","url":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/","name":"Clean Code - Episodul 1 - Facem Soft","isPartOf":{"@id":"https:\/\/facemsoft.ro\/#website"},"primaryImageOfPage":{"@id":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/#primaryimage"},"image":{"@id":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2017\/09\/clean_code.png?fit=1200%2C589&ssl=1","datePublished":"2015-03-20T13:14:53+00:00","dateModified":"2020-08-17T14:47:43+00:00","inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/facemsoft.ro\/en\/tutoriale-video\/clean-code\/clean-code-episodul-1\/#primaryimage","url":"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2017\/09\/clean_code.png?fit=1200%2C589&ssl=1","contentUrl":"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2017\/09\/clean_code.png?fit=1200%2C589&ssl=1","width":"1200","height":"589","caption":"Clean Code"},{"@type":"WebSite","@id":"https:\/\/facemsoft.ro\/#website","url":"https:\/\/facemsoft.ro\/","name":"Facem Soft","description":"Cursuri IT livrate din pasiune pentru programare","publisher":{"@id":"https:\/\/facemsoft.ro\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/facemsoft.ro\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/facemsoft.ro\/#organization","name":"S.C. Facem Soft - Training & Consulting S.R.L.","url":"https:\/\/facemsoft.ro\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/facemsoft.ro\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2017\/09\/logo_site_v3.png?fit=3333%2C2500&ssl=1","contentUrl":"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2017\/09\/logo_site_v3.png?fit=3333%2C2500&ssl=1","width":3333,"height":2500,"caption":"S.C. Facem Soft - Training & Consulting S.R.L."},"image":{"@id":"https:\/\/facemsoft.ro\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/facemsoft","https:\/\/www.instagram.com\/bogdaniancu88\/","https:\/\/www.linkedin.com\/in\/bogdaniancu88\/","https:\/\/www.youtube.com\/FacemSoft"]},{"@type":"Person","@id":"https:\/\/facemsoft.ro\/#\/schema\/person\/f2cca604e1acf812e3f40c8cc8a82190","name":"Bogdan Iancu","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/facemsoft.ro\/wp-content\/wphb-cache\/gravatar\/d91\/d916ae63d2921531d15dbaa2880e93bfx96.jpg","url":"https:\/\/facemsoft.ro\/wp-content\/wphb-cache\/gravatar\/d91\/d916ae63d2921531d15dbaa2880e93bfx96.jpg","contentUrl":"https:\/\/facemsoft.ro\/wp-content\/wphb-cache\/gravatar\/d91\/d916ae63d2921531d15dbaa2880e93bfx96.jpg","caption":"Bogdan Iancu"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/facemsoft.ro\/wp-content\/uploads\/2017\/09\/clean_code.png?fit=1200%2C589&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p81Qbo-fP","_links":{"self":[{"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/posts\/981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/comments?post=981"}],"version-history":[{"count":0,"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/posts\/981\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/media\/3084"}],"wp:attachment":[{"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/media?parent=981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/categories?post=981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/facemsoft.ro\/en\/wp-json\/wp\/v2\/tags?post=981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}