Tootmisandmete muutmise strateegiad - Julie Qiu | #LeadDevLondon 2018

Olen alati kuulnud, et on halb tava areneda tootmisandmete vastu ja kolin praegu Dev> Stage> Production mudeli juurde, peamiselt seetõttu, et mul on uus töötaja, kellel on minimaalsed oskused ja ma pigem ei tahaks teda töötage otse tootmisandmetega.

Kuid olen pikka aega töötanud otse tooteandmetega minimaalse peavaluga, välja arvatud võib-olla mõned siia või sinna hiilivad vead, näiteks õigekirjaprobleemid, halb alttekst, valele asukohale osutavad lingid. Tundub, et see tuleneb minu poolt vastastikuse eksperthinnangu puudumisest, mitte elusate andmetega töötamise tõttu.

Miks siis veebisaidil nii halb tava areneb?

  • Võite lihtsalt kopeerida oma tootmisserveris olevad andmed arendusserveris.
  • 1 mmmm ... kuidas ma saan selle küsimuse üles hääletada, ilma et ma näeks, et see toetab teie viisi, kuidas asju otse tootmise andmetega teha? : S
  • 2 @vmarquez Kas küsimus halva tava kohta on tingimata halb küsimus?
  • Ei see ei ole. Olin kohe hääletamas, sest mul oli tunne, et sellised küsimused on hea vorm parimate tavade kohta harimiseks, ja siis tekkis mul kuidagi mõte, et hääletamist võiks võtta vaikiva heakskiiduna. halvale tavale, põhjustades seega täpselt vastupidise efekti. Nüüd arvan, et hääletamine võib olla eksitav ... vähemalt mõnel juhul.
  • 1 Inimesed hääletavad asjade üle igasugustel erinevatel põhjustel. Ma ei võta hääletust kui midagi muud kui "see inimene sai sellest küsimusest midagi välja".

Kui töötate arenduse ajal SQL-i käske, mis sisaldavad INSERT või UPDATE olemasolevate andmebaasitabelite puhul on teil oht niivõrd, kuivõrd need andmebaasitabelid on missioonikriitilised.

Mõni koht sünkroonib tooteandmed arendusandmebaasi teatud aja tagant, näiteks kord nädalas või arendaja nõudmisel, nii et teil oleks värskeid andmeid, millega arendada.

Kuid kui teie tooteandmed ei ole teie tegevuse ohus, näiteks kui töötate lihtsalt välja mõne teabe vaate, pole see tavaliselt suur asi. Kui nüüd käitate aruandeid, mis kontrollivad tabelit, on teil võimalus tabel lukustada ja see mõjutab teie olemasolevaid kasutajaid.

Sellistel juhtudel lükkaksin oma andmebaasi administraatorile edasi, kui "ametlikku" DBA-d pole, eksin ettevaatusega. See on piisavalt lihtne, et isegi enda jaoks arendusandmebaas luua. Meeskonnas on see eluliselt tähtis. Kui seda ei tehta, võiksite oma arendusandmebaasi tabelite ees lisada, kui soovite ainult ühte andmebaasi hvingida DEV_ ja tunnen end natuke paremini. Jah, see nõuab mõningaid koodimuudatusi, kuid arenduse käigus lisatakse arenduse käigus muutujaid $debug = truejne on tavaliselt vaeva väärt.

Sellele lähenemiseks on palju võimalusi. See sõltub väga teie olukorrast.

  • +1 sünkroonimisprotsessis. Me teeme seda siin oma arengu nõudmisel. Meil on ka kvaliteedikontroll, mis on sagedamini sünkroonitud ala muudatuste lõplikuks ülevaatamiseks enne nende jõudmist tootmiseni. Kuid me käitame mõnikord päringuid tootmisandmete vastu, lihtsalt sellepärast, et probleem on seotud andmetega ja seda on väga raske korrata.
  • +1 ja sünkroonimine võivad olla keerulised. Paljudel juhtudel soovite teha asju osana Prod-> Test push-ist nagu e-posti aadresside ja nimede nühkimine jne, et vältida kogemata meilisõnumi saatmist "Kallis rikas pätt"

Te EI soovi oma tootmisserveri tooteandmete põhjal areneda. Siin on paar tohutut põhjust.

  1. Arendus aeglustab teie tootekasti ja loob haavatavusi. Mis juhtub, kui jätate arvuti lukustamata ja jalutate minema?
  2. Kui teete vea, näevad seda teie saiti külastavad inimesed.
  3. Kui teete oma andmebaasis tehingu käigus mingisugust andmete värskendust ja te ei tee seda kohe või kui tehing võtab aega, siis lukustate kõik kaasatud tabelid ja see võib põhjustada ajalõpu .
  4. Mõni andmebaasisüsteem, täpsemalt SQL Server, teeb tabelilukke kohati ainult SELECT-lausete korral! Mis tähendab, et saate oma saidile tahtmatult anda inimestele ajalõpu või vealehti.

Ma ei teeks võimalusel kunagi live boxi arendustööd. Parim võimalus on teha andmebaasist ja lehtedest varukoopia ning töötada koopiaga ja seejärel värskendada. Üks tööriist, mis on mind tonni aidanud, on Msfti SyncToy.

Noh, saate andmed tõesti segi ajada. Kujutage ette, kui jätaksite ära klausli. Isegi kui teil on tunnis varukoopiaid, oleks seda parandada.

Kui te ei sõida ilma turvavööta, ärge arendage tootmisandmeid. Lihtsalt ohutuse küsimus.

Kui teil on tootmisandmeid saadaval, on mõistlik neid testimiseks kasutada, kuid kasutage eraldi testide andmebaasi koos nende andmete koopiaga. Muidu toimivad paljud asjad teie väheste "blabla" testimisrekordite jaoks, kuid mitte reaalse stsenaariumi korral.

Ja reaalajas tootmise andmete arendamiseks pidage meeles Murphy seadusi "Kõik, mis võib valesti minna, läheb valesti." Ja nii lihtne on teha väikest viga, millel on suured halvad tagajärjed.

none: Charles Robertson | none

none