{"id":230021,"date":"2022-11-30T19:41:00","date_gmt":"2022-11-30T16:41:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230021"},"modified":"2022-11-09T19:44:39","modified_gmt":"2022-11-09T16:44:39","slug":"objektorienteeritud-viis-mudelite-ja-veebirakendustega-toeoetamiseks","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/objektorienteeritud-viis-mudelite-ja-veebirakendustega-toeoetamiseks\/","title":{"rendered":"Objektorienteeritud viis mudelite ja veebirakendustega t\u00f6\u00f6tamiseks"},"content":{"rendered":"\n<p>Kui r\u00e4\u00e4gime mudelite kontseptsioonist objektorienteeritud programmeerimises, peame tavaliselt silmas klassi, mis on andmebaasis salvestatud andmete esitus.<\/p>\n<p>See t\u00e4hendab, et kui teavet salvestatakse ridadesse ja veergudesse, t\u00e4idame selle teabega klassi, selle atribuudid ja nii edasi, et saaksime seda rakenduses edastada, seda vastavalt vajadusele manipuleerida ja seej\u00e4rel v\u00f5imaluse korral j\u00e4rjestada andmed tagasi andmebaasi.<\/p>\n<p>Kuid veebirakenduses on \u00f5iglane eeldada, et mudeli kasutamiseks v\u00f5ib olla vajalik esiotsa v\u00f5imalus. See t\u00e4hendab, kujutage ette, et esiotsa p\u00e4ring helistab serverile, taotleb mudelit (v\u00f5i mudelite kogumit) ja renderdab need seej\u00e4rel esiotsas.<\/p>\n<p>Kuigi see konkreetne postitus ei ole koodile orienteeritud, arvan siiski, et tasub m\u00f5elda l\u00e4bi mudeli serverist t\u00f5lkimise ja seej\u00e4rel veebirakenduse esiotsa renderdamise.<\/p>\n<h2>Mudelite ja veebirakendustega t\u00f6\u00f6tamine<\/h2>\n<p>Kujutage korraks ette, et teie rakendusel on t\u00f6\u00f6taja mudel. See mudel v\u00f5ib sisaldada mitmesuguseid atribuute, kuid v\u00f5ib eeldada, et k\u00f5igil t\u00f6\u00f6tajatel on:<\/p>\n<ul>\n<li>eesnimi,<\/li>\n<li>perekonnanimi,<\/li>\n<li>t\u00f6\u00f6taja ID,<\/li>\n<li>ja meiliaadress<\/li>\n<\/ul>\n<p>See, kuidas seda teavet andmebaasis salvestatakse, ei ole t\u00e4iesti ebaoluline, kuid see pole selle arutelu jaoks nii oluline.<\/p>\n<p>N\u00e4iteks v\u00f5ib-olla on \u00fcks kirje, mis sisaldab kogu seda teavet, mis on salvestatud JSON-stringi. Teisest k\u00fcljest v\u00f5ib-olla on olemas t\u00f6\u00f6tajate tabel, kus iga rida t\u00e4histab t\u00f6\u00f6tajat ja seej\u00e4rel iga veerg atribuuti.<\/p>\n<p>\u00dcksikasjad selle kohta, kuidas teave andmebaasist (v\u00f5i \u00fcldisemalt andmesalvest) klassi t\u00f5lgitakse, ei ole nii olulised.<\/p>\n<p>Tavaliselt n\u00e4eme aga midagi sellist:<\/p>\n<ol>\n<li>Seal on klass, kes k\u00fcsib teavet,<\/li>\n<li>Teave edastatakse <strong>lihtsale tehasele<\/strong> ,<\/li>\n<li>Lihtne <strong>tehas<\/strong> loob <strong>mudeli<\/strong> ,<\/li>\n<li>Seej\u00e4rel antakse <strong>mudel<\/strong> edasi seda taotlenud kolmanda osapoole klassile.<\/li>\n<\/ol>\n<p>Pildilisest vaatenurgast v\u00f5ite seda vaadata j\u00e4rgmiselt:<\/p>\n<p>Sellest hetkest edastatakse <strong>mudel<\/strong> kogu rakenduses. Kuid siin tuleb m\u00e4ngu selle postituse alguspunkt: kuidas edastada <strong>mudeli<\/strong> eksemplar (v\u00f5i <strong>mudelite<\/strong> kogu) rakenduse esiotsa?<\/p>\n<h2>Veebirakenduse voog<\/h2>\n<p>Lihtsuse huvides oletame, et hakkame kasutama \u00fchte mudelit ja kui ma peaksin seda kontseptsiooni koodi seisukohast uuesti \u00fcle vaatama, siis saame natuke rohkem sukelduda.<\/p>\n<p>Veebirakenduse \u00fcldine voog on aga umbes selline:<\/p>\n<ol>\n<li>Kasutaja k\u00e4ivitab toimingu, mis taotleb mudeli eksemplari,<\/li>\n<li>Esiots teeb k\u00f5ne serveri l\u00f5pp-punktile,<\/li>\n<li>Server loeb p\u00e4ringuid ja kontrollib nende \u00f5igsust,<\/li>\n<li>Seej\u00e4rel saadab esiotsa mudeli esituse.<\/li>\n<\/ol>\n<p>Teised arendajad v\u00f5ivad sellega eriarvamusele j\u00e4\u00e4da (mis on minu arvates alati teretulnud ja arutelu v\u00e4\u00e4rt), kuid olen avastanud, et mudeli eksemplari j\u00e4rjestamine JSON-i muudab esiotsa t\u00f6\u00f6tamise palju lihtsamaks, kuna see on JavaScripti funktsionaalsus. on seotud JSON-iga.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163595-61e75570192c9.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163595-61e75570192c9.png\" alt=\"Objektorienteeritud viis mudelite ja veebirakendustega t\u00f6\u00f6tamiseks\" ><\/a><\/p>\n<p>Teisis\u00f5nu:<\/p>\n<ol>\n<li>v\u00f5tame mudeli,<\/li>\n<li>jada see JSON-i,<\/li>\n<li>saatke see \u00fcle juhtme,<\/li>\n<li>seej\u00e4rel deserialiseerige see esiotsas enda JavaScripti esituseks.<\/li>\n<\/ol>\n<p>See v\u00f5imaldab meil sellega manipuleerida samamoodi nagu serveri poolel; aga meil on tegemist JavaScripti objektiga. Lisaks v\u00f5imaldab see meil teha ka teatud muudatusi ja saata teabe serverisse tagasi teises olekus, kust see saadeti.<\/p>\n<p>L\u00f5ppkokkuv\u00f5ttes v\u00f5imaldab see meil andmed andmebaasi tagasi salvestada.<\/p>\n<h2>K\u00f5rgetasemeline perspektiiv<\/h2>\n<p>Ja see on k\u00f5rgetasemeline eluts\u00fckkel, mis h\u00f5lmab teabe edastamist andmebaasist mudelisse esiotsa ja tagasi.<\/p>\n<p>Sageli on aga abi sellest, kui seda koodis n\u00e4ha, nii et v\u00f5ib-olla annan m\u00f5nes tulevases postituses rea artikleid, mis kirjeldavad, kuidas seda teha.<\/p>\n<p>Vahepeal ei tohiks aga olla keeruline t\u00f5lkida oma teostused t\u00f6\u00f6voogu Model-Serialization-Request-Send, nagu on kirjeldatud selles postituses.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f5istmine, kuidas m\u00f5elda l\u00e4bi serveripoolsete mudelite ja veebirakendustega t\u00f6\u00f6tamise protsessi mudelite, tehaste ja muu kaudu.<\/p>\n","protected":false},"author":1,"featured_media":224094,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,729],"tags":[1165],"class_list":["post-230021","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-javascript-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=230021"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230021\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/224094"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=230021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=230021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=230021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}