Veri Erişim Katmanını Bogarting


9

Durum: dba, tüm DAL kodunu TFS'de kontrol altında tutan bir müteahhit değildir. Ön uç geliştirici, sütunları ekleyebilmeli ve protestoları ayarlayabilmeli ve bu dude'nin işi yapmak için e-postalarınıza yanıt vermesini beklemeye gerek kalmadan iyi olurdu.

Soru: Ekipler arasında veri bütünlüğünü, barış sevgisini ve mutluluğu korurken daha hızlı / çevik gelişime olanak tanıyan önerilen bir çözüm / süreç ne olurdu?


Burada neden bir sütun eklemeniz gerektiğinden ve bu sütunla hangi iş kurallarının ilişkilendirildiğinden endişeliyim. Etrafında yollar bulabilir ve sonunda sütunu ekleyebilirsiniz, ancak yanlış veri türünü, null ayarları, dizin tanımını kullandıysanız, sütunun tabloya ait olmaması ya da bir kavşak tablosunu tamamen kaçırmanız durumunda ne olur? Birisinin yeni veri tanımlamanın ticari etkisinden sorumlu olması gerektiğini ve ayrıca bir veritabanı değişikliğinin kod üzerindeki etkisinden (DBA hariç) sorumlu olduğunu düşünüyorum. 2 rol aynı kişi tarafından oynanabilir.
NoChance

DBA'ya gereksinim duymak Kendi dalında çalışmak. Ana geliştirme şubesine ödeme yapma hakkı vermeyin. Alternatif olarak kendi geliştirici dalınızı oluşturun ve değişikliklerinizi gerektiği gibi birleştirin.
SoylentGray

Yanıtlar:


11

Martin Fowler ve Pramod Sadalage bu konuda mükemmel bir makale yazdılar .

Her geliştiricinin değişiklik yapabileceği kendi veritabanı vardır. Bu değişiklikler daha sonra (bir değişiklik kümesi olarak) bunları ana veritabanında uygulayan DBA'ya iletilir, bu yüzden hala sürece dahil olur, muhtemelen veritabanının yapıları ve ihtiyaçları hakkında en iyi bilgiyi bilir. Bence bu en iyi yaklaşım, sürece katılan herkes için tatmin edici ve aynı zamanda çok çevik.

DAL'ı benzer şekilde değiştirebilirsiniz. Yaptığınızı düşündüğünüzde değişikliklerinizi yapın ve DBA için bir değişiklik kümesi sağlayın, böylece onu inceleyebilir ve efendisinde birleştirebilir.


1
oooh i ... bu benim ilk Q burada bu yüzden henüz oy veremem ama kesin bir comin var ... belki / muhtemelen cevap, ama diğer insanların ne dediğini görmek için biraz beklemek istiyorum
spagetticowboy

Bununla ilgili sorun, geliştiricinin tüm çalışmalarını dba'nın onaylayacağı varsayımı üzerine yapmasıdır.
HLGEM

@HLEGM: Deneyimlerime göre bu nadiren görülen bir durumdur, çoğu zaman DBA bunu onaylar veya sadece biraz değiştirir. Hala boştaki geliştiricileri oturmaktan daha iyidir. Dahası, DBA ve geliştiricinin her ikisi de makul insanlarsa, muhtemelen en iyi çözüme yol açacaktır.
Falcon

Bunun sadece bir bağlantı göndermek yerine neden mükemmel bir makale olduğunu açıklayan +1.
JeffO

@HLGEM - Bence her iki tarafın yaptıklarını haklı çıkarmasını gerektiriyor. DBA, db konularında şüpheden faydalanmalıdır, ancak her ikisinin de nihai kararı verebilecek başka birine cevap vermesi gerekir.
JeffO

3

Pekala, DBA işini yaparken, her şeyi kilitlediğim için biliniyordu, bu yüzden lanet olası kirli programcılar kendi kararlarını alamıyorlar. Herkes bunu nasıl daha iyi yapabileceklerini bildiğini düşünüyor ve işleri kendileri için kolaylaştırmak için "ince ayar yapıyorlar" ve bu kutsal olmayan bir karmaşaya neden oluyor.

Diğer alternatif, onu tamamen açık bırakmak ve programcıların bir süre üzerinde yakınlaşmasına izin vermek, sonra atlayın ve işler kapanmaya başladığında düzeni empoze etmektir ... Bu kesinlikle daha "çevik", ama olabilir neyin kesilmesi veya değiştirilmesi gerektiğine bağlı olarak gerçek bir kabus ... DBA'lar genellikle projeyi bir bütün olarak daha iyi anlarlar ve zararsız görünen bazı değişiklikler sorunlu olabilir.

Tek bekçi olacaksa, sabit bir spesifikasyona sahip olması veya vizyonunu geliştiricilerin geri kalanına "satabilmesi" gerekir.


biz oldukça lanetiz kirli ... ve bazen biz de oldukça sabırsızyız ve işleri kendimiz yapmamız gerekiyor
spaghetticowboy

@spaghetti: Evet ... Muhtemelen çoğundan daha kötüyüm çünkü çok sayıda DBA çalışması yaptım, bu yüzden iki kez "Daha iyi yapmayı biliyorum!" çoğu programcıya göre. Bunu söyleyeceğim: veritabanlarıyla, erkenden düzeltmek çok daha önemlidir ... Projenin geç saatlerine kadar eklemeye devam ederseniz, neredeyse kesinlikle sorunlara neden olacaktır.
Satanicpuppy

3

Başka bir sorunun üstesinden gelen büyük bir sorun var:

  1. Yüklenici neden her zaman kodu teslim alıyor?

Neden bunu yapmasına izin veriliyor? Etkin bir şekilde düzenleme yapmadığı sürece hiç kimse bir dosyayı teslim almamalıdır. Check-outlarla ilgili bir takım politikası olmalıdır.

Yüklenici (beğenip beğenmediklerine bakılmaksızın) bir ekibin parçası olarak çalışır ve bazen ekibin diğer üyelerinin değişiklik yapması gerekebilir. Bu bir iletişim sorunudur. Ne yazık ki bu iletişim sorununu çözmenin otomatik bir yolu yok.


1

Yatay katmanlar yerine silolarda katmanlar arasında çalışmayı tercih ederim.

Bu şekilde hiçbir kişi / takım bu şekilde engelleyemez.

Ayrıca geliştiricilerin çok yetenekli ve özellikler arasında daha kolay hareket edebildiğiniz anlamına gelir.

Tabii ki, daha fazla özel çalışma gerektirebilecek bölümler (UI tasarımı ve DB tasarımı) var, ancak fikri anlıyorsunuz.


1

Basit, Henüz yapmadıysanız, 3 Ortamınız olmalıdır:

  • Geliştirme Ortamı
  • KG Ortamı
  • Üretim ortamı

Geliştirme ortamı geliştiricileriniz tarafından yönetilmelidir.

Ayrıca bir RC ortamı eklemek isteyebilirsiniz.

Başka bir cevap, Birden fazla ortam mümkün değilse, sahte bir depoya karşı geliştirebilirsiniz ... Bu şekilde modellerinizi oluşturursunuz ve daha sonra yükleniciniz, modellerinizin DB ile eşleşmesinden sorumludur. Bir şekilde bu daha iyi çünkü geliştiricilerinizi veritabanı hakkında endişelenmekten kurtarıyor.


1
OP kullanıma alınmış koddan bahsediyor. Farklı ortamların bir etkisi olmaz.
NotMe

1

Sorun bana insan gücünden biri gibi geliyor. Tüm potansiyel daatbase değişikliklerinin bir veritabanı uzmanı tarafından onaylanması uygun ve gereklidir. Şimdiki kişi işi zamanında takip edemezse, daha fazla veritabanı uzmanına ihtiyacınız vardır.


+1: Bu da sorunun bir nedeni olabilir. Birçok şirketin çok az sayıda DBA'sı vardır.
Falcon

1

Bu teknik olduğu kadar bir yönetim meselesidir.

Geliştiricilerin herhangi bir veritabanı değişikliği yapmasını önlemek için bir DBA'nın (yerinde veya kapalı, yüklenici veya çalışan olsun) kesinlikle geçerli nedenleri vardır.

Ancak, tanımladığınız ana sorun kullanılabilirliktir. Yöneticiniz bu kişiyi beklerken zamanın / paranın boşa harcandığını biliyor mu? Değilse, herkesin nasıl oturduğunu ortaya çıkarmak isteyebilirsiniz.

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.