Herkesin maliyetleri, faydaları ve riskleri mideye çekebildiği sürece bunu yapmakta yanlış bir şey yoktur.
... düzeltme, kodu kendim düzeltmek için yeterince basit görünüyor ...
Yapmanız gereken bir işiniz olduğunda, mükemmel (tam olarak istediğiniz şey olan bir üçüncü taraf kütüphaneye sahip olmak) yeterince iyinin düşmanıdır (kendiniz yamanız) ve bazen böyle şeyler yapmanız gerekir. Ticari kütüphaneler için kaynak lisansları satın aldığımız ve satıcıya ulaşmadan önce sorunları çözebileceğimiz bir dizi proje yaptım.
... dedektörler, riskli olduğu ve zahmetli bir karmaşıklık getirdiği için bunun neredeyse her zaman kötü bir fikir olduğunu savunmak istiyorlar.
Başkasının kodunu incelemek, bir sorunu tanımlamak ve bir düzeltme yazmak için parçalara sahip değilseniz, kötü bir fikirdir. Kodun kurum içi mi yoksa üçüncü taraf mı olduğu doğrudur; tek fark, kucağınıza inmeden önce bir kabinin veya bina duvarının üzerine atılmış olup olmadığıdır.
Senin iftiralarını basitçe maliyetlerini tartı olmadan bir kenara fikrini fırçalama yapıyorsanız değil bu yamayı yapıyor, onlar da derslerine yapmıyoruz. Yamanızın gidereceği hatadan etkilenen çok sayıda şirket içi kodunuz varsa, etrafınızda çalışmak ve doğru çalıştığından emin olmak için her şeyi yeniden test etmek zorunda kalacaksınız. Daha sonra, paketi bug-fix sürümüne yükseltirseniz, geçici çözümlerinizi bulup kaldırmanız ve tekrar test etmeniz gerekebilir. Bunu yapmanın riskleri de vardır, örneğin, değiştirdiğiniz bir vakayı kaçırmak veya testi yetersiz tutmak gibi. Şahsen, kaynağında bir hatayı düzeltme fırsatı bulursam, kodun geri kalanını bir sineklik ile kovalamaktan ziyade her şeyi alacağımı umuyorum.
... kod değişikliği bizim tarafımızdan yapıldı ... kod tabanımızın bir parçası olmalı ... onu yeni bir proje olarak tanıtmalı ve otomatik yapısını derleme sürecimize dahil etmeliyiz.
Bir yama yapıyorsanız, yama kendi kodunuzun bir parçasıdır, yani onu sürecinizin bir parçası haline getirmeniz gerekir. Bu, sisteminize% 100 kodunuzu ekleyen bir şey eklemekten farklı değildir. Üçüncü taraf dağıtımına sakrosanct gibi davranın ve tıpkı kaynak kodu gibi bir modüle yerleştirin. Yazdığınız tüm yamalar ayrı dosyalarda saklanır ve oluşturma işleminin bir parçası olarak uygulanır. Bu şekilde her zaman temiz kaynaktan yamalı kaynağa ve yerleşik ürüne geçersiniz ve neler olduğunu tam olarak gösterebilirsiniz. (Bazı kişiler bunu sürüm denetiminde paketinden çıkarır, el ekler, yeniden paketler ve saklar. Bu kötü.)
... kodlarını kaynak kontrol havuzundan bizimkine çekerdik ve kod değişikliklerinin arkasındaki geçmişi kaybederiz ...
Üçüncü taraf kitaplığına üçüncü taraf bağımlılığı olarak davranıyorsanız, başlangıç için bu geçmişe sahip değilsiniz ve hiçbir şey kaybetmiyorsunuz. Üçüncü tarafın deposuna sürekli erişiminiz varsa, ihtiyacınız olması halinde bu konuda danışabilirsiniz. Üçüncü taraf sürümlerine, kendi sisteminize değiştirmeden kontrol ettiğiniz amorf lekeler gibi davranılmalıdır. Kullandığınız sürüm ve daha sonraki sürümler arasındaki değişikliklere bakmanız gerekiyorsa, bunu yapabilir ve isterseniz, istediğiniz değişiklikleri içeren eski sürüme düzeltme ekleri getirebilirsiniz.
Ayrıca, yapılması gereken küçük bir kod değişikliği için çok karmaşık bir şey gibi görünüyor.
Derleme işleminiz yeterince karmaşıksa, bunu eklemek kendi kodunuzu eklemekten daha zor olmamalıdır. Açma / düzeltme eki / oluşturma işleminin otomajik olduğu noktaya ulaşmada az miktarda emek vardır, ancak bir kez yapıldığında sonsuza kadar yapılır. Şimdi bir hata olabilir, ancak gelecekte yirmi olabilir. Varsa, şimdi hepsini desteklemek için zemin hazırladığınızdan çok daha mutlu olacaksınız, çünkü gelecek 19 ile daha az iş yapmayı başaracaktır.