[ad_1]
Eski yazılımın ne olduğunu biliyorsunuz. Başkalarının yazdığı ve başkalarının kullandığı şeydir. Doğru? Yanlış. “Kodu gönderdiğiniz anda eski bir yazılımınız olur” Jean Yang’ı savunuyorAkita Software’in kurucusu ve CEO’su. “Seni bağlayan şeyler var. Değiştiremezsin. Geçen hafta yaptığım şeyleri hatırlamıyorum ve bence bu kod oluşturan her bir kişi için geçerli.”
Normalde “eski yazılımı” COBOL’da yazılmış ve bir yerde bir ana bilgisayar üzerinde oturan uygulamalar olarak düşünürüz. Bu tür bir düşünce, geliştiricilerin kodlarını daha sonra kimin okuması gerektiğini düşünmeden, miyop bir şekilde kod oluşturmasına yol açar. Yang’ın belirttiği gibi, bu, kodun orijinal geliştiricisi de dahil olmak üzere hemen hemen herkesi içerir.
Eski kodumuz hakkında nasıl daha akıllı olabiliriz?
Ağ aramaları ve karmaşıklık
Kodla ilgili bir sorun, hiçbir zaman gerçekten statik olmamasıdır. Asla öylece oturmaz. Honeycomb kurucu ortağı ve CTO olarak Charity Majors’ın öne çıkanları Yang ile yaptığı röportajda, “Ne zaman ağda atlasa, gizemli topraklardasınız. Artık üzerinde kontrolünüz yok.” Uygulamanız sanki bozulmamış bir Cennet bahçesinde yaşayabilir gibi, ancak yararlı olması için ihtiyaç duyduğunuz anda, ki bu genellikle bir ağ araması gerektirir, uygulamaya karmaşıklık getirdiğiniz için kıyamet kopar.
Majors, yazılımınızın nasıl davranacağını, onu üretime sokana kadar gerçekten bilemeyeceğinizi savunuyor. Bu “eski” koddaki çatlaklar yalnızca üretimde kendini gösterir. “Küçük bir kod parçası karmaşık bir sistemdir, ancak bir kez canlı olduğunda,” diyor, “kullanıcılar, trafik kalıpları ve altında farklı altyapılar olduğunda, karmaşık hale gelir.” Karmaşık, evet ve “bilinmeyen bilinmeyenleri” tanıtan şekillerde karmaşık. Majors devam ediyor, “Bir şeyi değiştirdiğinizde ne olacağını tahmin edemezsiniz. Bunu değiştirmeli ve kontrollü bir ortamda neler olduğunu izleyip görmelisiniz.”
İnsan sorunları, kod sorunları değil
Binbaşı olarak stresler“Bireysel mühendisler yazmak ancak yalnızca ekipler yazılımı teslim edebilir, gönderebilir, bakımını yapabilir ve sahip olabilir. Yazılım tesliminin en küçük birimi ekiptir.” Ne demek istediğinden emin değil misin? Yang, uygulamamızla ilgili sorunların (hatalar, hatalar vb.) teknik sorunlar olduğunu düşünerek kendimizi kandırabileceğimizi açıklıyor. Bu noktayı kaçırıyor, diyor ki: “Bu her zaman bir insan sorunudur. İnsanlara her zaman güvenmek zorundasın. Ve aletlerin yaptığı şeylerin çoğu, insanların ne yaptığı konusunda arkeoloji yapmanıza yardımcı oluyor. [did] Geçmişte, onlar ne [did] Geçenlerde, [and] bu sorunlara ne sebep oldu. Hepsi insan.”
Bu bizi mirasa geri getiriyor. Ve gözlemlenebilirlik.
Mirası anlamak
Majors, Yang ile yaptığı röportajda, “Yazılımımızdaki sorunları bulma ve düzeltme maliyeti, siz onu yazalı ne kadar uzun olursa, katlanarak artıyor” diyor. Bu nedenle, Akita veya Honeycomb gibi gözlemlenebilirlik araçları, kontrollü üretimde kodu çalıştırarak sorunları dakikalar içinde düzeltmeye yardımcı olmak için kritik öneme sahip olabilir ve geliştiricilerin eski kodlarını aylar, yıllar hatta on yıllar sonra deşifre etmeye çalışmak yerine, yazıldıktan hemen sonra hatalarını ayıklamalarına olanak tanır. .
Bu aynı zamanda iyi dokümantasyonun çok önemli olmasının nedenidir. Bazen belgelemenin, yazdığımız kodla başkalarının daha üretken olmasına yardımcı olmak olduğunu düşünüyoruz ve bu doğru. Ancak Datasette’in kurucusu Simon Willison’ın bir keresinde bana açıkladığı gibi, kendisi için belgeler yazıyor, aksi halde neden belirli bir şekilde kod yazdığını unutmaya meyilli. “İki ay sonra projeye geri döndüğümde her şey çalışıyor ve her şeyin nerede olduğunu biliyorum” diyor, çünkü kendisine (veya bir başkasına) kodu yeniden yönlendirmesine yardımcı olmak için ayrıntılı belgeler yazmıştı.
İyi dokümanlar, iyi birim testleri ve iyi gözlemlenebilirlik. Majors, “Geliştirmenin bir parçası onu işletmek ve farklı sistemler ve kısıtlamalar altında nasıl davrandığını görmek” diye ısrar ediyor. IDE’deki kodunuzu asla anlamayacaksınız.” Çalıştırmanız ve ardından gözlemlemeniz gerekir.
Peki ya kodunuza bakıp onu yıllar veya on yıllar sonra çalıştırmaya çalışanlar? Bunun kendileri için geçerli olmadığını düşünenler için bile, ne olduğunu bir düşünün. Avishai Ish-Shalom geçenlerde tartıştı: Linux, MySQL, PostgreSQL vb. gibi “modern” altyapımız onlarca yıllık ve “modern” bulutlar bile artık orta onlu yaşlarında. Daha da endişe verici bir şekilde, “Bu altyapı, en iyimser tahminlerimizden çok daha esnek ve istikrarlı olduğunu kanıtlamakla birlikte, paslanma ve eskime belirtileri gösteriyor, bakım ve geliştirmeyi yıldan yıla daha zor hale getiriyor.”
Hem yeni miras hem de eski miras açısından hepimiz bir miras dünyasında yaşıyoruz. Monolitlerden mikro hizmetlere (bazen), diskten RAM’e geçiyoruz ve donanım veya yazılım kısıtlamalarına çarptığımızda veya yeni gelişmelerden yararlanma fırsatlarını gördüğümüzde daha birçok şey yapıyoruz. Yang’ın iç Tolstoy’unu kanalize ederek detaylandırdığı gibi, yıllarca ya da on yıllarca eski sistemlerle uğraşanlar için durum daha da kötüleşiyor: “Geçen yıl inşa edilen her sistemde aynı şeyler var, ancak 5, 10 yıl önce inşa edilen her sistem, hepsi farklı şekillerde eskidir…. Her eski sistem kendine özgü bir şekilde mirastır.”
Bu nedenle şirketler, bir keşif aracı gibi hizmet eşlemesi yapmak için Akita’yı kullanıyor. Mevcut sistemlerinin ne yaptığını ve nasıl çalıştığını anlamaya çalışıyorlar. Aynı kişiler Honeycomb ile daha da derine inebilir. Her iki durumda da, bu gözlemlenebilirlik araçları, Majors’ın dediği gibi “karmaşıklığı izlenebilir hale getirmeye” çalışır, böylece insanların – insan ekiplerinin – daha fazla yazılımı anlamasını ve teslim etmesini sağlayabilirler.
Tabii ki, bu daha da fazla miras yaratır. Ancak bu mirası anlamak ve evcilleştirmek için gözlemlenebilirlik araçlarını kullandığınız sürece sorun değil. Mirastan kaçınmanın bir yolu yok. Artık istemek için bir sebep yok.
Telif Hakkı © 2022 IDG Communications, Inc.
[ad_2]
Kaynak : https://www.infoworld.com/article/3667996/how-observability-tools-help-with-legacy-software.html#tk.rss_all