{"id":34828,"date":"2019-10-31T22:00:38","date_gmt":"2019-10-31T19:00:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/single-responsibility-principle-ne-takoj-prostoj-kak-kazhetsya\/"},"modified":"2019-10-31T22:00:38","modified_gmt":"2019-10-31T19:00:38","slug":"single-responsibility-principle-ne-takoj-prostoj-kak-kazhetsya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/single-responsibility-principle-ne-takoj-prostoj-kak-kazhetsya","title":{"rendered":"Principi i P\u00ebrgjegj\u00ebsis\u00eb s\u00eb Vetme. Nuk \u00ebsht\u00eb aq e thjesht\u00eb sa duket.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Principi i P\u00ebrgjegj\u00ebsis\u00eb s\u00eb Vetme. Nuk \u00ebsht\u00eb aq e thjesht\u00eb sa duket.\" src=\"\/wp-content\/uploads\/2019\/06\/5b253ff55e3c97b6baf5f7a7ae7f3b98.JPG\" style=\"display:block;margin: 0 auto;\" \/> Principi i p\u00ebrgjegj\u00ebsis\u00eb s\u00eb vetme, gjithashtu i njohur si principi i p\u00ebrgjegj\u00ebsis\u00eb unike,<br \/>\n\u00ebsht\u00eb nj\u00eb koncept shum\u00eb delikat p\u00ebr t'u kuptuar dhe nj\u00eb \u00e7\u00ebshtje mjaft nervoze n\u00eb intervistat p\u00ebr programues\u00eb. <\/p>\n<p><\/p>\n<p>Takimi im i par\u00eb serioz me k\u00ebt\u00eb princip ndodhi n\u00eb fillim t\u00eb vitit t\u00eb par\u00eb, kur na shp\u00ebrndan\u00eb n\u00eb pyll p\u00ebr t\u00eb na treguar nga larvat e student\u00ebve - n\u00eb student\u00eb t\u00eb v\u00ebrtet\u00eb.<\/p>\n<p><\/p>\n<p>N\u00eb pyll, na ndan\u00eb n\u00eb grupe prej 8-9 personash dhe vendos\u00ebn nj\u00eb gar\u00eb - cila grup do t\u00eb pij\u00eb shpejt nj\u00eb shishe vodka, me kushtin q\u00eb personi i par\u00eb nga grupa t\u00eb derdh\u00eb vodk\u00ebn n\u00eb got\u00eb, i dyti ta pij\u00eb, dhe i treti t\u00eb haj\u00eb. Nj\u00ebsi e p\u00ebrfunduar n\u00eb operacionin e tij del n\u00eb fund t\u00eb radh\u00ebs. <\/p>\n<p><\/p>\n<p>Rasti kur madh\u00ebsia e radh\u00ebs ishte shum\u00ebfish i tre, ishte nj\u00eb realizim i mir\u00eb i SRP.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <\/p>\n<h2 id=\"opredelenie-1-edinaya-otvetstvennost\">Definicioni 1. P\u00ebgjegj\u00ebsia unike.<\/h2>\n<p><\/p>\n<p>Definimi zyrtar i principit t\u00eb p\u00ebrgjegj\u00ebsis\u00eb unike (SRP) thot\u00eb se \u00e7do objekt ka p\u00ebrgjegj\u00ebsin\u00eb e vet dhe arsye p\u00ebr ekzistenc\u00eb, dhe kjo p\u00ebrgjegj\u00ebsi \u00ebsht\u00eb vet\u00ebm nj\u00eb.<\/p>\n<p><\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442 &#171;\u0412\u044b\u043f\u0438\u0432\u043e\u0445\u0430&#187; (<strong>Tippler<\/strong>).<br \/>\nP\u00ebr t\u00eb zbatuar principin SRP, ndajm\u00eb detyrat n\u00eb tre pjes\u00eb: <\/p>\n<p><\/p>\n<ul>\n<li>Nj\u00ebri derdh\u00eb (<strong>PourOperation<\/strong>)<\/li>\n<li>Nj\u00eb person pi (<strong>DrinkUpOperation<\/strong>)<\/li>\n<li>Nj\u00eb person kafshon (<strong>TakeBiteOperation<\/strong>)<\/li>\n<\/ul>\n<p><\/p>\n<p>\u00c7do pjes\u00ebmarr\u00ebs i procesit \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr nj\u00eb komponent t\u00eb procesit, q\u00eb do t\u00eb thot\u00eb se ka nj\u00eb p\u00ebrgjegj\u00ebsi atomike \u2014 p\u00ebr t\u00eb pir\u00eb, p\u00ebr t\u00eb derdhur ose p\u00ebr t\u00eb kafshuar. <\/p>\n<p><\/p>\n<p>V\u00ebllai i pirjes \u00ebsht\u00eb nj\u00eb fasad\u00eb p\u00ebr k\u00ebto operacione:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">class Tippler {\n    \/\/...\n    void Act(){\n        _pourOperation.Do() \/\/ derdh\n        _drinkUpOperation.Do() \/\/ pi\n        _takeBiteOperation.Do() \/\/ kafsho\n    }\n}<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Principi i P\u00ebrgjegj\u00ebsis\u00eb s\u00eb Vetme. Nuk \u00ebsht\u00eb aq e thjesht\u00eb sa duket.\" src=\"\/wp-content\/uploads\/2019\/06\/8d591a474e3555edfee3ffebc28d079b.JPG\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4 id=\"zachem\">Pse?<\/h4>\n<p><\/p>\n<p>Nj\u00eb njeri-programues shkruan kod p\u00ebr nj\u00eb njeri-majmund, dhe njeri-majmundi \u00ebsht\u00eb i pav\u00ebmendsh\u00ebm, budalla dhe gjithmon\u00eb n\u00eb ngut. Ai mund t\u00eb mbaj\u00eb dhe t\u00eb kuptoj\u00eb rreth 3 \u2014 7 terma n\u00eb nj\u00eb moment.<br \/>\nN\u00eb rastin e v\u00ebllait t\u00eb pirjes, k\u00ebta terma jan\u00eb tre. Megjithat\u00eb, n\u00ebse ne shkruajm\u00eb kod n\u00eb nj\u00eb rresht t\u00eb vet\u00ebm, do t\u00eb shfaqen duar, gota, p\u00ebrleshje dhe polemika t\u00eb pafund rreth politik\u00ebs. T\u00eb gjitha k\u00ebto do t\u00eb jen\u00eb n\u00eb trup t\u00eb nj\u00eb metode. Jam i sigurt se e keni par\u00eb at\u00eb kod n\u00eb praktik\u00ebn tuaj. Nuk \u00ebsht\u00eb prova m\u00eb e humanizuar p\u00ebr psikologjin\u00eb.<\/p>\n<p><\/p>\n<p>\u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0447\u0435\u043b\u043e\u0432\u0435\u043a-\u043e\u0431\u0435\u0437\u044c\u044f\u043d\u0430 \u0437\u0430\u0442\u043e\u0447\u0435\u043d \u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0433\u043e\u043b\u043e\u0432\u0435. \u0412 \u0441\u0432\u043e\u0435\u043c \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0438\u0445 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c, \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u043d\u043e\u0432\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0435\u0431\u0435 \u0441\u0442\u0430\u0440\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u0430\u0448\u0438\u043d\u044b. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u0432\u0435\u0440\u044c, \u043e\u0442\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u043e\u0431\u0448\u0438\u0432\u043a\u0443 \u0434\u0432\u0435\u0440\u0438 \u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0442\u0430\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0441\u0442\u0435\u043a\u043b\u043e\u043f\u043e\u0434\u044a\u0435\u043c\u043d\u0438\u043a\u043e\u0432, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0443\u0442 \u0448\u0435\u0441\u0442\u0435\u0440\u043d\u0438. \u041d\u043e \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043c\u0430\u0448\u0438\u043d\u044b \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0432 \u043e\u0434\u043d\u043e\u043c &#171;\u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435&#187;. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 &#171;\u0447\u0435\u043b\u043e\u0432\u0435\u043a-\u043e\u0431\u0435\u0437\u044c\u044f\u043d\u0430&#187; \u043d\u0435 \u043c\u043e\u0436\u0435\u0442.<\/p>\n<p><\/p>\n<p>Prandaj, njeriun-programues e dekompozojn\u00eb mekanizmat komplekse n\u00eb nj\u00eb grup element\u00ebsh m\u00eb pak t\u00eb komplikuar dhe funksional\u00eb. Megjithat\u00eb, dekompozimi mund t\u00eb b\u00ebhet n\u00eb m\u00ebnyra t\u00eb ndryshme: n\u00eb shum\u00eb makina t\u00eb vjetra, kanali i ajrit del n\u00eb der\u00eb, nd\u00ebrsa n\u00eb ato moderne, d\u00ebshtimi i elektronik\u00ebs s\u00eb \u00e7el\u00ebsit nuk lejon q\u00eb motori t\u00eb niste, e cila merr koh\u00eb gjat\u00eb riparimit.<\/p>\n<p><\/p>\n<p>Pra, <strong>SRP \u2014 \u00ebsht\u00eb nj\u00eb parim q\u00eb shpjegon SE si t\u00eb dekompozohet, dmth ku t\u00eb t\u00ebrhiqet linja e ndarjes.<\/strong>. <\/p>\n<p><\/p>\n<p>\u041e\u043d \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0434\u043e \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f &#171;\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438&#187;, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e \u0437\u0430\u0434\u0430\u0447\u0430\u043c \u0442\u0435\u0445 \u0438\u043b\u0438 \u0438\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Principi i P\u00ebrgjegj\u00ebsis\u00eb s\u00eb Vetme. Nuk \u00ebsht\u00eb aq e thjesht\u00eb sa duket.\" src=\"\/wp-content\/uploads\/2019\/06\/b1980c3dc9742b921eb818f14fe3527e.JPG\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>T\u00eb kthehemi te alkooli dhe p\u00ebrfitimet q\u00eb marrin njoh\u00ebsit gjat\u00eb dekompozimit: <\/p>\n<p><\/p>\n<ul>\n<li>Kodi \u00ebsht\u00eb b\u00ebr\u00eb jasht\u00ebzakonisht i qart\u00eb n\u00eb \u00e7do nivel<\/li>\n<li>Kodi mund t\u00eb shkruhet nga disa programues n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb (secili shkruan nj\u00eb element t\u00eb ve\u00e7ant\u00eb)<\/li>\n<li>Testimi automatik leht\u00ebsohet - sa m\u00eb i thjesht\u00eb t\u00eb jet\u00eb elementi, aq m\u00eb leht\u00eb \u00ebsht\u00eb ta testosh<\/li>\n<li>P\u00ebrb\u00ebhet kompozicionaliteti i kodit - mund t\u00eb z\u00ebvend\u00ebsohet <strong>DrinkUpOperation<\/strong> me nj\u00eb operacion, n\u00eb t\u00eb cilin alkooli derdh l\u00ebngun n\u00ebn tryez\u00eb. Ose mund t\u00eb z\u00ebvend\u00ebsohet operacioni i derdhjes me nj\u00eb operacion, n\u00eb t\u00eb cilin ju p\u00ebrzini ver\u00ebn dhe ujin ose vodk\u00ebn dhe birr\u00ebn. Sipas k\u00ebrkesave t\u00eb biznesit, ju mund t\u00eb b\u00ebni gjith\u00e7ka, pa prekur kodin e metod\u00ebs <strong>Tippler.Act<\/strong>. <\/li>\n<li>Nga k\u00ebto operacione mund t\u00eb krijoni nj\u00eb alkoolik (duke p\u00ebrdorur vet\u00ebm <strong>TakeBitOperation<\/strong>), nj\u00eb alkoolik (duke p\u00ebrdorur vet\u00ebm <strong>DrinkUpOperation<\/strong> drejt\u00eb nga shishja) dhe t\u00eb p\u00ebrmbushni shum\u00eb k\u00ebrkesa t\u00eb tjera t\u00eb biznesit.<\/li>\n<\/ul>\n<p><\/p>\n<p><em>(Oi, duket se kjo \u00ebsht\u00eb tashm\u00eb parimi OCP, dhe kam shkelur p\u00ebrgjegj\u00ebsin\u00eb e k\u00ebtij postimi) <\/em><\/p>\n<p><\/p>\n<p>Dhe, sigurisht, disavantazhet: <\/p>\n<p><\/p>\n<ul>\n<li>Do t'ju duhet t\u00eb krijoni m\u00eb shum\u00eb lloje. <\/li>\n<li>Alkooliku do t\u00eb pij\u00eb p\u00ebr her\u00eb t\u00eb par\u00eb disa or\u00eb m\u00eb von\u00eb se sa do t\u00eb mundej<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"opredelenie-2-edinaya-izmenchivost\">P\u00ebrkufizimi 2. Variacioni i nj\u00ebjt\u00eb.<\/h2>\n<p><\/p>\n<p>\u041f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u0433\u043e\u0441\u043f\u043e\u0434\u0430! \u041a\u043b\u0430\u0441\u0441 \u0432\u044b\u043f\u0438\u0432\u043e\u0445\u0438 \u0436\u0435 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0435\u0434\u0438\u043d\u0443\u044e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u2014 \u043e\u043d \u0432\u044b\u043f\u0438\u0432\u0430\u0435\u0442! \u0418 \u0432\u043e\u043e\u0431\u0449\u0435, \u0441\u043b\u043e\u0432\u043e &#171;\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c&#187; \u2014 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0430\u0437\u043c\u044b\u0442\u043e\u0435. \u041a\u0442\u043e-\u0442\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u0435\u043d \u0437\u0430 \u0441\u0443\u0434\u044c\u0431\u0443 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u0430, \u0430 \u043a\u0442\u043e-\u0442\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u0435\u043d \u0437\u0430 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043e\u043f\u0440\u043e\u043a\u0438\u043d\u0443\u0442\u044b\u0445 \u043d\u0430 \u043f\u043e\u043b\u044e\u0441\u0435 \u043f\u0438\u043d\u0433\u0432\u0438\u043d\u043e\u0432.<\/p>\n<p><\/p>\n<p>Le t\u00eb shqyrtojm\u00eb dy realizime t\u00eb alkoolit. E para, e p\u00ebrmendur m\u00eb lart, p\u00ebrmban tre klasa \u2014 derdhje, pirje dhe mez\u00eb.<\/p>\n<p><\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044e &#171;\u0412\u043f\u0435\u0440\u0435\u0434 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043f\u0435\u0440\u0435\u0434&#187; \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <strong>Act<\/strong>:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">\/\/\u041d\u0435 \u0442\u0440\u0430\u0442\u044c\u0442\u0435 \u0432\u0440\u0435\u043c\u044f  \u043d\u0430 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. \u041b\u0443\u0447\u0448\u0435 \u0441\u044a\u0435\u0448\u044c\u0442\u0435 \u043f\u0435\u0447\u0435\u043d\u044c\u043a\u0443\n\u0441lass BrutTippler {\n   \/\/...\n   void Act(){\n        \/\/ \u043d\u0430\u043b\u0438\u0432\u0430\u0435\u043c\n    if(!_hand.TryDischarge(from:_bottle, to:_glass, size:_glass.Capacity))\n        throw new OverdrunkException();\n\n    \/\/ \u0432\u044b\u043f\u0438\u0432\u0430\u0435\u043c\n    if(!_hand.TryDrink(from: _glass,  size: _glass.Capacity))\n        throw new OverdrunkException();\n\n    \/\/\u0417\u0430\u043a\u0443\u0441\u044b\u0432\u0430\u0435\u043c\n    for(int i = 0; i&lt; 3; i++){\n        var food = _foodStore.TakeOrDefault();\n        if(food==null)\n            throw new FoodIsOverException();\n\n        _hand.TryEat(food);\n    }\n   }\n}<\/code><\/pre>\n<p><\/p>\n<p>\u041e\u0431\u0430 \u044d\u0442\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u0430, \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u044f, \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0435\u0434\u0438\u043d\u0443\u044e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c &#171;\u0432\u044b\u043f\u0438\u0442\u044c&#187;. <\/p>\n<p><\/p>\n<p>Confuzion!<\/p>\n<p><\/p>\n<p>At\u00ebher\u00eb, ne zhytim n\u00eb internet dhe m\u00ebsojm\u00eb nj\u00eb p\u00ebrkufizim tjet\u00ebr t\u00eb SRP \u2014 Parimi i Ndryshueshm\u00ebris\u00eb s\u00eb Vetme (Single Changeability Principle).<\/p>\n<p><\/p>\n<p>SCP \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e &#171;<strong>Nj\u00eb modull ka nj\u00eb dhe vet\u00ebm nj\u00eb arsye p\u00ebr t\u00eb ndryshuar\".<\/strong>&#171;. \u0422\u043e \u0435\u0441\u0442\u044c &#171;\u041e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u2014 \u044d\u0442\u043e \u043f\u043e\u0432\u043e\u0434 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f&#187;. <\/p>\n<p><\/p>\n<p><em>(Duket se, djemt\u00eb q\u00eb shpik\u00ebn p\u00ebrkufizimin fillestar ishin t\u00eb sigurt n\u00eb aft\u00ebsit\u00eb telepatike t\u00eb njeriut-majm\u00eb)<\/em><\/p>\n<p><\/p>\n<p>Tani p\u00ebr gjith\u00e7ka vendoset n\u00eb vendin e saj. Ve\u00e7mas mund t\u00eb ndryshohet procedura e derdhjes, pirjes dhe ushqimit, nd\u00ebrsa n\u00eb vet\u00eb pirjesin mund t\u00eb ndryshojm\u00eb vet\u00ebm rendin dhe p\u00ebrb\u00ebrjen e operacioneve, p\u00ebr shembull, duke e kaluar ushqimin para pirjes ose duke shtuar leximin e nj\u00eb toasti.<\/p>\n<p><\/p>\n<p>\u0412 \u043f\u043e\u0434\u0445\u043e\u0434\u0435 &#171;\u0412\u043f\u0435\u0440\u0435\u0434 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043f\u0435\u0440\u0435\u0434&#187;, \u0432\u0441\u0435 \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u2014 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <strong>Act<\/strong>. Kjo mund t\u00eb jet\u00eb e lexueshme dhe efikase n\u00eb rastet kur logjika \u00ebsht\u00eb e vog\u00ebl dhe ndryshon rrall\u00eb, por shpesh kjo p\u00ebrfundon me metoda t\u00eb tmerrshme prej 500 rreshtash n\u00eb secil\u00ebn, me numrin e if-eve m\u00eb t\u00eb madh se sa k\u00ebrkohet p\u00ebr an\u00ebtar\u00ebsimin e Rusis\u00eb n\u00eb NATO. <\/p>\n<p><\/p>\n<h2 id=\"opredelenie-3-lokalizaciya-izmeneniy\">P\u00ebrkufizimi 3. Lokalizimi i ndryshimeve.<\/h2>\n<p><\/p>\n<p>Pira shpesh nuk e kuptojn\u00eb pse jan\u00eb zgjuar n\u00eb apartamentin e dikujt tjet\u00ebr, ose ku \u00ebsht\u00eb celulari i tyre. \u00cbsht\u00eb koha t\u00eb shtohet nj\u00eb logim i detajuar.<\/p>\n<p><\/p>\n<p>Le t\u00eb fillojm\u00eb logimin me procesin e derdhjes:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">class PourOperation: IOperation{\n    PourOperation(ILogger log \/*....*\/){\/*...*\/}\n    \/\/...\n    void Do(){\n        _log.Log($\"Para derdhjes me {_hand} dhe {_bottle}\");\n        \/\/Logjika e biznesit p\u00ebr derdhjen ...\n        _log.Log($\"Pas derdhjes me {_hand} dhe {_bottle}\");\n    }\n}<\/code><\/pre>\n<p><\/p>\n<p>Duke e inkapsuluar at\u00eb n\u00eb <strong>PourOperation<\/strong>, kemi vepruar me zgjuarsi n\u00eb lidhje me p\u00ebrgjegj\u00ebsin\u00eb dhe inkapsulimin, por tani kemi nj\u00eb situat\u00eb t\u00eb \u00e7uditshme me parimin e ndryshueshm\u00ebris\u00eb. P\u00ebrve\u00e7 operacionit vet\u00eb, edhe regjistrimi b\u00ebhet i ndryshuesh\u00ebm. Do t\u00eb nevojitet t\u00eb ndajm\u00eb dhe t\u00eb b\u00ebjm\u00eb nj\u00eb regjistrues t\u00eb ve\u00e7ant\u00eb p\u00ebr operacionin e derdhjes:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">interface IPourLogger{\n    void LogBefore(IHand, IBottle){}\n    void LogAfter(IHand, IBottle){}\n    void OnError(IHand, IBottle, Exception){}\n}\n\nclass PourOperation: IOperation{\n    PourOperation(IPourLogger log \/*....*\/){\/*...*\/}\n    \/\/...\n    void Do(){\n        _log.LogBefore(_hand, _bottle);\n        try{\n             \/\/... logjika e biznesit\n             _log.LogAfter(_hand, _bottle\");\n        }\n        catch(exception e){\n            _log.OnError(_hand, _bottle, e)\n        }\n    }\n}<\/code><\/pre>\n<p><\/p>\n<p>Lexuesi i kujdessh\u00ebm do t\u00eb v\u00ebrej\u00eb se <strong>LogAfter<\/strong>, <strong>LogBefore<\/strong> dhe <strong>OnError<\/strong> igjithashtu mund t\u00eb ndryshojn\u00eb ve\u00e7mas, dhe me analogji me veprimet e m\u00ebparshme do t\u00eb krijojm\u00eb tre klasa: <strong>PourLoggerBefore<\/strong>, <strong>PourLoggerAfter<\/strong> dhe <strong>PourErrorLogger<\/strong>.<\/p>\n<p><\/p>\n<p>Dhe duke u kujtuar se ka tre operacione p\u00ebr pir\u00ebsit \u2014 arrijm\u00eb n\u00eb n\u00ebnt\u00eb klasa regjistrimi. N\u00eb fund, e gjith\u00eb struktura e pir\u00ebsit p\u00ebrb\u00ebhet nga 14 (!!!) klasa.<\/p>\n<p><\/p>\n<p>Hipoteza? Padysh! Njeriu-majmune me nj\u00eb granat\u00eb dekompozimi do ta coptoj\u00eb \u201cderdh\u00ebsin\u201d n\u00eb nj\u00eb karaf, got\u00eb, operator\u00ebt e derdhjes, sh\u00ebrbimin e ujit, modelin fizik t\u00eb goditjes s\u00eb molekulave dhe n\u00eb kvartalin tjet\u00ebr do t\u00eb p\u00ebrpiqet t\u00eb zgjidh\u00eb var\u00ebsit\u00eb pa variabla globale. Dhe besoni, ai nuk do t\u00eb ndalet.<\/p>\n<p><\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u0435 \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043a \u0432\u044b\u0432\u043e\u0434\u0443, \u0447\u0442\u043e SRP \u2014 \u044d\u0442\u043e \u0441\u043a\u0430\u0437\u043a\u0438 \u0438\u0437 \u0440\u043e\u0437\u043e\u0432\u044b\u0445 \u043a\u043e\u0440\u043e\u043b\u0435\u0432\u0441\u0442\u0432, \u0438 \u0443\u0445\u043e\u0434\u044f\u0442 \u0432\u0438\u0442\u044c \u043b\u0430\u043f\u0448\u0443&#8230;<\/p>\n<p><\/p>\n<p>\u2026 as q\u00eb e din\u00eb p\u00ebr ekzistenc\u00ebn e p\u00ebrkufizimit t\u00eb tret\u00eb t\u00eb Srp: <\/p>\n<p><\/p>\n<p>&#171;\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e <strong>gj\u00ebrat e ngjashme p\u00ebr ndryshim duhet t\u00eb ruhen n\u00eb nj\u00eb vend<\/strong>&#171;. \u0438\u043b\u0438 \u201c<strong>Ajo q\u00eb ndryshon s\u00eb bashku, duhet t\u00eb ruhet n\u00eb nj\u00eb vend<\/strong>\u201d<\/p>\n<p><\/p>\n<p>Do t\u00eb thot\u00eb, n\u00ebse ne e nd\u00ebrojm\u00eb regjistrimin e operacionit, at\u00ebher\u00eb duhet ta ndyshojm\u00eb n\u00eb nj\u00eb vend.<\/p>\n<p><\/p>\n<p>\u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2014 \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0441\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f SRP, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0432\u044b\u0448\u0435, \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0434\u0440\u043e\u0431\u0438\u0442\u044c \u0442\u0438\u043f\u044b, \u043f\u043e\u043a\u0430 \u043e\u043d\u0438 \u0434\u0440\u043e\u0431\u044f\u0442\u0441\u044f, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u043e &#171;\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0440\u0445\u0443&#187; \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u0443\u0436\u0435 \u0438 \u043e\u0431 &#171;\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0438 \u0441\u043d\u0438\u0437\u0443&#187;. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, <strong>SRP \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 &#171;\u0434\u0440\u043e\u0431\u0438\u0442\u044c \u043f\u043e\u043a\u0430 \u0434\u0440\u043e\u0431\u0438\u0442\u0441\u044f&#187;, \u043d\u043e \u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0440\u0430\u0442\u044c\u0441\u044f \u2014 &#171;\u043d\u0435 \u0440\u0430\u0437\u0434\u0440\u043e\u0431\u0438\u0442\u044c \u0441\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0449\u0438&#187;<\/strong>. Ky \u00ebsht\u00eb nj\u00eb betej\u00eb e madhe midis thik\u00ebs s\u00eb Ockham dhe njeriut-majm\u00eb!<\/p>\n<p>\n<img decoding=\"async\" alt=\"Principi i P\u00ebrgjegj\u00ebsis\u00eb s\u00eb Vetme. Nuk \u00ebsht\u00eb aq e thjesht\u00eb sa duket.\" src=\"\/wp-content\/uploads\/2019\/06\/2e349a5b119a511d716341f3f6725844.JPG\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Tani, duhet t\u2019i b\u00ebhet m\u00eb e leht\u00eb alkoolistit. P\u00ebrve\u00e7 faktit q\u00eb nuk duhet t\u00eb ndajm\u00eb logger-in IPourLogger n\u00eb tri klasa, ne gjithashtu mund t\u00eb bashkojm\u00eb t\u00eb gjith\u00eb logger-at n\u00eb nj\u00eb lloj:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">class OperationLogger{\n    public OperationLogger(string operationName){\/*..*\/}\n    public void LogBefore(object[] args){\/*...*\/}\n    public void LogAfter(object[] args){\/*..*\/}\n    public void LogError(object[] args, exception e){\/*..*\/}\n}<\/code><\/pre>\n<p><\/p>\n<p>Dhe n\u00ebse na shtohet nj\u00eb lloj i kat\u00ebrt operacioni, at\u00ebher\u00eb logimi p\u00ebr t\u00eb \u00ebsht\u00eb tashm\u00eb i gatsh\u00ebm. K\u00ebtu, kodet e operacioneve jan\u00eb t\u00eb pastra dhe t\u00eb shkarkuara nga zhurma infrastrukturore.<\/p>\n<p><\/p>\n<p>Si pasoj\u00eb, ne kemi 5 klasa p\u00ebr t\u00eb zgjidhur problemin e alkoolizmit:<\/p>\n<p><\/p>\n<ul>\n<li>Operacioni i derdhjes<\/li>\n<li>Operacioni i alkoolizmit<\/li>\n<li>Operacioni i ngr\u00ebnies<\/li>\n<li>Logger-i<\/li>\n<li>Facade e alkoolizmit<\/li>\n<\/ul>\n<p><\/p>\n<p>\u00c7do nj\u00ebri prej tyre \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr nj\u00eb funksionalitet t\u00eb vet\u00ebm, ka nj\u00eb shkak p\u00ebr ndryshim. T\u00eb gjitha rregullat p\u00ebr ndryshime t\u00eb ngjashme jan\u00eb af\u00ebr nj\u00ebra-tjetr\u00ebs. <\/p>\n<p>\n<b class=\"spoiler_title\">Shembulli nga jeta reale<\/b><\/p>\n<p>Nj\u00eb her\u00eb, ne po shkruanim nj\u00eb sh\u00ebrbim automatik regjistrimi p\u00ebr klient\u00ebt b2b. Dhe iu shfaq nj\u00eb metod\u00eb e quajtur GOD -metoda n\u00eb 200 rreshta t\u00eb k\u00ebtij p\u00ebrmbajtjeje:<\/p>\n<p><\/p>\n<ul>\n<li>Shkoni n\u00eb 1C dhe hapni nj\u00eb llogari<\/li>\n<li>Me k\u00ebt\u00eb llogari, shkoni te moduli i pages\u00ebs dhe hapni atje<\/li>\n<li>Kontrolloni q\u00eb llogaria me k\u00ebt\u00eb llogari nuk \u00ebsht\u00eb krijuar n\u00eb kryesorin <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/server\/dts-dronten\/\"   title=\"serveri\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2485\">serveri<\/a><\/li>\n<li>Krijoni nj\u00eb llogari t\u00eb re<\/li>\n<li>Rezultati i regjistrimit n\u00eb modul\u00ebn e pagesave dhe numri 1c, shto n\u00eb sh\u00ebrbimin e rezultateve t\u00eb regjistrimit.<\/li>\n<li>Shto n\u00eb k\u00ebt\u00eb tabel\u00eb informacionin rreth llogaris\u00eb.<\/li>\n<li>Krijo numrin e pik\u00ebs p\u00ebr k\u00ebt\u00eb klient n\u00eb sh\u00ebrbimin e pikave. D\u00ebrgo n\u00eb k\u00ebt\u00eb sh\u00ebrbim numrin e llogaris\u00eb 1c.<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb list\u00eb kishte edhe rreth 10 operacione biznesi me lidhje t\u00eb ngushta. Objekti i llogaris\u00eb ishte i nevojsh\u00ebm p\u00ebr shumic\u00ebn. Identifikuesi i pik\u00ebs dhe emri i klientit ishin t\u00eb nevojshme n\u00eb gjysm\u00ebn e thirrjeve.<\/p>\n<p><\/p>\n<p>Pas nj\u00eb or\u00eb rifaktorimi, arrit\u00ebm t\u00eb ndajn\u00eb kodin infrastruktural dhe disa nuanca t\u00eb pun\u00ebs me llogarin\u00eb n\u00eb metoda\/classes t\u00eb ve\u00e7anta. Metoda God u leht\u00ebsua, por mbet\u00ebn 100 rreshta kodi q\u00eb nuk donin t\u00eb zgjidhnin. <\/p>\n<p><\/p>\n<p>\u041b\u0438\u0448\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439 \u043f\u0440\u0438\u0448\u043b\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0441\u0443\u0442\u044c \u044d\u0442\u043e\u0433\u043e &#171;\u043f\u043e\u043b\u0435\u0433\u0447\u0430\u0432\u0448\u0435\u0433\u043e&#187; \u043c\u0435\u0442\u043e\u0434\u0430 \u2014 \u0438 \u0435\u0441\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u0418 \u0447\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0422\u0417 \u0431\u044b\u043b\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c. \u0418 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043d\u0430 \u043a\u0443\u0441\u043a\u0438 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u0435\u043c SRP, \u0430 \u043d\u0435 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. <\/p>\n<p><\/p>\n<h2 id=\"formalizm\">Formalizmi.<\/h2>\n<p><\/p>\n<p>Ka ardhur koha ta l\u00ebm\u00eb rehat \u2018njeriun ton\u00eb t\u00eb dehur\u2019. Fshirni lot\u00ebt \u2014 do t\u00eb kthehemi tek ai ndonj\u00ebher\u00eb. Tani, le t\u00eb formalizojm\u00eb njohurit\u00eb nga ky artikull. <\/p>\n<p><\/p>\n<h4 id=\"formalizm-1-opredelenie-srp\">Formalizmi 1. p\u00ebrcaktimi i SRP<\/h4>\n<p><\/p>\n<ol>\n<li>Dajini element\u00ebt n\u00eb m\u00ebnyr\u00eb q\u00eb secili prej tyre t\u00eb jet\u00eb p\u00ebrgjegj\u00ebs p\u00ebr nj\u00eb gj\u00eb t\u00eb vetme.<\/li>\n<li>\u041e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a &#171;\u043f\u043e\u0432\u043e\u0434 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f&#187;. \u0422\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u043c\u0435\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u043e\u0432\u043e\u0434 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0438.<\/li>\n<li>Ndryshime potenciale t\u00eb logjik\u00ebs s\u00eb biznesit duhet t\u00eb lokalizohen. Elementet q\u00eb ndryshojn\u00eb sinonimisht duhet t\u00eb jen\u00eb pran\u00eb nj\u00ebri-tjetrit.<\/li>\n<\/ol>\n<p><\/p>\n<h4 id=\"formalizm-2-neobhodimye-kriterii-samoproverki\">Formalizmi 2. Kritere t\u00eb nevojshme p\u00ebr vet\u00ebkontroll.<\/h4>\n<p><\/p>\n<p>Nuk kam hasur ndonj\u00ebher\u00eb kritere t\u00eb mjaftueshme p\u00ebr realizimin e SRP. Por ka kushte t\u00eb nevojshme:<\/p>\n<p><\/p>\n<p>1) Porosini veten \u2014 \u00e7far\u00eb b\u00ebn ky klas\u00eb\/metod\u00eb\/modul\/sh\u00ebrbim. Duhet t\u00eb p\u00ebrgjigjeni me nj\u00eb p\u00ebrcaktim t\u00eb thjesht\u00eb. (faleminderit <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/brightori\/\" class=\"user_link\">Brightori<\/a><\/noindex> )<\/p>\n<p>\n<b class=\"spoiler_title\">shpjegimet<\/b><\/p>\n<p>Megjithat\u00eb, ndonj\u00ebher\u00eb \u00ebsht\u00eb shum\u00eb e v\u00ebshtir\u00eb t\u00eb gjendet nj\u00eb p\u00ebrcaktim i thjesht\u00eb <\/p>\n<p><\/p>\n<p>2) Rregullimi i ndonj\u00eb defekti ose shtimi i nj\u00eb karakteristike t\u00eb re preku numrin minimal t\u00eb skedar\u00ebve\/klasave. N\u00eb m\u00ebnyr\u00eb ideale \u2014 nj\u00eb. <\/p>\n<p>\n<b class=\"spoiler_title\">shpjegimet<\/b><\/p>\n<p>Meqen\u00ebse p\u00ebrgjegj\u00ebsia (p\u00ebr karakteristik\u00ebn ose defektin) \u00ebsht\u00eb inkapsuluar n\u00eb nj\u00eb skedar\/klas\u00eb, ju e dini sakt\u00ebsisht ku t\u00eb k\u00ebrkoni dhe \u00e7far\u00eb t\u00eb rregulloni. P\u00ebr shembull: karakteristika q\u00eb ndryshon formimin e logaritmit t\u00eb operacioneve do t\u00eb k\u00ebrkoj\u00eb t\u00eb ndryshohet vet\u00ebm regjistruesi. Nuk \u00ebsht\u00eb e nevojshme t\u00eb sh\u00ebtitni n\u00eb t\u00eb gjith\u00eb kodin tjet\u00ebr. <\/p>\n<p><\/p>\n<p>Nj\u00eb shembull tjet\u00ebr \u00ebsht\u00eb shtimi i nj\u00eb kontrolli UI t\u00eb ri, t\u00eb ngjash\u00ebm me t\u00eb m\u00ebparshmit. N\u00ebse kjo ju detyron t\u00eb shtoni 10 entitete t\u00eb ndryshme dhe 15 konvertues t\u00eb ndrysh\u00ebm \u2014 duket se keni \"tepruar\".<\/p>\n<p><\/p>\n<p>3) N\u00ebse disa zhvillues po punojn\u00eb mbi karakteristika t\u00eb ndryshme t\u00eb projektit tuaj, at\u00ebher\u00eb probabiliteti i konflikteve t\u00eb bashkimeve, dometh\u00ebn\u00eb probabiliteti q\u00eb t\u00eb nj\u00ebjtin skedar\/klas\u00eb ta ndryshojn\u00eb disa zhvillues nj\u00ebkoh\u00ebsisht \u2014 \u00ebsht\u00eb minimal.<\/p>\n<p>\n<b class=\"spoiler_title\">shpjegimet<\/b><\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 &#171;\u0412\u044b\u043b\u0438\u0442\u044c \u0432\u043e\u0434\u043a\u0443 \u043f\u043e\u0434 \u0441\u0442\u043e\u043b&#187; \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0449\u0438\u043a, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0432\u044b\u043f\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u044b\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u2014 \u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u044b \u043a\u0440\u0438\u0432\u043e. \u0411\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0442\u0430\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c. <\/p>\n<p><\/p>\n<p>4) Kur b\u00ebni nj\u00eb pyetje sqaruese rreth logjik\u00ebs s\u00eb biznesit (nga zhvilluesi ose menaxheri) ju hyni strikt n\u00eb nj\u00eb klas\u00eb\/skedar dhe merrni informacione vet\u00ebm nga aty.<\/p>\n<p>\n<b class=\"spoiler_title\">shpjegimet<\/b><\/p>\n<p>Ve\u00e7orit\u00eb, rregullat ose algoritmet jan\u00eb shkruar kompakt secila n\u00eb nj\u00eb vend, dhe jo t\u00eb shp\u00ebrndara me flamuj n\u00eb t\u00eb gjith\u00eb hap\u00ebsir\u00ebn e kodit.<\/p>\n<p><\/p>\n<p>5) Em\u00ebrtimi \u00ebsht\u00eb i qart\u00eb.<\/p>\n<p>\n<b class=\"spoiler_title\">shpjegimet<\/b><\/p>\n<p>Klas\u00eb ose metoda jon\u00eb \u00ebsht\u00eb p\u00ebrgjegj\u00ebse p\u00ebr di\u00e7ka t\u00eb vetme, dhe p\u00ebrgjegj\u00ebsia reflektohet n\u00eb emrin e saj.<\/p>\n<p><\/p>\n<p>AllManagersManagerService \u2014 gjasat jan\u00eb se \u00ebsht\u00eb nj\u00eb klas\u00eb e madhe.<br \/>\nLocalPayment \u2014 ndoshta, jo <\/p>\n<p><\/p>\n<h4 id=\"formalizm-3-metodika-razrabotki-okkama-first\">\u0424\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043c 3. \u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 &#171;\u041e\u043a\u043a\u0430\u043c\u0430-first&#187;.<\/h4>\n<p><\/p>\n<p>N\u00eb fillim t\u00eb projektimit, njeriu-majm\u00eb nuk e di dhe nuk e ndien t\u00eb gjitha nuancat e detyr\u00ebs s\u00eb zgjidhur dhe mund t\u00eb b\u00ebj\u00eb gabime. Mund t\u00eb b\u00ebhen gabime n\u00eb m\u00ebnyra t\u00eb ndryshme:<\/p>\n<p><\/p>\n<ul>\n<li>T\u00eb krijoshObjekte shum\u00eb t\u00eb m\u00ebdha, duke bashkuar p\u00ebrgjegj\u00ebsi t\u00eb ndryshme<\/li>\n<li>T\u00eb cop\u00ebtosh, duke ndar\u00eb nj\u00eb p\u00ebrgjegj\u00ebsi t\u00eb vetme n\u00eb shum\u00eb lloje t\u00eb ndryshme<\/li>\n<li>T\u00eb p\u00ebrcaktosh gabimisht kufijt\u00eb e p\u00ebrgjegj\u00ebsis\u00eb<\/li>\n<\/ul>\n<p><\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e: &#171;\u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f \u043b\u0443\u0447\u0448\u0435 \u0432 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443&#187;, \u0438\u043b\u0438 &#171;\u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u044b \u2014 \u043d\u0435 \u0434\u0440\u043e\u0431\u0438\u0442\u0435&#187;. \u0415\u0441\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0430\u0448 \u043a\u043b\u0430\u0441\u0441 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0434\u0432\u0435 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u2014 \u0442\u043e \u043e\u043d \u043f\u043e \u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043f\u043e\u043d\u044f\u0442\u0435\u043d \u0438 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u043b\u0438\u0442\u044c \u043d\u0430 \u0434\u0432\u0430 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0436\u0435 \u0438\u0437 \u043e\u0441\u043a\u043e\u043b\u043a\u043e\u0432 \u0441\u0442\u0435\u043a\u043b\u0430 \u0441\u0442\u0430\u043a\u0430\u043d, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043c\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0444\u0430\u0439\u043b\u0430\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u043a\u043e\u0434\u0435. <\/p>\n<p><\/p>\n<h2 id=\"pora-zakruglyatsya\">\u00cbsht\u00eb koha t\u00eb mbyllim<\/h2>\n<p><\/p>\n<p>Fusha e p\u00ebrdorimit t\u00eb SRP-s\u00eb nuk kufizohet vet\u00ebm n\u00eb OOP dhe SOLID. Ai \u00ebsht\u00eb i aplikuesh\u00ebm p\u00ebr metoda, funksione, klasa, module, mikrosh\u00ebrbime dhe sh\u00ebrbime. Ai \u00ebsht\u00eb i p\u00ebrshtatsh\u00ebm p\u00ebr zhvillim si t\u00eb \"figaks-figaks-dhe-n\u00eb-prodhim\", ashtu edhe p\u00ebr \"roketsains\" duke b\u00ebr\u00eb bot\u00ebn pak m\u00eb t\u00eb mir\u00eb n\u00eb \u00e7do rast. N\u00ebse e mendojm\u00eb mir\u00eb, kjo \u00ebsht\u00eb nj\u00eb nga parimet m\u00eb themelore t\u00eb inxhinieris\u00eb. Inxhinieria mekanike, sistemet e kontrollit dhe gjithashtu t\u00eb gjitha sistemet komplekse nd\u00ebrtohen nga komponente, dhe \"nenndashja\" privon nd\u00ebrtuesit nga fleksibiliteti, \"mbik\u00ebqyrja\" nga efikasiteti, dhe kufijt\u00eb e gabuar nga arsyetimi dhe qet\u00ebsia shpirt\u00ebrore. <\/p>\n<p>\n<img decoding=\"async\" alt=\"Principi i P\u00ebrgjegj\u00ebsis\u00eb s\u00eb Vetme. Nuk \u00ebsht\u00eb aq e thjesht\u00eb sa duket.\" src=\"\/wp-content\/uploads\/2019\/06\/b70fb2b0b87cf90d41462263e839902b.JPG\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>SRP nuk \u00ebsht\u00eb shpikje e natyr\u00ebs dhe nuk \u00ebsht\u00eb pjes\u00eb e shkenc\u00ebs ekzakte. Ai del nga kufizimet tona biologjike dhe psikologjike. \u00cbsht\u00eb thjesht nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb kontrolluar dhe zhvilluar sisteme kompleks nga truri i njeriut-majm\u00eb. Ai na tregon se si t\u00eb dekompozojm\u00eb nj\u00eb sistem. Formulimi fillestar k\u00ebrkonte shkatht\u00ebsi bastante n\u00eb telepatin\u00eb, por shpresoj se ky artikull e ka hequr disi mjegull\u00ebn.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/454290\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Single responsibility principle, \u043e\u043d \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043e\u043d \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u2014 \u043a\u0440\u0430\u0439\u043d\u0435 \u0441\u043a\u043e\u043b\u044c\u0437\u043a\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0435\u043d\u044c \u0438 \u0441\u0442\u043e\u043b\u044c \u043d\u0435\u0440\u0432\u043e\u0437\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430. \u041f\u0435\u0440\u0432\u043e\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u043b\u043e\u0434\u044b\u0445 \u0438 \u0437\u0435\u043b\u0435\u043d\u044b\u0445 \u043d\u0430\u0441 \u0432\u044b\u0432\u0435\u0437\u043b\u0438 \u0432 \u043b\u0435\u0441, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 \u043b\u0438\u0447\u0438\u043d\u043e\u043a \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u2014 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26229,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-34828","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Single responsibility principle, \u043e\u043d \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043e\u043d \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u2014 \u043a\u0440\u0430\u0439\u043d\u0435 \u0441\u043a\u043e\u043b\u044c\u0437\u043a\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0435\u043d\u044c \u0438 \u0441\u0442\u043e\u043b\u044c \u043d\u0435\u0440\u0432\u043e\u0437\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430. \u041f\u0435\u0440\u0432\u043e\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u043b\u043e\u0434\u044b\u0445 \u0438 \u0437\u0435\u043b\u0435\u043d\u044b\u0445 \u043d\u0430\u0441 \u0432\u044b\u0432\u0435\u0437\u043b\u0438 \u0432 \u043b\u0435\u0441, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 \u043b\u0438\u0447\u0438\u043d\u043e\u043a \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u2014 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445.\" \/>\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\/novosti-interneta\/single-responsibility-principle-ne-takoj-prostoj-kak-kazhetsya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.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\udd47Single Responsibility Principle. \u041d\u0435 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043a\u0430\u043a \u043a\u0430\u0436\u0435\u0442\u0441\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Single responsibility principle, \u043e\u043d \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043e\u043d \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u2014 \u043a\u0440\u0430\u0439\u043d\u0435 \u0441\u043a\u043e\u043b\u044c\u0437\u043a\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0435\u043d\u044c \u0438 \u0441\u0442\u043e\u043b\u044c \u043d\u0435\u0440\u0432\u043e\u0437\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430. \u041f\u0435\u0440\u0432\u043e\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u043b\u043e\u0434\u044b\u0445 \u0438 \u0437\u0435\u043b\u0435\u043d\u044b\u0445 \u043d\u0430\u0441 \u0432\u044b\u0432\u0435\u0437\u043b\u0438 \u0432 \u043b\u0435\u0441, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 \u043b\u0438\u0447\u0438\u043d\u043e\u043a \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u2014 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/single-responsibility-principle-ne-takoj-prostoj-kak-kazhetsya\" \/>\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:00:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:00:38+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\udd47Parimi i P\u00ebrgjegj\u00ebsis\u00eb s\u00eb Vetme. Nuk \u00ebsht\u00eb aq i thjesht\u00eb sa duket | ProHoster","description":"Parimi i p\u00ebrgjegj\u00ebsis\u00eb, i njohur gjithashtu si parimi i p\u00ebrgjegj\u00ebsis\u00eb s\u00eb nj\u00ebhershme, \u00ebsht\u00eb nj\u00eb tem\u00eb shum\u00eb e diskutueshme dhe e v\u00ebshtir\u00eb p\u00ebr t'u kuptuar, duke e b\u00ebr\u00eb at\u00eb nj\u00eb pyetje shpesh delikate n\u00eb intervistat p\u00ebr pun\u00eb p\u00ebr programuesit. Takimi im i par\u00eb serioz me k\u00ebt\u00eb parim ndodhi n\u00eb fillim t\u00eb vitit t\u00eb par\u00eb, kur na nxorr\u00ebn n\u00eb pyll p\u00ebr t\u00eb transformuar larvat e student\u00ebve n\u00eb student\u00eb t\u00eb v\u00ebrtet\u00eb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/single-responsibility-principle-ne-takoj-prostoj-kak-kazhetsya","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\udd47Single Responsibility Principle. \u041d\u0435 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043a\u0430\u043a \u043a\u0430\u0436\u0435\u0442\u0441\u044f | ProHoster","og:description":"Single responsibility principle, \u043e\u043d \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043e\u043d \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0434\u0438\u043d\u043e\u0439 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u2014 \u043a\u0440\u0430\u0439\u043d\u0435 \u0441\u043a\u043e\u043b\u044c\u0437\u043a\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0435\u043d\u044c \u0438 \u0441\u0442\u043e\u043b\u044c \u043d\u0435\u0440\u0432\u043e\u0437\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430. \u041f\u0435\u0440\u0432\u043e\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u043b\u043e\u0434\u044b\u0445 \u0438 \u0437\u0435\u043b\u0435\u043d\u044b\u0445 \u043d\u0430\u0441 \u0432\u044b\u0432\u0435\u0437\u043b\u0438 \u0432 \u043b\u0435\u0441, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 \u043b\u0438\u0447\u0438\u043d\u043e\u043a \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u2014 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445.","og:url":"https:\/\/prohoster.info\/sq\/blog\/novosti-interneta\/single-responsibility-principle-ne-takoj-prostoj-kak-kazhetsya","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:00:38+00:00","article:modified_time":"2019-10-31T19:00:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34828","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-02-09 21:46:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:14:06","updated":"2026-02-09 21:46:19","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\/34828","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=34828"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/34828\/revisions"}],"predecessor-version":[{"id":159767,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/34828\/revisions\/159767"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/26229"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=34828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=34828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=34828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}