Artefakt (veya eser) nedir?


17

" Eser havuzu nedir? " Sorusu , veri havuzu kısmı hakkında ilginç bir açıklama içeren bir cevap içerir . Ve tüm cevabı okuduktan sonra DevOps bağlamında bir " yapay yapının" tam olarak ne anlama geldiğinden emin değilim .

Herhangi bir öneri?

Ps: Cevaplardan birinden, belki de artefaktın merak ettiğim (karışık mı?) Olduğunu anladım ...


2
İngilizce SE arkadaşlarımız "artifact" ve "artefact" ile ilgili bir görüş yazmış: english.stackexchange.com/questions/37903/…
7ochem

Yanıtlar:


19

Wikipedia'nın bu soruya çok iyi bir cevabı var. Buluntu bazen de denilen, Türetilmiş Nesne , bazılarının bir ürünüdür sürecine uygulanan için Kod Deposu . Başlangıçta Yapı Yapıları olarak adlandırıldı , ancak bunları oluşturmak için yapı dışında daha fazla işlem uygulandığından, ilk sözcük basitçe düştü.

En büyük ayrım, işlemin uygulandığı ortamı korumanız koşuluyla, eserlerin aynı işlemi kullanarak kod deposundan yeniden oluşturulabilmesidir. Bu süreç zaman alıcı olabileceğinden ve eserleri aynı şekilde yeniden yaratabilmek için çevre kusursuz bir şekilde korunabildiğinden, bunları Artefakt Depolarında depolamaya başladık .

Birbirinden onları saklanması Kod Deposu bir in malzeme havuzu bir DevOps mühendisi yapacak bir tasarım karardır. Bazı şirketler, örneğin Perforce , Kod Deposu'nu Artefakt Deposu olarak da kullanmanızı önerir . Her depoda erişim , denetim , nesne boyutları , nesne etiketleme ve ölçeklenebilirlik açısından farklı gereksinimler vardır ve bu nedenle duruma bağlı olarak iki farklı ürün kullanmak genellikle daha iyidir. Örneğin Gitdepolar bütünüyle her geliştirme makinesine kopyalanır ve bu nedenle kod deposunda eserlerin depolanması boyutunun tüm nedenlerin ötesine geçmesine rağmen, son zamanlarda bunu hafifletmenin yolları vardır. Verilecek başka bir karar, hangi eserlerin saklanacağıdır. Bazı şirketler ara yapıları bile tek tek nesne dosyaları olarak saklar, yeniden oluşturmayı hızlandırır, diğerleri ise sadece son ikili dosyaları depolar. Tüm eserler aynı değere sahip değildir. Bir sürüm derlemesinden kaynaklanan yapay nesneler, geliştirici derlemesinden kaynaklanan yapay nesnelerden farklı gereksinimlere sahip olabilir.

En yaygın eserler aşağıdaki işlemlerin sonuçlarıdır: Yapılandırma , Önişleme , Derleme , Bağlama , Otomatik Test , Arşivleme , Paketleme , Medya dosyaları oluşturma ve işleme , Veri Dosyası Oluşturma , Dokümantasyon Ayrıştırma , Kod analizi , KG , vb.


Git boyutu ile ilgili cümle tam olarak doğru değildir, git lfs kullanarak bu sorunu azaltabilirsiniz. (sadece küçük bir hassasiyet)
Tensibai

İlginç, bu benim düşüncemi (tahminimi) daha da doğrular. 2 şey: performans bağlantınızın düzeltilmesi ve ekstra soruya ihtiyacı var: "test verilerinizi takip etmenin" (kullandığınız girdi ve aldığınız çıktı) da bu tür eserler olarak kabul edilebileceğini kabul eder misiniz? Ve BTW, bu cevap bana "yazılım emanet" alanında kullanılan "doğrulama seviyeleri" hakkında hatırlatıyor (eğer bunu biliyorsanız). DevOps için konu olarak düşünülmesi gereken yazılım emanet konularını merak etmeye başlıyorum ... Belki @Tensibai de bu konuda yorum yapmak isteyebilirsiniz?
Pierre.Vriens

1
Test verileriniz için veriler, test verileriniz bir DB ise, yapay bir fikirle uyuşmayan günler için zordur. Emanet için, hiçbir fikrim yok, eğer sorular bana yeterince iyi geliyor odaklanmış.
17'de Tensibai

@ Pierre.Vriens Yani 'test verisi' ismini takan o kadar çok şey var ki (basit sayıdan milyonlarca dosyaya örnek DB kayıtları üzerinden) bağlamsız çok geniş.
17'de Tensibai

@ Pierre.Vriens (ve bildirimler için üzgünüm Jiri) Sağlayıcınızla yapılan sözleşme görüşmelerinin konuyla ilgili olduğunu düşünmüyorum ve açıkladığınız şey sanırım sadece yasal görüşmeler.
17'de Tensibai

7

“Artefakt” kelimesinin iki kullanımı vardır ve biri kaynak kodunu bir artefakt haline getirir, ikincisi ise bir artefakt olmamasını sağlar: bu gerçekten oldukça kafa karıştırıcı olabilir!

Somut bir şey olarak “eser” - ideal bir şey - Bu anlam “bir insan tarafından yapılan bir nesne, tipik olarak kültürel ya da tarihsel ilgi alanlarından biri” kelimesinin ortak anlamıdır ve teknik jargon değildir. Teknik bağlamda bir örnek: Bir yazılımda hata ayıkladığınızda, yazılım hakkında bir şeyler öğrenirsiniz. Bu öğrenmeyi bir regresyon testi gibi bir yazılım yapısına dönüştürmek genellikle değerli bir yatırımdır. Aksi takdirde bu öğrenme unutulur ve edinilmesi için harcanan çaba boşa gider. Bu anlamda kaynak kodu bir eser olarak kabul edilir.

Bir tarif tarafından üretilen bir şey olarak “artefakt” - Bu anlam, genellikle bir artefakt olarak adlandırılan büyülü bir cihaz üretmek için bazı ezoterik reçete kullanarak simyacıların popüler görüntüsünü kullanır. Simyacı metaforundaki tarife karşılık gelen kaynak kodu ile simyacı metaforundaki bir esere karşılık gelen bu kaynak koddan türetilen herhangi bir şeyi ayırt etmek için kullanılan teknik jargon. Örneğin , plop-fizz programımın eser üretimini otomatikleştirdim, şimdi kaynak tarballs, imza dosyaları, DEB ve RPM paketleri tek bir komutla başlatılabilir! Terim bu kaynak koddan üretileni belirtmek için kullanıldığı için, bu anlam kaynak kodunu bir artefakt olarak tanımamaktadır.


3

Sanırım cevap bir yerden bir yere değişebilir. Şu anda çalıştığım yerde bir yapı, geliştirme için kullanılan kaynak kodu hariç, başka bir varlık tarafından tüketilen herhangi bir şeydir - bu kaynak kontrolüne girer.

Bu, ürünün ikili dosyalarını veya diğer gerekli ürünleri, kitaplıkları, nesne dosyalarını, medya dosyaları veya test verileri gibi test yapılarını içerir.

Kaynak kodu bir eser olarak kabul edilmez. Üçüncü taraf kitaplıkları, test veya diğer amaçlar için kullanılan komut dosyası kodunu (ancak geliştirme sürümünün kendisini içermeyen) içeren "tüketen" tanımıyla eşleşmedikçe.


Hm, ilginç, tahmin ettiğimi onaylıyorsun. Hangi platformdan veya işletim sisteminden bahsettiğimizin gerçekten önemli olmadığı konusunda hemfikir misiniz? Örneğin, anabilgisayarlar için bile bu terminolojiyi "belki" kullanabilirsiniz ... Öyleyse, cevabınıza bununla ilgili bir şeyler de ekleyebilir misiniz?
Pierre.Vriens

Sürüm kontrolündeki gerçek kod bile tüketilirse bir eser olarak düşünülebilir / düşünülmelidir. Örneğin, bir web sitesinde olduğu gibi dağıtılacak şablon tabanlı HTML sayfaları. Bunlar, örneğin gerçek dağıtım için geçici bir konumdaki diğer yerleşik yapay nesnelerle açıkça kopyalanması gerekebilecek dağıtım yapay öğeleridir. Ancak bunları bir kaynak deposunda saklamak çok mantıklı olmayabilir , çünkü her zaman kaynak kodu deposundan elde edilebilirler.
Dan Cornilescu

@Pierre Hangi işletim sisteminin bir yapay yapı olduğuna dik olduğunu doğrulayarak, neden cevaba dahil edilmesi gerektiğinden emin değilim, diğer birçok şey de önemsiz.
Rsf

0

Kültür tarafında yan not. DevOps'ta "artefakt deposu" kavramını belirli bir durum olarak görürken, örgütsel süreçle çok fazla bağlantı yok gibi görünüyor.

Kültür sorunu: Eğer bir kuruluş ITIL kullanıyorsa, sertifikalı kişiler "kesin bir medya kütüphanesine, yani ürettiğimiz yazılım yapılandırma öğelerini yerleştirmek için böyle bir depoya ihtiyacımız var" derlerdi. Dolayısıyla, iyi yapılandırılmış BT süreçlerini önemseyen insanlar, hangi (yönetimsel olmayan) araçların bunu desteklediğini ve kullanımda olduğunu bilmezler. Bunun tersine, bir Nexus veya Yapay Dil için bir gerekçeye ihtiyacınız varsa, kuruluşa bağlı olarak bunu açıklamakta zorlanabilirsiniz.

Daha fazla okuma: https://en.wikipedia.org/wiki/Definitive_Media_Library


1
Selam. Siteye hoş geldiniz. Lütfen cevaba daha fazla bilgi ekleyin. Şu anki durumunda, sadece bağlantı ve işaretlenecek :)
Dawny33

DevOps da kültürle ilgiliyse, ITIL ile bir bağlantı olduğunu düşünüyorum çünkü bazen BT organizasyonunu daha yüksek bir organizasyon düzeyinde yönetiyor. Bu cehalet simetrisini açıklığa kavuşturmak için daha fazla açıklama eklendi.
Peter

1
Bunun bir eser olduğu sorusuna gerçekten değindiğini sanmıyorum, ama en azından şimdi cevaplamak için dürüst bir girişim gibi görünüyor.
Tensibai

@Tensibai (şimdi) ile hemfikirim ve önceki yorumumu sildim (artık şüpheli değil). Ve bu cevaptaki her şey mantıklı olsa da, yine de bu "Side note" -answer'ın soru başlığımı nasıl ele aldığını anlamıyorum, soru başlığımda da özetlemeye çalıştım, yani " Bir eser (veya eser nedir) )? " Yeni girişimleri memnuniyetle karşılıyorum, tamam mı?
Pierre.Vriens
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.