it-swarm-tr.com

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

Üretim verilerine karşı geliştirilmenin kötü bir uygulama olduğunu her zaman duydum ve şu anda Dev> Aşama> Üretim modeline geçme sürecindeyim, çünkü asgari becerilere sahip yeni bir çalışanım var ve Henüz doğrudan üretim verileriyle çalışmamasını tercih ederim.

Ancak uzun süredir, burada veya oralarda sürünen birkaç hata dışında, yazım sorunları, kötü metin, yanlış yere işaret eden bağlantılar gibi şeyler dışında en az baş ağrılarıyla doğrudan üretim verileriyle çalıştım. Bu, canlı verilerle çalışmaktan değil, benim açımdan akran incelemesinin eksikliğinden kaynaklanıyor gibi görünüyor.

Peki neden canlı sitede gelişmekte olan bu kadar kötü bir uygulama?

10
plntxt

Geliştirme sırasında, mevcut veritabanı tablolarında INSERT veya UPDATE içeren SQL komutları çalıştırıyorsanız, bu veritabanı tablolarının kritik görev olma riski vardır.

Bazıları, haftada bir kez veya geliştirici isteğinde, belirli aralıklarla üretim verilerini geliştirme veritabanında senkronize eder, böylece geliştirilecek yeni verileriniz olur.

Ancak, üretim verileriniz yaptığınız işle ilgili risk altında değilse, örneğin, yalnızca bazı verilerle ilgili bir görünüm geliştiriyorsanız, bu genellikle önemli bir şey değildir. Şimdi, masa taraması yapan raporlar çalıştırıyorsanız, bir masayı kilitleme potansiyeline sahip olursanız, mevcut kullanıcılarınız etkilenir.

Bu gibi durumlarda Veritabanı Yöneticime ertelerdim, eğer "resmi" bir DBA yoksa, dikkatli olmak isterdim. Kendim için bile bir geliştirme veritabanı oluşturabilecek kadar basit. Bir takımda hayati önem taşıyor. Bunu başaramazsanız, yalnızca bir veritabanını işe alma konusunda ısrarcıysanız, geliştirme veritabanı tablolarınızı DEV_ ile ön ekleyebilir ve biraz daha iyi hissedebilirsiniz. Evet, bu bazı kod değişiklikleri gerektirir, ancak geliştirme aşamasında geliştirme sırasında bazı değişkenler eklemek $debug = true, vb. Genellikle çabaya değer.

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

17
artlung

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

  1. Geliştirme, üretim kutunuzu yavaşlatır ve güvenlik açıkları yaratır. Bilgisayarınızı kilitli tutup çekip giderseniz ne olur?
  2. Bir hata yaparsanız sitenizi ziyaret eden kişiler onu görebilir.
  3. Veritabanınızdaki bir İşlem içinde herhangi bir veri güncellemesi yaparsanız ve bunu hemen yapmazsanız veya işlemin tamamlanması biraz zaman alırsa, ilgili tüm tablolara kilitlenecek ve zaman aşımına uğramasına neden olabilirsiniz. .
  4. Bazı veritabanı sistemleri, özellikle de SQL Server, yalnızca SELECT ifadelerinde tablo kilitleri yapacaktır! Bu, istemeden insanlara sitenizdeki zaman aşımlarını veya hata sayfalarını verebileceğiniz anlamına gelir.

Mümkünse, geliştirme kutusunu asla canlı bir kutu üzerinde yapmam. En iyi seçeneğiniz, Veritabanını ve sayfaları yedeklemektir, kopya ile çalışın ve ardından güncellemelerinizi iletin. Bana bir ton yardımcı oldu bir araç Msft SyncToy olduğunu.

11
Ben Hoffman

Peki, veriyi gerçekten mahvedebilirsin. Bir maddeyi bıraktığınızı hayal edin. Saatlik yedeklemeniz olsa bile, düzeltilmesi gereken bir acı olacaktır.

7
Echo

Kullanılabilir üretim verileriniz varsa, bunları test etmek için kullanmak makul olur, ancak bu verilerin bir kopyasına sahip ayrı bir test veritabanı kullanın. Aksi halde, birkaç "blabla" test kaydınız için pek çok şey işe yarayacak, ancak gerçek bir senaryo için değil.

Canlı bir üretim verisi geliştirmek için - Murphy'nin "Yanlış gidebilen herhangi bir şey yanlış gidecektir" yasalarını hatırlayın ve büyük kötü sonuçlarla küçük bir hata yapmak çok kolaydır.

3
devmake

Emniyet kemeri olmadan araç kullanmıyorsanız, üretim verilerini geliştirmeyin. Sadece bir güvenlik sorunu.

3
MrChrister