{"id":229100,"date":"2022-11-06T18:43:00","date_gmt":"2022-11-06T15:43:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229100"},"modified":"2022-11-09T05:32:12","modified_gmt":"2022-11-09T02:32:12","slug":"projekti-kaitsepiirded-keskkondade-loomine","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/projekti-kaitsepiirded-keskkondade-loomine\/","title":{"rendered":"Projekti kaitsepiirded: keskkondade loomine"},"content":{"rendered":"\n<p>See l\u00fchikeste artiklite seeria koosneb m\u00f5nest asjast, mida olen \u00f5ppinud viimastel aastatel meie piirkonnas p\u00f5hinevate projektide l\u00e4biviimisel (eeldusel, et loete seda samast valdkonna osast, mida mina teen \ud83d\ude42) t\u00f6\u00f6d.<\/p>\n<p>Kui te lihtsalt komistate selle otsa, h\u00f5lmab seeria m\u00f5ningaid <a href=\"https:\/\/tommcfarlin.com\/tag\/open-source-project-management\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">projekti jaoks olulisi<\/a> tegureid :<\/p>\n<ol>\n<li>Ei tohiks olla &quot; <a href=\"https:\/\/wordpress.mediadoma.com\/et\/projekti-kaitsepiirded-komitee-kavandamine\/\" title=\"komisjoni kavandamist\">komisjoni kavandamist&#8221;.<\/a> &#8220;<\/li>\n<li>Mitte keegi teine, kelle arendustegevuse p\u00f5himeeskond peaks suutma arendust, lavastust ja tootmist pakkuda.<\/li>\n<li>Tootmisse ei tohiks kirjutada keegi peale arendusmeeskonna (ja isegi siis peaks olema juurutamisprotsess).<\/li>\n<\/ol>\n<p>Mulle ei meeldi selliste karmide ja kiirete reeglite kehtestamine nimelt seet\u00f5ttu, et asjad muutuvad ajas kas vajaduse v\u00f5i suurema kogemuse t\u00f5ttu. See on p\u00f5hjus, miks mulle meeldivad &quot;juhised&quot;.<\/p>\n<p>Kuid selle kirjutamise ajal on need asjad, mida ma n\u00e4en m\u00e4ngimas.<\/p>\n<h2>Keskkondade pakkumine<\/h2>\n<p>Viimase paari aasta jooksul oleme teinud palju edusamme selles osas, kui kiiresti suudame oma s\u00fcsteeme luua nii, et need k\u00f5ik peegeldaksid \u00fcksteist (v\u00f5i \u00fcldiselt). See h\u00f5lmab meie arenduskaste, seda, kuidas meie kohalikud masinad peegeldavad lavastust ja kuidas lavastus peegeldab tootmist.<\/p>\n<p>Enam-v\u00e4hem uue keskkonna loomine. Rullige sellega.<\/p>\n<p>See t\u00e4hendab, et see &quot;t\u00f6\u00f6tab minu masinas&quot; peaks tegelikult t\u00f5si olema. Ei ole vabandus, miks ei saa viga paljundada.<\/p>\n<p>Ja kui see on t\u00f5si, on see t\u00f5en\u00e4oliselt t\u00f5si ka teiste masinate, lavastuse ja tootmise puhul. Ja see on tore, eks? See t\u00e4hendab, et me keerutame oma kaste, juurutame oma skripte v\u00f5i teeme seda, mida teeme, ja siis on meil vajalik seadistus.<\/p>\n<p>Mida siis t\u00e4hendab keskkondade varustamine? See s\u00f5ltub sellest, millisele keskkonnale viitate.<\/p>\n<h3>Kuidas see tegelikult v\u00e4lja n\u00e4eb?<\/h3>\n<p>Kui t\u00f6\u00f6tate WordPressis, mida ma eeldan, et seda loete, eeldab see, et kasutate v\u00e4hemalt veebiserverit, andmebaasi ja PHP-d.<\/p>\n<p>Arenduskeskkond v\u00f5ib v\u00e4lja n\u00e4ha j\u00e4rgmine:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.apache.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/www.nginx.com\/resources\/wiki\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Nginxi<\/a> <a href=\"https:\/\/www.apache.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">apache<\/a>, _<\/li>\n<li>MySQL, mis on k\u00f5ige levinum,<\/li>\n<li>V\u00e4hemalt PHP 5.2.4 (soovitatav PHP 7.1),<\/li>\n<li>V\u00f5i midagi v\u00f5rreldavat.<\/li>\n<\/ul>\n<p>V\u00f5ite kasutada ka midagi nagu <a href=\"https:\/\/tommcfarlin.com\/laravel-valet-for-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Valet<\/a> v\u00f5i midagi nagu <a href=\"https:\/\/github.com\/Varying-Vagrant-Vagrants\/VVV\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VVV<\/a>. K\u00f5ik s\u00f5ltub teie t\u00f6\u00f6 iseloomust.<\/p>\n<p><a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Lisaks v\u00f5ib teie ettev\u00f5tte olemusest olenevalt teatud reeglite j\u00f5ustamiseks<\/a> olla teile m\u00e4\u00e4ratud IDE koos erinevate konfiguratsioonifailidega .<\/p>\n<h3>Ja \u00fclej\u00e4\u00e4nud keskkonnad?<\/h3>\n<p>Nagu tavaliselt:<\/p>\n<ul>\n<li>arendus viitab seadistusele teie kohalikus masinas,<\/li>\n<li>lavastus viitab valdkonnale, kus teie ja sidusr\u00fchmad saate testida,<\/li>\n<li>ja tootmine on koht, kus rakendus asub.<\/li>\n<\/ul>\n<p>Kuid see n\u00e4eb v\u00e4lja ka erinev olenevalt sellest, kus te t\u00f6\u00f6tate, kuidas teie t\u00f6\u00f6 on korraldatud ja nii edasi. Asi pole niiv\u00f5rd selles, kuidas seda kasutatakse, vaid selles, et seda kasutatakse.<\/p>\n<h4>Lavastus<\/h4>\n<p>See on tavaliselt ette n\u00e4htud serveris (v\u00f5i serverite r\u00fchmas, olenevalt projekti suurusest), kuhu saate testimiseks juurutada oma uusima koodi. See v\u00f5ib h\u00f5lmata osalist funktsionaalsust, testandmeid ja ainult tootmisest p\u00e4rineva teabe alamhulka (kui otsustate selle teabe, nimelt andmebaasi tootmiskeskkonnast t\u00f5mmata).<\/p>\n<p>See annab teile ja teistele sidusr\u00fchmadele v\u00f5imaluse vaadata, mis toimub ja kuidas see tootmises toimib, ilma et peaksite kartma millegi tundliku h\u00e4vitamise p\u00e4rast.<\/p>\n<p>Kood juurutatakse tavaliselt teie Giti hoidlast (kui te seda kasutate) harust, tavaliselt p\u00f5hivarast. Ja selliseid t\u00f6\u00f6riistu nagu <a href=\"https:\/\/deploybot.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">DeployBot<\/a>, <a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CircleCI<\/a>, <a href=\"https:\/\/travis-ci.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Travis CI<\/a>, <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a>, <a href=\"http:\/\/behat.org\/en\/latest\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Behat<\/a> jne kasutatakse ka nii koodi kvaliteedi hindamiseks, automaattestide k\u00e4ivitamiseks kui ka l\u00f5puks koodi juurutamiseks.<\/p>\n<p>L\u00f5puks luuakse iga keskkond nii, et neid saab kiiresti peegeldada kohalikes masinates, lavastusserverites ja tootmisserverites. Lisaks peaks olema lihtne andmeid nende vahel l\u00fckata ja t\u00f5mmata, et andmetega t\u00f6\u00f6tamine oleks lihtne.<\/p>\n<h4>Tootmine<\/h4>\n<p>L\u00f5puks seisneb tootmine tegelikult toimivas projektis; See t\u00e4hendab, et selle server, rakendus ja andmebaas t\u00f6\u00f6tavad koos ja kasutajad kasutavad seda.<\/p>\n<p>See t\u00e4hendab ka seda, et kood on stabiilses kohas. T\u00f5en\u00e4oliselt on olemas logimismehhanismid, mis teavitavad arendusmeeskonda k\u00f5igist probleemidest. Selles keskkonnas ei tohiks koodi muuta ilma, et see oleks eelnevalt l\u00e4binud kvaliteedikontrolli v\u00f5i lavastuse.<\/p>\n<h3>Ja protsessid paigas?<\/h3>\n<p>Olgu, oletame, et t\u00f6\u00f6tate parema termini puudumisel traditsioonilise seadistusega, kus k\u00f5ik teie juurutused tehakse S\/FTP kaudu tootmiskeskkonda (v\u00f5i isegi lavastuskeskkonda). Nii saavad kasutajad faile alla t\u00f5mmata, muudatusi teha ja \u00fcles t\u00f5sta.<\/p>\n<p>See pole hea.<\/p>\n<p>See t\u00e4hendab, et iga\u00fcks, kellel on mandaadid, saab sisse logida, muudatusi teha ja allika juhtimisest, pidevast integreerimisest, kvaliteedi tagamise t\u00f6\u00f6riistadest jne m\u00f6\u00f6da minna ning teha mis tahes muudatusi.<\/p>\n<p>See \u00f5\u00f5nestab k\u00f5iki k\u00e4ivitatud protsesse. See mitte ainult ei l\u00e4he m\u00f6\u00f6da standardprotseduurist (mis on loomulikult paigas), vaid l\u00f5hub arendaja v\u00f5i arendajate meeskonna masinates oleva koodi peamiselt seet\u00f5ttu, et tootmises olev ei ole enam s\u00fcnkroonis koodi hoidla.<\/p>\n<p>Lisaks v\u00f5ib seda koodi levitada filiaalide vahel, mis on veel \u00fchendamata v\u00f5i kasutusele v\u00f5tmata. See j\u00e4tab meile mitmesuguseid olukordi, kus arendajad ja kliendid on rikkunud osa ehitusprotsessist ja seega kogu projektist.<\/p>\n<p>Kui on aeg tootmist kontrollida, on see arenduse ja lavastusega s\u00fcnkroonist v\u00e4ljas ning keegi ei tea, miks. Kui tuleb kasutuselev\u00f5tu aeg, kirjutatakse muudatused \u00fcle ja vastutavad isikud on kaotanud selle, mida nad arvasid n\u00e4gevat.<\/p>\n<h3>Mida peab meeskond tegema?<\/h3>\n<p>Ma ei tea, kas sellele on \u00fcks \u00f5ige vastus, aga mida kauem ma selles valdkonnas t\u00f6\u00f6tan, seda enam usun, et kliendile lahenduse loomise eest vastutav ettev\u00f5te \u2013 v\u00f5i ettev\u00f5tted \u2013 peaksid omama protsessi l\u00f5ppu kontrolli all. l\u00f5petama.<\/p>\n<ul>\n<li>Disainerid vastutavad oma valdkondade haldamise eest kontseptsioonide loomisel, pilkudel, demomallide loomisel ja tagasiside k\u00fcsimisel,<\/li>\n<li>Projektijuhid vastutavad osakondadega suhtlemise eest,<\/li>\n<li>Arendajad vastutavad lahenduse juurutamise ja disainerite t\u00f6\u00f6 sidumise eest funktsionaalse taustaga,<\/li>\n<li>Klient vastutab muudatuste \u00fclevaatamise, tagasiside andmise ja muu \u00fclesande t\u00e4itmiseks vajaliku teabe edastamise eest.<\/li>\n<\/ul>\n<p>See t\u00e4hendab, et kui r\u00e4\u00e4kida domeeni seadistamisest, hostimisest, keskkondadest, versioonikontrollist, ehitusprotsessist ja pidevast integreerimisest ning k\u00f5igest muust, mida olen mainimata j\u00e4tnud, siis see j\u00e4\u00e4b otseselt arendusmeeskonna kanda.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166423-61e793a807c63.jpg\" 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-166423-61e793a807c63.jpg\" alt=\"Projekti kaitsepiirded: keskkondade loomine\" ><\/a><\/p>\n<p>P\u00fcsige kaevikutes, p\u00fcsige sihtm\u00e4rgil (kuid olge t\u00e4helepanelik \u00fcmbritsevate suhtes).<\/p>\n<p>Lihtsamalt \u00f6eldes ei ole need kliendi kohustused ega peaks olema. Vastutuspiirid tuleks seada, neid s\u00e4ilitada ja austada k\u00f5igis meeskondades \u2013 mitte ainult arendajate ja klientide v\u00f5i klientide ja disainerite v\u00f5i disainerite ja arendajate ja nii edasi.<\/p>\n<h2>Mis j\u00e4rgmiseks?<\/h2>\n<p>J\u00e4rgmises postituses r\u00e4\u00e4gin vastutusest, mis on arendajatel (ja teistel sidusr\u00fchmadel) koodi keskkondade hooldamisel.<\/p>\n<p>See t\u00e4hendab, kes peaks mille eest vastutama ja kellel on juurdep\u00e4\u00e4s milliste andmete lugemiseks ja kirjutamiseks ning kuidas see v\u00f5ib l\u00f5ppkokkuv\u00f5ttes projekti tulemust m\u00f5jutada.<\/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>Mida t\u00e4hendab keskkondade ettevalmistamine? See s\u00f5ltub t\u00f5esti sellest, millisest keskkonnast te r\u00e4\u00e4gite, nii et vaatame iga\u00fcks neist.<\/p>\n","protected":false},"author":1,"featured_media":166424,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,749],"tags":[1165],"class_list":["post-229100","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-avatud-laehtekoodiga","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229100","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=229100"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229100\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/166424"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=229100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=229100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=229100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}