Sürüm kontrolündeki kod nasıl saklanmalıdır?


19

Sürüm kontrolündeki kod nasıl saklanmalıdır?

Geliştirici dostu mu? böylece programcı hızlı bir şekilde son değişiklikleri alabilir ve editörü birçok değişiklik yapmadan çalıştırmak mümkün? (dev DB..etc'yi gösteren yapılandırma dosyaları gibi)

veya

Üretim dostu olmalı mı ? kaynak, üretim ortamına kolayca dağıtılabilecek bir şekilde olmalı ve geliştirici en son teknolojiyi aldığında, geliştirme ihtiyaçlarına göre değişiklikler yapmalıdır.

Yanıtlar:


56

Neden seçtin ? İkisi de olmalı.

Geliştirme ortamınız, bir ödeme, açma, oluşturma, çalıştırma, hata ayıklama yapmak kadar kolay olacak şekilde yapılandırılmalıdır (örn: mutlak yol yok!). Bunu derleme yönergeleri, yapılandırma sınıfı + bağımlılık enjeksiyonu ve hatta ASP.NET'teki perso.config gibi hilelerle kolayca yapabilirsiniz.

Otomatik derleme betiğiniz, belirli üretim yapılandırması, temizleme, paketleme vb.Ile ilgilenecek şekilde özelleştirilmelidir.


Perso.config dosyası nedir? Hızlı bir Google bana yardımcı olmadı.
Tim Murphy

1
.NET uygulama yapılandırma dosyasında, bulunduğunda belirtilen ayarları geçersiz kılacak başka bir uygulama yapılandırma dosyasına başvurabilirsiniz. Böylece bağlantı dizeleri ve diğer şeyler gibi şeyleri geçersiz kılan bir dev.config dosyası oluşturabilir ve depolardan hariç tutabilirsiniz.

5
+1 - geliştiriciler doğru kaynağı almayı düşünmemelidir . Ayrıca üretim dağıtımı doğrudan kaynak kontrolünden değil, doğru şekilde inşa edilmiş, test edilmiş ve izlenebilir parçalarla yapılmalıdır . Bu işlem tamamen otomatik olmalıdır.

9

İnsanların katkıda bulunacağı açık kaynaklı bir proje olduğunda, kesinlikle geliştirici dostu olmayı tercih ederim.

Açık kaynak projeleriyle ilgili en büyük sevmediğim şey, havuzun kodu oluşturmak için gereken tüm bağımlılıkları (bazen pratik veya yasal nedenlerle) çok nadiren içermesidir, ancak yapmadıkları zaman - bazıları size hangi bağımlılıkları söylemek için bile uğraşmazlar veya daha da önemlisi, bunların hangi sürümüne ihtiyacınız var. (ve tercihen nereden alınacakları)

Bazen yarım günün üzerinde, peşinde olduğunuz projeyi inşa etmek için diğer birkaç projeyi almak ve derlemek için harcayabilirsiniz.

Tabii ki, bu gerçekten sadece Windows üzerinde geliştirme ile ilgilidir.


1
Beni cehenneme çeviriyor. Hatta çok iyi bilinen OSS'de bile bulabilirsiniz.
Tim Murphy

1
Bağımlılıkları otomatik olarak getirerek bu sorunu hafifleten sistemler vardır. Örneğin Apache Maven, Ivy veya scons.
sleske

4

Her ikisi de, ancak üretiminizi ne sıklıkta yaptığınıza bağlıdır. Birçok özelleştirilmiş uygulama için dağıtımlar manuel ve yerel olarak yapılır. Öte yandan, proje ne kadar küçük veya büyük olursa olsun, geliştirici sürekli olarak kod işler. Bence, geliştiricinin sürüm kontrolünü doğru kullanabildiğinden emin olmak, böylece hayatlarını kolaylaştırmak, böylece sürüm kontrolüne giden yolu bulmak yerine koda odaklanmak için zamanları olacak daha önemli olduğunu düşünüyorum.


Oluşturmak için sürekli bir dağıtım motoru kullanıyorsanız, üretim dağıtımları sorun yaratmamalıdır.

1

Üretim dostu olmalıdır, aksi takdirde otomatik yapıları korumak sorunludur.


8
Neden? Otomatik bir derleme betiği, kaynağı konuşlandırılabilir bir biçimde yeniden yapılandırmak için gerekli tüm çevirileri yapabilir. Otomasyonun çözebileceği bir şeyle insanları asla rahatsız etmeyin.
Joeri Sebrechts

1

Ben sürtünmeyi azaltmak için çalışıyorum, böylece işi halletmek daha kolay, ama aynı zamanda hata modlarını da hesaba katmanız gerekiyor.

Kaynak havuz sürümü her zaman üretim kullanımı için yapılandırılırsa, sistemi çalıştırmadan önce bir geliştiricinin yeniden yapılandırılamamasının sonucu nedir? Üretime karşı kod çalıştıran bir geliştirici.

Geliştiricinin üretime rastgele değişiklikler yapmasının önünde başka engeller olup olmadığına bakılmaksızın, gerçekleşmesini teşvik eden bir başarısızlık modunda inşa etmek tehlikeli görünüyor.

Taahhüt edilen kodda yer alan varsayılan değerlerin her zaman güvenli olması gerektiğini öneririm . İsterseniz - neredeyse her zaman yaparım - üretim yapılandırma dosyalarını kaynak kontrolüne de kontrol edin, ancak "canlı" olmayan bir yerde saklayın.


0

Üretim dostu olma çabası içindeyim. Yapılarınızı temiz tutar ve harici ayarların üretime geçmesini önler.


0

KG ve üretim değişikliklerini otomatikleştirmek için komut dosyalarıyla kesinlikle geliştirici dostu.


-1

Neden konuşlandırılabilir kod için bir şube (hangi sürüm kontrolünü kullandığınıza bağlı olarak - Git'i kullanıyorum) ve geliştiriciye hazır sürüm için başka bir neden olmasın? Kulağa çok daha iyi geliyor ve kurulumu o kadar da zor değil.

Değişikliklerinizi çalıştırabilir ve uygulayabilir ve ardından konuşlandırılabilir sürümde birleştirebilirsiniz.


Çünkü uzun ömürlü dalları yönetmek pahalıdır ve birleştirilmesi zor olma eğilimindedir. Her iki dalda da tüm değişiklikleri yapmayı hatırlamanız gerekir. Her iki sürümü aynı yapmak ve / veya geliştirici hazır kodundan konuşlandırılabilir artifcat oluşturmak için bir komut dosyası yapmak çok daha iyi.
bdsl
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.