Derlemeyi serbest bırakmak için hangi noktada geçiş yapmalısınız?


17

Jez Humble'ın Sürekli Teslimi'nde ortaya konan uygulamalardan biri, bir paket oluşturup dağıttığınız her ortama bırakmanızdır, böylece dağıtım ve yapay nesneler üretime başlamadan önce birçok kez test edilmiştir.

Bu fikri tamamen destekliyorum.

Öte yandan, satır numaralarıyla yığın izleri veren hata ayıklama modu yapıları, uzaktan hata ayıklama yeteneği gibi test ortamlarında inanılmaz derecede faydalıdır. Ancak, üretime bir sürüm derlemesi göndermek istiyorsunuz.

Peki, ilk prensibi izleyen insanlar için, hata ayıklamadan derleme sürümlerine hangi noktada geçersiniz?

Bir test ortamına ilk dağıtımdan önce, gerçek sürüm adayını erken test ettiğinizden emin olmak için hata ayıklama modunu kaybetmenin maliyetini ödemeye değer mi? Veya yazılımın oluşturma sürecine güveneceğinizi düşünerek promosyon sürecinin bir noktasında tekrar mı inşa ediyorsunuz? Yoksa sadece hepsini vidalayıp hata ayıklama sürümlerini üretime mi dağıtıyorsunuz?

Not: Bunun yorumlanmış diller için gerçekten geçerli olmadığını biliyorum, çünkü genellikle yapılandırma sırasında anahtarı yapılandırma zamanında atlayabilirsiniz.


Cevaplarınız için teşekkürler. Düşünce için iyi yemek. Ama bence "Değişen yapıların noktası çoğunlukla hataların yeniden üretim maliyetlerine bağlıdır" düşünce sürecimi temizlemenin işaretini alıyor.
pdr

Yanıtlar:


5

Peki, ilk prensibi izleyen insanlar için, hata ayıklamadan derleme sürümlerine hangi noktada geçersiniz?

Kaynak kod bir sürüm numarası aldığında ve Debian oluşturma kuyruğuna aktarıldığında erken geçiş yapıyoruz. Bununla birlikte, iyi belirlenmiş girdiler ve çıktılar ve az sistem etkileşimi ile bilimsel yazılım yapmanın şanslı durumundayız, bu nedenle bir hata durumunu yeniden üretmenin maliyeti oldukça düşüktür.

Bu da benim genel cevabım: Değişen yapıların noktası çoğunlukla hataların yeniden üretim maliyetlerine bağlıdır. Bunlar çok yüksekse, müşterileri test etmek için hata ayıklama yapıları bile gönderirim. Bu, üretim yapısı için derleme hataları riski taşıyor olsa da, bu durum test senaryolarının yeniden üretilmesinde haftalar harcamaktan daha ucuz olabilir.


3

Peki, ilk prensibi izleyen insanlar için, hata ayıklamadan derleme sürümlerine hangi noktada geçersiniz?

KG'ye geçer geçmez derlemeleri serbest bırakıyoruz. Ama ne zaman biz bir sürüm inşa inşa bizim derleme süreci de dlls hata ayıklama sürümü oluşturur. Bu bize hızlı bir şekilde hata ayıklama dll QA ortamına bırakmak ve gerekirse ek bilgi almak için izin verir.

Dll'lerin hem sürüm hem de hata ayıklama sürümleri yedeklenir ve birkaç yıl boyunca saklanır.


2

Çevremizde, kod birçok sitede dağıtılır. Dolayısıyla, her dağıtım örneğine farklı bağlamlar uygulanmalıdır. Genellikle, bunu kilit "daha az riskli" bir yere yerleştirir ve deneyimi görürüz.

Bu dağıtım hala üretim aşamasında olduğundan bu 'hata ayıklama' modu değil. Ancak testin iyi yapıldığını da varsayar.

Elbette, hata ayıklama modu kapalıyken, kodun (sitede) hızlı hata ayıklaması zor olabilir. Ancak sürüm başarısız olursa, üretim geri sürümüne geri döner.

Bununla birlikte, tekrar test etmek için böyle bir ortamı üretebilen özdeş bir ortam sağlamaya veya yaratmaya çalışıyoruz. (Bunun her zaman önemsiz olmadığını biliyorum) ama bazen ihtiyacımız olan tek şey işlemleri / girdileri yeniden oluşturmak.

Nokta günaha, debug modu bırakma gerektiğini ne kadar şimdiye kadar olduğu değil üretimde olmak. Yine de, bunun bir kural olduğunu söylemeyeceğim.

Başka bir şey, diğer tesisler henüz kabul etmedikçe, (önemli bir süre çalışarak) serbest bırakılıncaya kadar sürüme deneme denir.

İnşa sürecinin kendisinin oldukça hatalı olmamasını sağlamak için başka birkaç uygulama var. Şuna bakın: RAD ortamında sürüm kalitesini artırmanın basit yolları


2

Geliştirici makinelerimiz hata ayıklama derlemeleri oluşturmak üzere ayarlanmıştır. Ancak devs kod işlendikten sonra, sürekli entegrasyon ortamımızda (TeamCity) bir dağıtım paketi oluşturulur ve bu sürüm yayınlanmak üzere oluşturulur. Bu nedenle, KG'ye dağıtmaya karar verdiğimizde, en son dağıtım paketini CI sunucusundan alıp dışarı aktarırız, bu nedenle bir geliştirici makinesinde olmadığı sürece her zaman serbest bırakılır.

BTW, bazı diller için, sürüm için oluştururken bile, hata ayıklama sembolleri oluşturabilirsiniz. Örneğin, .NET'te, optimizasyonlara izin veren ancak yine de hata ayıklama dosyaları oluşturan bir "yalnızca pdb" ayarı vardır. Bir sürüm sürümüne karşı hata ayıklama, satır satır eşdeğeri olmadığı için daha zordur, ancak yine de bir tutamda yardımcı olabilir.

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.