{"id":228932,"date":"2022-11-07T13:54:00","date_gmt":"2022-11-07T10:54:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228932"},"modified":"2022-11-09T04:51:11","modified_gmt":"2022-11-09T01:51:11","slug":"project-guardrails-writing-to-production","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/project-guardrails-writing-to-production\/","title":{"rendered":"Project Guardrails: Writing to Production"},"content":{"rendered":"\n<p>I de senaste artiklarna har jag pratat om ett par saker (sparade f\u00f6r att faktiskt skriva till produktion) som hj\u00e4lper till att driva ett framg\u00e5ngsrikt projekt:<\/p>\n<ol>\n<li>Farorna med &quot; <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/project-guardrails-design-by-committee\/\" title=\"design av kommitt\u00e9\" >design av kommitt\u00e9<\/a> &quot;,<\/li>\n<li>\u00d6verv\u00e4ganden f\u00f6r att <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/project-guardrails-provisioning-environments\/\" title=\"tillhandah\u00e5lla en milj\u00f6\" >tillhandah\u00e5lla en milj\u00f6<\/a>.<\/li>\n<\/ol>\n<p>Det sista jag vill ta upp det l\u00e4rande jag har upplevt hittills handlar om att beh\u00e5lla de \u00f6k\u00e4nda nycklarna till skrivandets rike till produktion och varf\u00f6r det \u00e4r viktigt.<\/p>\n<h2>Skriva till produktion<\/h2>\n<p>Tanken p\u00e5 att skriva till produktion kan tyckas vara det mest dogmatiska skyddsr\u00e4cket av de n\u00e4mnda eftersom det vanligtvis \u00e4r okej f\u00f6r dem som bygger l\u00f6sningen och de vet hur det fungerar.<\/p>\n<p>De andra intressenterna g\u00f6r det sannolikt inte (men om de g\u00f6r det och utvecklingsteamet \u00e4r okej med att de andra anv\u00e4nder versionskontroll f\u00f6r att hantera detta, s\u00e5 k\u00f6r p\u00e5 det).<\/p>\n<p>Vem har tillst\u00e5nd att administrera det h\u00e4r egentligen?<\/p>\n<p>Kom dock ih\u00e5g, som n\u00e4mnts <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/project-guardrails-provisioning-environments\/\" title=\"tidigare i den h\u00e4r serien\" >tidigare i den h\u00e4r serien<\/a>, s\u00e4ttet p\u00e5 vilket vi distribuerar v\u00e5ra projekt har f\u00f6r\u00e4ndrats nu s\u00e5 att vi ofta har kontinuerlig drifts\u00e4ttning och kontinuerlig integration.<\/p>\n<p>Och ofta \u00e4r dessa tj\u00e4nster anslutna till ett k\u00e4llkodsf\u00f6rr\u00e5d, s\u00e5som <a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub<\/a>, och ett meddelandesystem (som i sin tur kan vara anslutet till <a href=\"https:\/\/tommcfarlin.com\/business-foundations\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Slack<\/a> vilket jag tycker \u00e4r anv\u00e4ndbart).<\/p>\n<p>S\u00e5 att folk i teamet \u00e4r medvetna om vad som har distribuerats och n\u00e4r och de vet hur de ska h\u00e4mta koden (som \u00e4r fr\u00e5n f\u00f6rvaret, inte fr\u00e5n att ladda ner den via S\/FTP) om det beh\u00f6vs.<\/p>\n<p>N\u00e4r en snabbkorrigering beh\u00f6vs b\u00f6r det fortfarande finnas en procedur p\u00e5 plats. Kanske har n\u00e5gon jour, och det finns en process d\u00e4r f\u00f6rgrening, sammanslagning, taggning och <a href=\"http:\/\/semver.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">semantisk versionering<\/a> anv\u00e4nds.<\/p>\n<p>Oavsett s\u00e5 handlar det inte s\u00e5 mycket om hur processen fungerar; det \u00e4r att det \u00e4r p\u00e5 plats och att det f\u00f6ljs.<\/p>\n<p>Naturligtvis \u00e4r dessa saker inte inr\u00e4ttade f\u00f6r att g\u00f6ra utvecklingen mer komplicerad (\u00e4ven om jag f\u00f6rst\u00e5r hur det kan verka s\u00e5). Det \u00e4r tv\u00e4rtom. Det \u00e4r av en m\u00e4ngd olika anledningar:<\/p>\n<ul>\n<li>f\u00f6r att h\u00e5lla kontinuerlig drifts\u00e4ttning, du vet, kontinuerlig,<\/li>\n<li>att ha integrerade tester,<\/li>\n<li>att kontinuerligt m\u00e4ta kodningsstandarder eller kodkvalitet,<\/li>\n<li>f\u00f6r att f\u00f6rhindra cowboykodning,<\/li>\n<li>och mer.<\/li>\n<\/ul>\n<p>Det handlar inte s\u00e5 mycket om att h\u00e5lla andra m\u00e4nniskor utanf\u00f6r, men om det \u00e4r utvecklarnas ansvar att pusha kod, borde d\u00e5 verkligen n\u00e5gon annan ha skriv\u00e5tkomst till servern?<\/p>\n<p>Och det \u00e4r slutsatsen: Om du arbetar i ett team d\u00e4r de processer du har p\u00e5 plats helt kan undergr\u00e4va det arbete du g\u00f6r, vad \u00e4r d\u00e5 syftet med processen?<\/p>\n<p>F\u00f6r n\u00e4r som helst kan n\u00e5gon annan komma och detta bortse fr\u00e5n allt du har gjort. Du \u00e4r d\u00e5 \u00e5tminstone:<\/p>\n<ul>\n<li>fastnat med att beh\u00f6va dra sina \u00e4ndringar troligen via S\/FTP,<\/li>\n<li>j\u00e4mf\u00f6r det med ett diff-verktyg mot en gren som n\u00e5gon arbetar p\u00e5,<\/li>\n<li>implementera \u00e4ndringarna (l\u00e5t oss ta reda p\u00e5 varf\u00f6r de gjordes),<\/li>\n<li>och sedan \u00e5terg\u00e5 till arbetet med kraven.<\/li>\n<\/ul>\n<p>Det l\u00e5ter hektiskt n\u00e4r man uttrycker det s\u00e5, men det \u00e4r precis vad som h\u00e4nder.<\/p>\n<h2>Takeaway<\/h2>\n<p>S\u00e5 vad \u00e4r hela syftet med de senaste inl\u00e4ggen? Om jag m\u00e5ste sammanfatta det s\u00e5 kortfattat som m\u00f6jligt \u00e4r det:<\/p>\n<p>N\u00e4r det kommer till ett projekt, k\u00e4nna till ditt ansvar och g\u00e5 inte utanf\u00f6r dem. Annars riskerar du att sp\u00e5ra ur hela grejen.<\/p>\n<p>Detta g\u00e4ller utvecklare, designers, uppdragsgivare, marknadsf\u00f6rare, projektledare etc. Hur rollerna \u00e4r utsedda, vet inte s\u00e5 mycket spelar roll (jag menar, det brukar vara tydligt vem som ska vara vem i rollerna ovan) men jag menar m.t.t. vem den faktiska po\u00e4ngpersonen \u00e4r \u2013 projekt\u00e4garen \u2013 f\u00f6r hela projektet.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166402-61e7935047b12.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-166402-61e7935047b12.jpg\" alt=\"Project Guardrails: Writing to Production\" ><\/a><\/p>\n<p>Var inte s\u00e5 h\u00e4r.<\/p>\n<p>Och beroende p\u00e5 hur allt ovanst\u00e5ende g\u00e5r, kan projektet vara en relativt enkel upps\u00e4ttning av dagligt arbete.<\/p>\n<p>S\u00e5 mycket som m\u00f6jligt, vill vi inte njuta av det vi g\u00f6r<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jag vill ta upp l\u00e4randet s\u00e5 h\u00e4r l\u00e5ngt handlar om att beh\u00e5lla nycklarna till skrivandets rike till produktion och varf\u00f6r det \u00e4r viktigt.<\/p>\n","protected":false},"author":1,"featured_media":166403,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[755,724],"tags":[1173],"class_list":["post-228932","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oeppen-kaella","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228932","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=228932"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228932\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/166403"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=228932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=228932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=228932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}