Ajankohtaista
Tekniikka2 min lukuaika

Testidatalla täytetty hiekkalaatikko voittaa kopion tuotannosta

Koko paikallinen ympäristömme on prosessin sisäinen Postgres, joka käynnistyy tyhjästä, ajaa oikeat migraatiot ja täyttää itsensä uskottavalla kuvitteellisella kampaamolla. Läppäreillä ei ole tuotannon tunnuksia, kuvakaappauksissa ei ole oikeiden asiakkaiden tietoja, eikä demo vanhene koskaan.

BTBookatun tekniikkatiimi

Jokaisen pienen tiimin elämässä tulee hetki, jolloin joku ehdottaa paikallisen kehityksen osoittamista tuotantokannan kopioon, koska keksitty data tuntuu ohuelta ja oikeat bugit tulevat esiin vain oikeilla riveillä. Ajatus on houkutteleva, mutta katumus laahaa perässä pitkään: tunnukset leviävät läppäreille, asiakkaiden nimet päätyvät kuvakaappauksiin, ja jonain päivänä testiksi ajettu sähköpostityö löytää oikeat osoitteet. Me menimme toiseen suuntaan emmekä ole katsoneet taaksepäin.

Kokonainen Postgres prosessin sisällä

Sulautetuista Postgres-paketeista on tullut aidosti hyviä. Sovelluksemme päättää käynnistyessään: jos ympäristöstä löytyvät oikeat tietokantatunnukset, se käyttää palvelimella olevaa kantaa, ja jos ne ovat tyhjät, se nostaa pystyyn prosessin sisäisen Postgresin paikalliseen kansioon. Kehityskoneilla ei yksinkertaisesti ole tunnuksia, joten väärin konfiguroidun läppärin pahin lopputulos on tuore tyhjä tietokanta, ei tuotantohäiriö.

js
// Choose the database at runtime. Blank env = embedded, local, harmless.function makeDb() {  const url = process.env.DATABASE_URL;  if (url) return connectHosted(url);  // In-process Postgres persisted to a local folder  const client = new EmbeddedPostgres('./.pgdata');  return drizzle(client, { schema });}

Uudelleenrakennuksen tapa on yhtä tärkeä kuin itse moottori. Luomme paikallisen tietokannan ajamalla samat migraatiotiedostot kuin tuotanto on ajanut, järjestyksessä ensimmäisestä alkaen. Tuo yksi päätös on napannut kokonaisen bugiperheen ilmaiseksi: migraation, joka oletti sarakkeen myöhemmästä tiedostosta, ja skeemamuutoksen, joka toimi vanhaa vedosta vasten mutta ei tyhjästä. Jos läppäri ei pysty rakentamaan skeemaa historiasta, ei pystyisi seuraava julkaisukaan.

Siemennä yritys, älä rivejä

Hyödyttömän ja hyödyllisen keksityn datan ero on tarina. Siemennysskriptimme ei lisää kymmentä käyttäjää nimeltä test. Se luo kampaamon, jolla on nimi, työntekijöitä erikoisosaamisineen, palveluita rehellisin hinnoin ja kestoin, asiakkaita käyntihistorioineen, tulevia varauksia sekä myyntituotteita, joilla on varastosaldot ja tapahtumahistoria takanaan. Sivut näyttävät asutuilta, ja se tarkoittaa, että asetteluvirheet, tyhjät tilat ja kömpelöt katkaisut tulevat näkyviin samalla tavalla kuin oikealla asiakkaalla.

Varausnäkymä täynnä siemennettyä esimerkkidataa: liikevaihto, varaukset ja asiakastoiminta
Kaikki tässä kuvakaappauksessa on keksittyä. Juuri siksi sen voi julkaista.

Tuo viimeinen ominaisuus on helppo aliarvioida. Jokainen kuvakaappaus ohjeissamme, blogissamme ja bugiraporteissamme tulee siemennetystä hiekkalaatikosta. Kenenkään ei tarvitse tihrustaa kuvaa ja miettiä, livahtiko mukaan asiakkaan nimi, koska livahtavia asiakasnimiä ei ole olemassa. Turvallisin sensurointiprosessi on se, ettei ole mitään sensuroitavaa.

Mitkä asiat kannattaa hoitaa kuntoon

  • Tee turvallisesta polusta oletuspolku. Kehittäjän pitäisi joutua näkemään vaivaa päästäkseen oikeaan dataan, ei välttääkseen sitä.
  • Neutraloi myös sivuvaikutukset: sähköpostin, maksujen ja tallennuksen avaimet pysyvät paikallisesti tyhjinä, joten testiasiakkaiden läpi ajettu silmukka ei voi koskaan viestiä oikealle ihmiselle.
  • Siemennä ne tilat, joita pelkäät: aivan uusi tili, täyteen varattu päivä, loppunut tuote ja asiakas, joka kävi kerran vuosia sitten.
  • Pidä siemennys mukana koodikatselmoinnissa. Kun ominaisuus lisää taulun, siemennys kasvaa sen mukana, tai hiekkalaatikko lahoaa hiljalleen.

Hyöty kertaantuu. Uusi tiimiläinen ajaa kaksi komentoa ja saa toimivan yrityksen, jota tutkia. Visuaalinen laadunvarmistus voi valokuvata jokaisen sivun ilman tietosuojatarkastusta. Ja demoympäristö on aina viiden minuutin päässä puhtaasta, koska puhdas on vain yhden uudelleenrakennuksen päässä.

Tuotantodata vastaa kysymyksiin. Testidata antaa sinun kysyä ne turvallisesti.

paikallinen kehitysympäristötestidatasulautettu postgrestestidatan tietosuojakehittäjäkokemus
Haluatko ottaa tämän käyttöön?

Bookatu antaa sinulle oman näköisesi varaussivun, ennakkomaksut, jäsenyydet, lahjakortit ja muistutukset, 0 % komissiolla varauksistasi.

Aloita ilmaiseksi