Apakah buruk mengembangkan data produksi?

10

Saya selalu mendengar bahwa itu adalah praktik yang buruk untuk dikembangkan terhadap data produksi dan saat ini sedang dalam proses pindah ke model > Tahap> Produksi , terutama karena saya memiliki karyawan baru dengan keterampilan minimal dan saya lebih suka tidak memilikinya bekerja secara langsung dengan data produksi.

Tetapi untuk waktu yang lama saya telah bekerja secara langsung dengan data produksi dengan sakit kepala minimal, kecuali mungkin beberapa kesalahan merayap di sini atau di sana, hal-hal seperti masalah ejaan, teks alt buruk, tautan yang menunjuk ke lokasi yang salah. Ini tampaknya karena kurangnya peer review di pihak saya, bukan karena bekerja dengan data langsung.

Jadi mengapa berkembang di situs langsung merupakan praktik buruk?

plntxt
sumber
Anda bisa menggandakan data yang Anda miliki di server produksi di server pengembangan.
HoLyVieR
1
mmmm ... bagaimana cara saya menjawab pertanyaan ini tanpa terlihat mendukung cara Anda untuk melakukan sesuatu secara langsung dengan data produksi? : S
vmarquez
2
@vmarquez Apakah pertanyaan tentang praktik buruk selalu merupakan pertanyaan buruk?
plntxt
Tidak, bukan itu. Saya akan memilih karena saya merasa bahwa pertanyaan semacam ini adalah bentuk yang bagus untuk mendidik tentang praktik terbaik, dan kemudian, entah bagaimana, saya mendapat ide di benak saya bahwa pemungutan suara dapat diambil sebagai persetujuan diam-diam pada praktik buruk, dengan demikian, memprovokasi efek sebaliknya. Sekarang saya pikir pemungutan suara bisa menyesatkan ... setidaknya pada beberapa kasus.
vmarquez
1
Orang-orang memberikan suara untuk segala macam alasan. Saya tidak mengambil suara selain "orang ini mendapatkan sesuatu dari pertanyaan ini."
artlung

Jawaban:

17

Jika selama pengembangan Anda menjalankan perintah SQL yang menyertakan INSERTatau UPDATEpada tabel database yang ada, Anda menjalankan risiko sejauh bahwa tabel database tersebut sangat penting.

Beberapa tempat menyinkronkan data produksi ke dalam basis data pengembangan pada interval tertentu, katakanlah, seminggu sekali atau atas permintaan pengembang sehingga Anda memiliki data baru untuk dikembangkan.

Tetapi jika data produksi Anda tidak berisiko dari apa yang Anda lakukan, misalnya, jika Anda hanya mengembangkan tampilan beberapa data, biasanya itu bukan masalah besar. Sekarang, jika Anda menjalankan laporan yang melakukan pemindaian tabel, maka Anda memiliki potensi untuk mengunci tabel, maka pengguna Anda yang ada akan terpengaruh.

Saya akan tunduk kepada Administrator Database saya dalam kasus-kasus seperti ini, jika tidak ada DBA "resmi", saya akan melakukan kesalahan. Cukup sederhana untuk membuat database pengembangan, bahkan untuk saya sendiri. Dalam sebuah tim itu sangat penting. Kegagalan itu, jika Anda bersikeras hanya memiliki satu basis data, Anda bisa mengawali tabel database pengembangan Anda dengan DEV_dan merasa sedikit lebih baik. Ya, itu memerlukan beberapa perubahan kode, tetapi dalam pengembangan menambahkan beberapa variabel selama pengembangan $debug = true, dll, biasanya sepadan dengan usaha.

Banyak cara untuk mendekati ini. Ini sangat tergantung pada situasi Anda.

artlung
sumber
+1 pada proses sinkronisasi. Kami melakukannya atas permintaan di sini untuk pengembangan kami. Kami juga memiliki QA yang merupakan area yang lebih sering disinkronkan untuk peninjauan akhir perubahan sebelum mencapai produksi. Namun kami terkadang menjalankan kueri terhadap data produksi, hanya karena masalahnya terkait data dan sangat sulit untuk ditiru.
Milner
+1 dan sinkronisasi bisa rumit. Dalam banyak kasus, Anda akan ingin melakukan hal-hal sebagai bagian dari dorongan Uji-> Uji seperti scrub alamat email dan nama, dll untuk menghindari email tanpa sengaja "Bajingan Kaya yang Kaya"
JasonBirch
11

Anda TIDAK ingin mengembangkan terhadap data produksi di server produksi Anda. Ada beberapa alasan besar.

  1. Pengembangan memperlambat kotak produksi Anda dan menciptakan kerentanan. Apa yang terjadi jika Anda membiarkan komputer tidak terkunci dan berjalan pergi?
  2. Jika Anda membuat kesalahan, orang yang mengunjungi situs Anda dapat melihatnya.
  3. Jika Anda melakukan segala jenis pembaruan data di dalam suatu Transaksi di dalam basis data Anda dan Anda tidak langsung melakukannya atau transaksi membutuhkan waktu beberapa saat, Anda akan mengunci semua tabel yang terlibat dan Anda dapat menyebabkan batas waktu terjadi. .
  4. Beberapa sistem basis data, khususnya SQL Server akan melakukan penguncian tabel pada waktu pada pernyataan SELECT saja! Yang berarti Anda dapat secara tidak sengaja memberi waktu tunggu orang lain atau halaman kesalahan di situs Anda.

Saya tidak akan pernah melakukan pengembangan pada live box jika memungkinkan. Taruhan terbaik Anda adalah membuat cadangan dari Database dan halaman dan bekerja dengan salinan dan kemudian mendorong pembaruan Anda. Salah satu alat yang telah membantu saya satu ton adalah SyncToy milik Msft.

Ben Hoffman
sumber
7

Nah, Anda benar-benar dapat mengacaukan data. Bayangkan meninggalkan klausa di mana. Bahkan jika Anda memiliki cadangan per jam, itu akan sulit untuk diperbaiki.

Echo mengatakan Reinstate Monica
sumber
3

Jika Anda tidak mengemudi tanpa sabuk pengaman, jangan mengembangkan data produksi. Hanya masalah keamanan.

Tuan christer
sumber
3

Jika Anda memiliki data produksi, masuk akal untuk menggunakannya untuk pengujian, tetapi gunakan database pengujian terpisah dengan salinan data itu. Kalau tidak, banyak hal akan bekerja untuk beberapa catatan pengujian "blabla" Anda tetapi tidak untuk skenario nyata.

Dan untuk mengembangkan data produksi langsung - ingat hukum Murphy "Apa pun yang bisa salah akan salah.", Dan sangat mudah untuk membuat kesalahan kecil dengan konsekuensi buruk yang besar.

devmake
sumber