Üretim verilerine karşı geliştirmek kötü mü?


10

Üretim verilerine karşı geliştirmenin kötü bir uygulama olduğunu her zaman duydum ve şu anda Dev> Sahne> Üretim modeline geçme aşamasındayım , çünkü asgari becerilere sahip yeni bir çalışanım var ve ona sahip olmayı tercih etmiyorum henüz üretim verileriyle doğrudan çalışma.

Ancak uzun zamandır, burada veya orada sürünen birkaç hata, yazım sorunları, kötü alternatif metin, yanlış yere işaret eden bağlantılar gibi, minimum baş ağrısı ile üretim verileriyle doğrudan çalıştım. Bu, canlı verilerle çalışmaktan değil, benim tarafımda akran incelemesinin eksikliğinden kaynaklanıyor gibi görünüyor.

Öyleyse canlı sitede neden bu kadar kötü bir uygulama geliştiriyor?


Geliştirme sunucusundaki üretim sunucunuzdaki verileri çoğaltabilirsiniz.
HoLyVieR

1
mmmm ... doğrudan üretim verileriyle işleri yapma yolunuzu destekliyor gibi görünmeden bu soruyu nasıl değerlendirebilirim? : S
vmarquez

2
@vmarquez Kötü bir uygulama hakkında bir soru mutlaka kötü bir soru mu?
plntxt

Hayır öyle değil. Oy vermek üzereydim, çünkü bu tür soruların en iyi uygulamaları eğitmek için harika bir form olduğu hissine kapıldım ve sonra bir şekilde oylamanın zımni bir onay olarak alınabileceği fikrimi aldım kötü uygulama üzerine, tam tersi bir etkiyi kışkırtır. Şimdi oylamanın yanıltıcı olabileceğini düşünüyorum ... en azından bazı durumlarda.
vmarquez

1
İnsanlar her türlü farklı nedenden ötürü oylara oy verirler. "Bu kişi bu sorudan bir şey aldı" dışında oy kullanmıyorum.
artlung

Yanıtlar:


17

Geliştirme sırasında varolan veritabanı tablolarını içeren INSERTveya UPDATEüzerinde SQL komutları çalıştırıyorsanız, bu veritabanı tablolarının görev açısından kritik olduğu ölçüde risk altındasınız demektir.

Bazı yerler, üretim verilerini geliştirme veritabanına belirli aralıklarla, örneğin haftada bir kez veya geliştirici isteğiyle senkronize eder, böylece geliştirilecek yeni verileriniz olur.

Ancak, üretim verileriniz yaptığınız işte risk altında değilse, örneğin, sadece bazı verilerin görünümünü geliştiriyorsanız, genellikle önemli değildir. Şimdi, tablo taramaları yapan raporlar çalıştırıyorsanız, bir tabloyu kilitleme potansiyeline sahipsiniz, o zaman mevcut kullanıcılarınız etkilenir.

Böyle durumlarda Veritabanı Yöneticime ertelerdim, eğer "resmi" DBA yoksa, dikkatli olursam hata yapardım. Kendim için bile bir geliştirme veritabanı oluşturmak için yeterince basit. Bir takımda hayati önem taşıyor. Başarısız olursanız, yalnızca bir veritabanını saklamak konusunda ısrar ettiyseniz, geliştirme veritabanı tablolarınıza ön ek verebilir DEV_ve biraz daha iyi hissedebilirsiniz. Evet, bu bazı kod değişiklikleri gerektirir, ancak geliştirme sırasında geliştirme $debug = truevb. Sırasında bazı değişkenler eklemek genellikle çabaya değer.

Buna yaklaşmanın birçok yolu var. Durumunuza çok bağlı.


Senkronizasyon işleminde +1. Bunu gelişmemiz için burada talep üzerine yapıyoruz. Ayrıca, üretime geçmeden önce değişikliklerin son gözden geçirilmesi için daha sık senkronize edilen bir alan olan bir KG'ye sahibiz. Ancak, bazen sorun veri ile ilgili ve çoğaltılması çok zor olduğu için üretim verilerine karşı sorgular çalıştırıyoruz.
Milner

+1 ve senkronizasyon zor olabilir. Birçok durumda, "Sevgili Zengin Piç" e-posta gönderme yanlışlıkla önlemek için, ovma e-posta adresleri ve isimleri gibi eşya-> Test itme bir parçası olarak vb şeyler yapmak isteyeceksiniz
JasonBirch

11

Üretim sunucunuzdaki üretim verilerine karşı geliştirmek istemezsiniz. Birkaç büyük sebebi var.

  1. Geliştirme, üretim kutunuzu yavaşlatır ve güvenlik açıkları oluşturur. Bilgisayarınızı açık bırakıp uzaklaşırsanız ne olur?
  2. Bir hata yaparsanız sitenizi ziyaret eden kullanıcılar sitenizi görebilir.
  3. Veritabanınızdaki bir İşlemin içinde herhangi bir veri güncellemesi yaparsanız ve hemen işlemezseniz veya işlemin tamamlanması biraz zaman alırsa, ilgili tüm tablolara bir kilit koyacaksınız ve zaman aşımına neden olabilirsiniz .
  4. Bazı veritabanı sistemleri, özellikle SQL Server, SELECT ifadelerinde zaman zaman masa kilitleri yapacaktır! Bu, yanlışlıkla sitenize zaman aşımları veya hata sayfaları verebileceğiniz anlamına gelir.

Mümkünse asla canlı bir kutu üzerinde geliştirme çalışmaları yapmam. En iyi seçeneğiniz, Veritabanının ve sayfaların bir yedeğini almak ve kopyayla çalışmak ve güncellemelerinizi iletmektir. Bana bir ton yardımcı olan bir araç Msft's SyncToy.


7

Aslında, verileri gerçekten bozabilirsiniz. Nerede bir cümle bıraktığınızı düşünün. Saatlik yedekleriniz olsa bile, bu düzeltmek için bir acı olacaktır.


3

Emniyet kemeri olmadan araç kullanmıyorsanız, üretim verilerinde gelişme yapmayın. Sadece bir güvenlik sorunu.


3

Mevcut üretim verileriniz varsa, bunları test için kullanmak mantıklıdır, ancak bu verilerin bir kopyasıyla ayrı bir test veritabanı kullanın. Aksi takdirde pek çok şey birkaç "blabla" test kaydınız için işe yarar ancak gerçek bir senaryo için çalışmaz.

Ve canlı bir prodüksiyon verilerini geliştirmek için - Murphy'nin "Yanlış gidebilecek her şey yanlış gidecek" yasalarını hatırlayın ve büyük kötü sonuçlarla küçük bir hata yapmak çok kolaydır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.