İngiliz şirketlerinden birisi XML’i karmaşık data serilerini, pipeline kullanarak düzenlemek konusunda çalışıyor.
UNIX pipeline modüler programlamanın şık bir gösterimidir. Pipe sembolü (|) bir çıkışı (veriyi), komutla bir giriş (input) olması için yönlendirir. Örneğin;
grep “@param” Decode.java | sort
grep ve sort komutlarını, @param java dökümanının sıralanmış bir listesini vermesi için birleştirir.
Pipeline basit ama verimlidir. Atomik komutlar yazmaya odaklanmış programcılara (yıllarca bir sürü oluşturuldu) çok yararlıdır. Kullanıcıların çok karmaşık işlemleri 2 basit komut ile düzenleyebilmelerine yardımcı olur.
Delta XML
Text bazlı komutlarda kullanıldığından, henüz karmaşık data serilerinde kullanılmalası uygun değildir. XML’e kadar bu böyle idi. Programcılar şimdi, modern pipeline’ın bir çeşidini diğer araçlarla birlikte kullanarak, program yazmanın kolaylığını keşfediyorlar.
Delta XML, İngiliz Monsell Ltd.’in bir ürünü. Bu eğilimin en iyi örneği. Robin Lafontaine ile birlikte bu ürünün özelliklerini inceledik.
Monsell aslında, devre kartlarının dizaynında değişiklikler üzerine çalışan bir danışmanlık firması idi. 1998 yılında, tecrübelerini XML üzerine aktarmaya karar verdiler ve böylece Delta XML doğdu.
Muhtemelen kodları güncellerken kullanılan diff komutları (ya da windiff) ile haşır neşirsinizdir. Delta XML, dökümanlarda benzer bir rol oynuyor. Ancak diff’in aksine syntax’ı biliyor ve dal-dal (tree-by-tree) kıyaslama yerine satır satır (line-by-line) kıyaslama yapıyor.
Lafontaine, “Yazılım kademe kademe test ediliyor. Programcı, yazılımın farklı versiyonlarının çıktılarını karşılaştırarak bunu görebilir” diyor.
Daha ilginç bir uygulama, versiyon kontrolü. Lafontaine bu konuda “Delta XML, sadece dosyaları karşılaştırmıyor, aynı zamanda delta’dan yardım alarak onları yeniden oluşturuyor. Farzedin ki A ve B adlı 2 dosyayı karşılaştırıyorsunuz. Delta 3.bir dosya yani C yaratır. C’yi A’ya uygulayarak B’yi oluşturur. B’ye uygulayarak A’yı kurtarır. ” diyor.
Bu özellik aynı zamanda geri dönüşlere imkan sağlar. Eğer bir dökümanın eski bir versiyonunu geri istiyorsanız. Delta’yı ters yönde kullanmalısınız. Örneğin, XML editöründe Delta XML, “undo” fonksiyonu yerine getirir.
Pipeline
Delta XML’de beni en çok etkileyen, herkese herşeyi vermeye çalışmıyor oluşu. Bir tek şeyi ama iyi bir şekilde yapıyor. Diğer araçlarla birlikte de iyi çalışıyor. Delta dosyası bir XML dökümanıdır. Kullanıcılar XSLT ya da SAX kullanır. Lafontaine’e göre “Bu özellikle çok kolay çünkü, delta mirrors orjinal dosyalardır. Bu nedenle de sayfa düzeni filan dizayn etmenize gerek kalmaz” diyor.
Delta XML’e bir göz atmalısınız. Sadece iyi bir alet olduğu için değil ama aynı zamanda yeni bir şeyleri görmek için. Basit araçlar yaratıp, bunları pipeline ile birleştirin. Web sitesinde DeltaXML online bir örnek çalışmayı görebilirsiniz.