Bu mesajlar birbiriyle ilişkili gibi görünüyor, ama beynim erimeye başlıyor ve bunu düşünmeye çalışıyor: P
İşverenim kaynak kontrolünü kullanmaya yeni başladı, çünkü daha fazla geliştirici işe almadan önce "depo", çoğunlukla evden çalışan yalnız geliştiricinin sabit diskiydi. Yazdığı tüm .NET kodu toplu olarak kontrol edildi ve çok sayıda yinelenen (okuma: kopyala yapıştırılan) işlevsellik var. Şu anda, SCM sistemimiz yüceltildi.
Çoğaltılan kodun bazılarını paylaşılan kitaplıklara çekmek istiyorum. Hiçbir şeyi kırmamak için orijinal repoyu yalnız bırakıyorum - mevcut kodu gerektiğinde taşıyabilir ve / veya yeniden düzenleyebiliriz. Bu yüzden sadece yeni kodlar için kütüphaneler de dahil olmak üzere bir repo oluşturdum.
Benim sorunum, bizi aşırı bir süreç içinde canlandırmadan kütüphaneleri versiyonlama etrafında dönüyor: daha tutarlı bir yaklaşıma ihtiyacımız olduğunu kabul ettik, daha fazla geliştirici çok benzer kod, yönetim ve diğer geliştiriciler bir şeyler yeniden düzenlemeye açık yazıyor, ancak muhtemelen çözüm üretkenliği etkilemeye başlarsa iyi gider.
Saplantılı zihnimdeki ideal çözüm, kütüphaneleri ayrı ayrı inşa etmek ve her bağımlı projenin kasıtlı olarak seçilen uyumlu sürümlerine karşı inşa edilmesidir. Bu şekilde, hangi istemcilerin hangi kitaplıkların hangi sürümlerine sahip olduğunu, hataları daha güvenilir bir şekilde üretebileceğini, ürünler ve kütüphaneler için bağımsız yayın dallarını koruyabildiğini ve paylaşılan kodu değiştirirken birbirlerinin projelerini kıramayacağını tam olarak biliyoruz.
Bu, özellikle evden çalışan geliştiriciler için kütüphanelerin güncellenmesini hantal hale getirir. En azından başlangıçta ortak bitleri bir araya getirirken kütüphanelerin hızlı bir şekilde değişmesini bekliyorum. Bunu tamamen düşünüyor olabilirim ve en yeni kütüphane taahhütlerine karşı her şeyi inşa etmemiz iyi olur, ancak en azından bazı bileşenlerin bağımsız olarak sürümlendirilmesi gerektiğine karar verdiğimiz güne hazırlıklı olmak istiyorum ve dağıttı. Bazı kütüphanelerin GAC'ye kurulması gerekecek olması versiyonlamayı özellikle önemli kılmaktadır.
Benim sorum şu: neyi kaçırıyorum? Tek bir çözüme sabitlenmiş gibi hissediyorum ve şimdi değişiklikler daha pürüzsüz hale getirecek varyasyonları bulmaya çalışıyorum. Bu tür bir sorunu daha önce çözmek için ne tür stratejiler kullandınız? Bu sorunun her yerde olduğunu fark ediyorum; Herhangi bir belirsizlik noktasını temizlemek ve netleştirmek için elimden geleni yapacağım.
Mercurial'ı kullanmak istediğim kadar, zaten merkezi bir ticari SCM'ye (Apps Kasası) para harcadık ve geçiş yapmak bir seçenek değil. Ayrıca, buradaki sorunun sürüm kontrol aracı seçiminden daha derin olduğunu düşünüyorum.