{"id":37273,"date":"2019-10-31T22:16:42","date_gmt":"2019-10-31T19:16:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/korotko-o-glavnom-clean-architecture-robert-c-martin\/"},"modified":"2019-10-31T22:16:42","modified_gmt":"2019-10-31T19:16:42","slug":"korotko-o-glavnom-clean-architecture-robert-c-martin","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin","title":{"rendered":"Nj\u00eb p\u00ebrmbledhje e r\u00ebnd\u00ebsishme: Arkitektura E Past\u00ebr, Robert C. Martin","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ky do t\u00eb jet\u00eb nj\u00eb tregim mbi p\u00ebrshtypjen e librit, si dhe do t\u00eb shqyrtohen disa koncepcione dhe njohuri q\u00eb, fal\u00eb k\u00ebtij libri, jan\u00eb m\u00ebsuar.<\/p>\n<h3>Arkitektura<\/h3>\n<p>\nA mund t'i jepni nj\u00eb p\u00ebrgjigje t\u00eb qart\u00eb pyetjes, \u00e7far\u00eb \u00ebsht\u00eb arkitektura? \u00c7far\u00eb \u00ebsht\u00eb arkitektura n\u00eb kontekstin e programimit dhe dizajnit? Cila \u00ebsht\u00eb roli i saj? Ka shum\u00eb paqart\u00ebsi n\u00eb k\u00ebt\u00eb term. Duket se gjith\u00e7ka \u00ebsht\u00eb e qart\u00eb, por gjithsesi \u00ebsht\u00eb disi abstrakte dhe pa sakt\u00ebsi. Martin mendon, dhe un\u00eb e pajtohem me t\u00eb, se nj\u00eb aplikacion ka dy p\u00ebrb\u00ebr\u00ebs: <\/p>\n<ol>\n<li>Sjellja (behavior) \u2014 funksionet dhe detyrat q\u00eb programi (komponenti, sh\u00ebrbimi) i kryen.<\/li>\n<li>Arkitektura \u2014 ky term kryesisht ka t\u00eb b\u00ebj\u00eb me ndryshimin e aplikacionit.<\/li>\n<\/ol>\n<p>\nPor edhe n\u00ebse aplikacioni kryen shum\u00eb mir\u00eb detyr\u00ebn q\u00eb duhet, kjo nuk n\u00ebnkupton aspak q\u00eb ai ka nj\u00eb arkitektur\u00eb t\u00eb mir\u00eb. Arkitektura \u2014 nuk \u00ebsht\u00eb p\u00ebr sjelljen e aplikacionit. Arkitektura \u2014 \u00ebsht\u00eb p\u00ebr leht\u00ebsin\u00eb e ndryshimit, arkitektura \u2014 \u00ebsht\u00eb p\u00ebr leht\u00ebsin\u00eb e shp\u00ebrndarjes, arkitektura \u2014 \u00ebsht\u00eb p\u00ebr pavar\u00ebsin\u00eb e zhvillimit. Arkitektura \u2014 \u00ebsht\u00eb p\u00ebr shpejt\u00ebsin\u00eb me t\u00eb cil\u00ebn e kupton nj\u00eb person i ri n\u00eb ekip.<\/p>\n<p>Dhe ja se si t\u00eb nd\u00ebrtojm\u00eb k\u00ebt\u00eb arkitektur\u00eb, si t\u00eb eliminojm\u00eb dhimbjen e kok\u00ebs me ndryshimin e vog\u00ebl t\u00eb k\u00ebrkesave nga PM ose nga pal\u00ebt e interesuara: p\u00ebr k\u00ebt\u00eb do t\u00eb flas\u00eb libri.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>P\u00ebr autor\u00ebt<\/h3>\n<p>\nPara se t\u00eb flas\u00eb p\u00ebr k\u00ebt\u00eb lib\u00ebr, d\u00ebshiroj t\u00eb them pak p\u00ebr veten.<br \/>\nAktualisht jam nj\u00eb Zhvillues Strong Junior, i specializuar n\u00eb zhvillimin e sh\u00ebrbimeve p\u00ebrmes ASP .NET CORE.<\/p>\n<p>Kam punuar p\u00ebr nj\u00eb vit n\u00eb nj\u00eb \"galer\u00eb\", dhe duket se po i p\u00ebrballoj pak nga pak.<\/p>\n<p>K\u00ebt\u00eb lib\u00ebr e kam lexuar tashm\u00eb 2 her\u00eb dhe rekomandoj t\u00eb lexojm\u00eb t\u00eb gjith\u00ebve:<\/p>\n<ul>\n<li>zhvilluesve t\u00eb sistemeve embeded;<\/li>\n<li>front-end developer t\u00eb;<\/li>\n<li>back-end developer t\u00eb;<\/li>\n<li>edhe devops.<\/li>\n<\/ul>\n<p>\nP\u00ebrfundimisht, p\u00ebr t\u00eb gjith\u00eb ata q\u00eb jan\u00eb ndonj\u00ebher\u00eb t\u00eb lidhur me zhvillimin e softuerit, n\u00ebnkuptoj zhvillimin direkt t\u00eb ndryshme atje. Sipas meje, nuk p\u00ebrfshijm\u00eb Sales dhe PM k\u00ebtu (megjith\u00ebse do t\u00eb ishte gjithashtu e dobishme t\u00eb dihej se pse nj\u00eb dev shpesh shpenzon dy her\u00eb m\u00eb shum\u00eb koh\u00eb p\u00ebr nj\u00eb detyr\u00eb), rekomandoj t\u00eb lexohet ky lib\u00ebr.<br \/>\nDhe tani do t\u00eb p\u00ebrpiqem t\u00eb argumentoj pse mendoj k\u00ebshtu.<\/p>\n<p>Pak nj\u00eb informacion t\u00eb vog\u00ebl rreth autorit t\u00eb k\u00ebsaj libri (sepse p\u00ebr mua autoriteti i atij q\u00eb shkruan ka shum\u00eb r\u00ebnd\u00ebsi). Mendoj se do t\u00eb m\u00eb kuptoni, ndon\u00ebse kjo nuk \u00ebsht\u00eb gjithmon\u00eb e drejt\u00eb, por n\u00ebse ju flet nj\u00eb njeri me autoritet n\u00eb fush\u00ebn e tij \u2014 keni nj\u00eb besim shum\u00eb m\u00eb t\u00eb madh te ajo q\u00eb thot\u00eb ai. P\u00ebr shembull, mendoj se do t\u00eb besoni m\u00eb shum\u00eb n\u00eb diagnoz\u00ebn q\u00eb ju jep nj\u00eb mjek, sesa n\u00eb at\u00eb t\u00eb ndonj\u00eb njeriu nga turma (q\u00eb ka k\u00ebrkuar simptomat n\u00eb internet).<\/p>\n<p>Robert Martin \u2014 i njohur gjithashtu si Uncle Bob (djedhi Bob) \u2014 punon n\u00eb fush\u00ebn e programimit, p\u00ebrkat\u00ebsisht n\u00eb sisteme t\u00eb ndryshme (nga sh\u00ebrbimet web n\u00eb sistemet e integruara), q\u00eb nga viti 1970. Ai \u00ebsht\u00eb nj\u00eb konsultant dhe arkitekt teknik, ka shkruar p\u00ebr revista t\u00eb ndryshme teknike, \u00ebsht\u00eb nj\u00eb programues shum\u00eb i p\u00ebrvojsh\u00ebm, dhe nj\u00eb person q\u00eb ka luajtur nj\u00eb nga rolesht kryesore n\u00eb krijimin e principeve t\u00eb njohura SOLID (mund t\u00eb thuhet se \u00ebsht\u00eb krijuesi). Gjithashtu, do t\u00eb doja t\u00eb shtoja se k\u00ebt\u00eb lib\u00ebr m\u00eb rekomandoi lideri im i ekipit, me mbi 15 vite p\u00ebrvoj\u00eb n\u00eb fush\u00eb.<\/p>\n<h2>Rreth librit<\/h2>\n<p><\/p>\n<h3>Var\u00ebsit\u00eb<\/h3>\n<p>\nPara se t\u00eb lexoja librin, kam lexuar disa artikuj n\u00eb t\u00eb nj\u00ebjt\u00ebn platform\u00eb, ku shfaqej fjala \u201cvar\u00ebsi\u201d. \u00c7far\u00eb do thot\u00eb kjo, kush \u00ebsht\u00eb i varur nga kush, \u00e7far\u00eb konkretisht n\u00ebnkupton \u201ct\u00eb jesh i varur\u201d, dhe si mund nj\u00eb klas\u00eb t\u00eb jet\u00eb e varur nga ndonj\u00eb? <\/p>\n<p>Dhe k\u00ebshtu, gjat\u00eb leximit t\u00eb librit kam kuptuar dy \u00e7\u00ebshtje:<\/p>\n<p>Var\u00ebsia \u2014 \u00ebsht\u00eb nj\u00eb term, q\u00eb do t\u00eb thot\u00eb se nj\u00eb klas\u00eb (komponent, sh\u00ebrbim) e njeh nj\u00eb tjet\u00ebr klas\u00eb (komponent, sh\u00ebrbim), dhe kjo njohje n\u00eb nivelin e kodit p\u00ebrcaktohet (tani programuesit e Java, C#, dhe C do t\u00eb m\u00eb kuptojn\u00eb) me nj\u00eb import t\u00eb caktuar t\u00eb hap\u00ebsir\u00ebs em\u00ebrore. Ndryshe: keni nj\u00eb klas\u00eb A me hap\u00ebsir\u00ebn em\u00ebrore Default.Classes dhe nj\u00eb klas\u00eb B Another.Classes. Pra, n\u00ebse n\u00eb kodin burim t\u00eb klas\u00ebs A ndodhet p\u00ebrdorimi i Another.Classes; \u2014 kjo do t\u00eb thot\u00eb se klasa A \u00ebsht\u00eb e varur nga klasa B. <br \/>\nP\u00ebr t\u00eb kuptuar n\u00eb skem\u00eb, ku \u00ebsht\u00eb klasa e varur, e ku jo \u2014 shikoni drejtimin e shigjet\u00ebs: n\u00eb 1) shigjeta do t\u00eb tregoj\u00eb nga klasa A n\u00eb drejtim t\u00eb klas\u00ebs B. Kjo do t\u00eb thot\u00eb se klasa B \u00ebsht\u00eb m\u00eb e pavarur se klasa A. Ndryshimet n\u00eb klas\u00ebn A nuk do t'i sjellin asnj\u00eb \u201cd\u00ebm\u201d klas\u00ebs B.<\/p>\n<p><img decoding=\"async\" alt=\"Nj\u00eb p\u00ebrmbledhje e r\u00ebnd\u00ebsishme: Arkitektura E Past\u00ebr, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/e8a54c03bc1aaf23aec3d24b002fc866.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>SOLID<\/h3>\n<p>\nNj\u00eb nga arsyet kryesore, q\u00eb m\u00eb shtyu t\u00eb lexoj k\u00ebt\u00eb lib\u00ebr \u2014 \u00ebsht\u00eb shpjegimi i principeve S\u041eLID nga burimi origjinal, sepse djali Robert i zhvilloi k\u00ebto principe dhe mund t\u00eb thuhet se fal\u00eb tij ne d\u00ebgjojm\u00eb k\u00ebt\u00eb em\u00ebr \u2014 SOLID.<br \/>\nP\u00ebr ata q\u00eb nuk e din\u00eb \u2014 k\u00ebto parime flasin dhe rekomandojn\u00eb q\u00eb t\u00eb dizajnojn\u00eb aplikacionet e tyre sipas 5 rregullave:<\/p>\n<p>S \u2014 SRP (Parimi i p\u00ebrgjegj\u00ebsis\u00eb s\u00eb vetme)<br \/>\nO \u2014 OCP (Parimi i hapur-mbyllur)<br \/>\nL \u2014 LSP (Parimi i z\u00ebvend\u00ebsimit t\u00eb Liskov)<br \/>\nI \u2014 ISP (Parimi i ndarjes s\u00eb nd\u00ebrfaqeve)<br \/>\nD \u2014 DIP (Parimi i inverzimit t\u00eb var\u00ebsive)<\/p>\n<p>T\u00eb gjitha k\u00ebto parime mund t\u00eb aplikohen n\u00eb nivelin e klasave dhe objekteve, n\u00eb nivelin e moduleve dhe komponent\u00ebve dhe n\u00eb nivelin e lejerve (sh\u00ebrbimeve).<\/p>\n<p>N\u00ebse mendoni se Parimi i p\u00ebrgjegj\u00ebsis\u00eb s\u00eb vetme \u2014 \u00ebsht\u00eb n\u00eb lidhje me at\u00eb q\u00eb klasa ose moduli duhet t\u00eb b\u00ebj\u00eb vet\u00ebm nj\u00eb gj\u00eb \u2014 at\u00ebher\u00eb patjet\u00ebr duhet t\u00eb lexoni t\u00eb pakt\u00ebn kapitullin mbi SOLID. Sepse ajo p\u00ebrkufizim q\u00eb u dha m\u00eb lart \u2014 \u00ebsht\u00eb nj\u00eb pasoj\u00eb, por jo p\u00ebrkufizimi i vet\u00eb parimit.<\/p>\n<h3>N\u00eb lidhje me Inverzimin e Var\u00ebsive<\/h3>\n<p>\nDua t\u00eb t\u00ebrheq v\u00ebmendjen n\u00eb shpjegimin e Parimit t\u00eb Inverzimit t\u00eb Var\u00ebsive (ajo D nga SOLID). Gjat\u00eb leximit t\u00eb librit, kuptova se nuk \u00ebsht\u00eb vet\u00ebm nj\u00eb parim, por gjithashtu nj\u00eb mekaniz\u00ebm dhe mjet me t\u00eb cilin mund t\u00eb ndryshoni drejtimin e var\u00ebsive tuaja, duke b\u00ebr\u00eb, p\u00ebr shembull, logjik\u00ebn e biznesit (DOMAIN) t\u00eb pavarur nga detajet e zbatimit t\u00eb Shtres\u00ebs s\u00eb Qasjes s\u00eb T\u00eb Dh\u00ebnave (DAL).<\/p>\n<p><img decoding=\"async\" alt=\"Nj\u00eb p\u00ebrmbledhje e r\u00ebnd\u00ebsishme: Arkitektura E Past\u00ebr, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/0bceb51ecdb3d220d8a311d0ccdb26d7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMegjith\u00ebse vet\u00eb parimi p\u00ebrve\u00e7 t\u00eb tjer\u00ebve n\u00eb SOLID do t\u00eb thot\u00eb paksa ndryshe nga mekanizmi, vet\u00eb mekanizmi p\u00ebrdoret gjat\u00eb gjith\u00eb librit dhe \u00ebsht\u00eb nj\u00eb nga metodat kryesore p\u00ebr t\u00eb inverzuar dhe ndryshuar drejtimin e var\u00ebsive tuaja, q\u00eb po ashtu p\u00ebrdoret n\u00eb DDD.<\/p>\n<h3>P\u00ebr marrjen e vendimeve arkitektonike<\/h3>\n<p>\nShum\u00eb shpesh n\u00eb lib\u00ebr do t\u00eb p\u00ebrmendet parimi p\u00ebr marrjen e vendimeve t\u00eb r\u00ebnd\u00ebsishme arkitektonike: p\u00ebr at\u00eb se cil\u00ebn DB t\u00eb p\u00ebrdorni, cilin framework t\u00eb p\u00ebrdorni, cil\u00ebn bibliotek\u00eb t\u00eb lidhni, se \u00e7far\u00eb t\u00eb p\u00ebrdorni si motor k\u00ebrkimi etj.<\/p>\n<p>Pra, autori mendon: ju duhet T\u00cb PRISHNI sa m\u00eb pak vendime t\u00eb k\u00ebtij lloji. Sepse k\u00ebrkesat mund t\u00eb ndryshojn\u00eb, kufizimet n\u00eb performanc\u00eb gjithashtu, dhe p\u00ebrb\u00ebrja e sjelljes ka tendenc\u00eb t\u00eb ndryshoj\u00eb. N\u00eb procesin e zhvillimit, nj\u00eb vendim mund t\u00eb duket m\u00eb pak efektiv se nj\u00eb tjet\u00ebr, m\u00eb pak i rehatsh\u00ebm se nj\u00eb tjet\u00ebr. Dhe forza e arkitektur\u00ebs tuaj do t\u00eb p\u00ebrcaktoj\u00eb se sa shpejt dhe pa dhimbje mund t\u00eb z\u00ebvend\u00ebsoni nj\u00eb teknologji me nj\u00eb tjet\u00ebr (p\u00ebr k\u00ebt\u00eb flet po ashtu OCP).<\/p>\n<p>P\u00ebr shembull, papritur, mund t\u00eb vendosni t\u00eb p\u00ebrdorni MongoDb n\u00eb vend t\u00eb Postgresql, ose ndonj\u00ebher\u00eb skedar\u00eb, ose t\u00eb p\u00ebrdorni t\u00eb dh\u00ebna t\u00eb simulueshme, operacionet me t\u00eb cilat do t\u00eb kryhen n\u00eb memorie. Dhe n\u00ebn disa kushte \u2014 kjo mund t\u00eb detyroj\u00eb q\u00eb t\u00eb rinovoni pothuajse t\u00eb gjith\u00eb logjik\u00ebn. <\/p>\n<p>P\u00ebr t\u00eb parandaluar q\u00eb situata t\u00eb tilla t\u00eb ndodhin, ne mund t\u00eb p\u00ebrdorim disa mekanizma q\u00eb do t\u00eb vonojn\u00eb sa m\u00eb shum\u00eb q\u00eb t\u00eb jet\u00eb e mundur vendimmarrjen. Nj\u00eb nga k\u00ebta mekanizma \u00ebsht\u00eb abstraksioni.<\/p>\n<h3>Referencat p\u00ebr DDD<\/h3>\n<p>\nDDD - Domain Driven Design - \u00ebsht\u00eb nj\u00eb qasje p\u00ebr zhvillimin e sh\u00ebrbimeve me logjik\u00eb biznesi komplekse, q\u00eb \u00ebsht\u00eb kritike ndaj ndryshimeve, e orientuar p\u00ebr maksimalizimin e kuptimit nga ana e menaxher\u00ebve t\u00eb projekteve (PM, menaxher\u00ebt e shitjeve etj.), me an\u00ebtar\u00ebt e zakonsh\u00ebm. K\u00ebshtu, q\u00eb \u00e7do an\u00ebtar i projektit t\u00eb ket\u00eb nj\u00eb gjuh\u00eb t\u00eb zakonshme, dhe q\u00eb \u00e7do njeri t\u00eb mund t\u00eb kuptoj\u00eb tjetrin, dhe q\u00eb t\u00eb gjith\u00eb t\u00eb mendojn\u00eb n\u00eb nj\u00eb domain me rregulla t\u00eb nj\u00ebjta biznesi.<\/p>\n<p>N\u00ebse ju jeni adhurues i DDD, ose d\u00ebshironi t\u00eb jeni, ose nuk kuptoni di\u00e7ka n\u00eb lidhje me t\u00eb, por d\u00ebshironi t\u00eb kuptoni - libri \u00ebsht\u00eb i detyruesh\u00ebm p\u00ebr t'u lexuar, ve\u00e7an\u00ebrisht pjesa e dyt\u00eb e librit.<\/p>\n<p>K\u00ebtu autori shpjegon rreth ekzistenc\u00ebs s\u00eb Rregullit t\u00eb Var\u00ebsis\u00eb, dhe pse, duke i ndjekur at\u00eb - ju do t\u00eb nd\u00ebrtoni arkitektur\u00ebn e duhur t\u00eb aplikacionit. Pse var\u00ebsit\u00eb duhet t\u00eb ndjekin drejtimin n\u00eb komponent\u00ebt e Politik\u00ebs s\u00eb Lart\u00eb, pse <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/domain\/\"   title=\"domain\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4077\">domain<\/a> (komponenti i Politik\u00ebs s\u00eb Lart\u00eb) duhet t\u00eb jet\u00eb t\u00ebr\u00ebsisht i pavarur nga infrastruktura dhe si do ta thjeshtoj k\u00ebt\u00eb p\u00ebr ju n\u00eb shp\u00ebrndarje dhe zhvillim<\/p>\n<p><img decoding=\"async\" alt=\"Nj\u00eb p\u00ebrmbledhje e r\u00ebnd\u00ebsishme: Arkitektura E Past\u00ebr, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/be7b51d067415390e0098339fb6cda46.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Abstraksioni<\/h3>\n<p>\nDaja Rob, gjithashtu, tregon se si detajet e implementimit mund t\u00eb d\u00ebmtojn\u00eb sistemin tuaj, dhe t\u00eb mos lejojn\u00eb evoluimin pa dhimbje n\u00eb t\u00eb ardhmen.<\/p>\n<p>Mos harroni!<br \/>\nBaza e t\u00eb dh\u00ebnave - \u00ebsht\u00eb nj\u00eb detaj implementimi<br \/>\nK\u00ebnaq\u00ebsit\u00eb (Web, Mobile, etj) - detaje implementimi<br \/>\nKornizat - jan\u00eb detajet e implementimit<\/p>\n<p>Duhet t\u00eb abstraktohemi sa m\u00eb shum\u00eb nga t\u00eb gjitha k\u00ebto dhe t\u00eb mos varemi, duke p\u00ebrdorur var\u00ebsin\u00eb e p\u00ebrshkruar m\u00eb sip\u00ebr me nd\u00ebrfaqet dhe abstraksionet, Rregullin e Var\u00ebsis\u00eb dhe mekanizma t\u00eb tjera<\/p>\n<h3>Metodat e nd\u00ebrtimit t\u00eb moduleve<\/h3>\n<p>\nKy seksion m\u00eb p\u00eblqeu ve\u00e7an\u00ebrisht si zhvillues i sh\u00ebrbimeve n\u00eb ASP .NET CORE. K\u00ebtu p\u00ebrshkruhen metodologjit\u00eb e nd\u00ebrtimit t\u00eb nj\u00eb arkitekture t\u00eb vetme sh\u00ebrbimi nga komponent\u00ebt e gatsh\u00ebm. <\/p>\n<p>Robert p\u00ebrshkroi 4 skema t\u00eb mundshme t\u00eb ndarjes s\u00eb shtresave.<\/p>\n<p>Ai dha t\u00eb kuptohet pse mekanizmi i p\u00ebrdorur aq shpesh i arkitektur\u00ebs tre-shtresore: UI (kontrollor\u00ebt), Sh\u00ebrbimet (Domeni), DAL (Baza e t\u00eb Dh\u00ebnave) - \u00ebsht\u00eb mjaft i keq krahasuar me t\u00eb tjer\u00ebt. Kam par\u00eb jo shum\u00eb projekte, por n\u00eb \u00e7do mikro-sh\u00ebrbim, p\u00ebr shembull n\u00eb backend, p\u00ebrdoret e nj\u00ebjta arkitektur\u00eb tre-shtresore. <\/p>\n<p>Po shkurtimisht, shpesh p\u00ebrdoret arkitektura nj\u00eb-komponent-nj\u00eb-sh\u00ebrbim. N\u00eb p\u00ebrgjith\u00ebsi, t\u00eb dyjat nuk jan\u00eb t\u00eb k\u00ebqija, por ajo ka mjaft disavantazhe, krahasuar, p\u00ebr shembull, me si nd\u00ebrtuar arkitektura kur p\u00ebrdoret DDD, ve\u00e7an\u00ebrisht n\u00eb sh\u00ebrbime t\u00eb kritikuara ndaj ndryshimeve dhe t\u00eb komplikuara.<\/p>\n<p>N\u00eb p\u00ebrgjith\u00ebsi, ky \u00ebsht\u00eb fundi i k\u00ebsaj p\u00ebrmbledhje p\u00ebr librin. Librin vet\u00eb e pash\u00eb shum\u00eb t\u00eb mir\u00eb, nuk m\u00eb ka penduar p\u00ebr \u00e7far\u00eb kam lexuar, faleminderit autorit. Ju, t\u00eb dashur lexues, faleminderit p\u00ebr v\u00ebmendjen, mos gjykoni ashp\u00ebr - ky publikim \u00ebsht\u00eb i bazuar n\u00eb p\u00ebrshtypjet nga libri dhe entuziazmin tim personal.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464185\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0438 \u043e \u043a\u043d\u0438\u0433\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0435, \u0431\u044b\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u044b \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u041c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b, \u0447\u0438\u0442\u0430\u044f \u044d\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e, \u0434\u0430\u0442\u044c \u0447\u0435\u0442\u043a\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430? \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f? \u041a\u0430\u043a\u0443\u044e \u0440\u043e\u043b\u044c \u043e\u043d\u0430 \u0438\u0433\u0440\u0430\u0435\u0442? \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043d\u0435\u044f\u0441\u043d\u043e\u0441\u0442\u0435\u0439 \u0435\u0441\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0435. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27958,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-37273","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0438 \u043e \u043a\u043d\u0438\u0433\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0435, \u0431\u044b\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u044b \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u041c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b, \u0447\u0438\u0442\u0430\u044f \u044d\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e, \u0434\u0430\u0442\u044c.\" \/>\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\/sq\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\u043e\u0440\u043e\u0442\u043a\u043e \u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c: Clean Architecture, Robert C. Martin | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0438 \u043e \u043a\u043d\u0438\u0433\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0435, \u0431\u044b\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u044b \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u041c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b, \u0447\u0438\u0442\u0430\u044f \u044d\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e, \u0434\u0430\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin\" \/>\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=\"2019-10-31T19:16:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:16:42+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\udd47 N\u00eb p\u00ebrmbledhje: Clean Architecture, Robert C. Martin | ProHoster","description":"Ky do t\u00eb jet\u00eb nj\u00eb tregim mbi p\u00ebrshtypjet nga libri, si dhe do t\u00eb shqyrtohen disa koncepte dhe njohuri, t\u00eb cilat, fal\u00eb k\u00ebtij libri, u m\u00ebsuan Arkitektura A mund t\u00eb jepni, duke lexuar k\u00ebt\u00eb publikim.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\u043e\u0440\u043e\u0442\u043a\u043e \u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c: Clean Architecture, Robert C. Martin | ProHoster","og:description":"\u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0438 \u043e \u043a\u043d\u0438\u0433\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0435, \u0431\u044b\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u044b \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u041c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b, \u0447\u0438\u0442\u0430\u044f \u044d\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e, \u0434\u0430\u0442\u044c.","og:url":"https:\/\/prohoster.info\/sq\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin","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":"2019-10-31T19:16:42+00:00","article:modified_time":"2019-10-31T19:16:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37273","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":"2026-03-05 11:16:40","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:30:00","updated":"2026-03-05 11:16:40","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=37273"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37273\/revisions"}],"predecessor-version":[{"id":163180,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37273\/revisions\/163180"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/27958"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=37273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=37273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=37273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}