it-swarm.asia

XML çok kötü ise ..... neden bu kadar çok insan kullanıyor?

XML'in amacını anlıyorum, ancak insanların her zaman ne kadar KÖTÜ olduğunu şikayet ettiklerini duyuyorum? Bu konuda neyin kötü olduğunu gerçekten anlamıyorum? Genellikle "şişirilmiş" ve "yavaş" terimlerinin duyulduğunu duyarım.

Ama sanırım programcı olarak, bunu esas olarak ne için kullanıyorsunuz? Ve bunu gerçekten "kötü" olarak mı düşünüyorsunuz ... çünkü eğer öyleyse, çok sayıda insan veri taşımak için kullanıyor ...

37
user6791

Xml, tasarlandığı şey için harikadır - düşük seviyelerde veri doğrulamasını zorunlu kılmak için bazı yeteneklere sahip, platformdan bağımsız, insan tarafından okunabilir bir veri aktarım protokolü. Bu şekilde Xml kullanan herkesin gerçek bir şikayeti olduğundan şüpheliyim. En özlü tel formatı mı? Hayır. Ama daha kötü seçenekler var. Özel ikili biçiminizi okumak kadar hızlı mı? Hayır. Ancak iş ortaklarınız, kullandıkları yığında okuyabilir.

Ancak sorun şu ki, insanlar - özellikle kurumsal mimarlar olarak bilinen cins - şeytani ve iyi şeyler alıp onları kötü yapıyorlar. Xml durumunda, bu yüzyılın başlarında Xml, her BT sorunu için evrensel çekiç olarak görüldü. Komite tarafından küçük bir tasarıma serpiştirin ve SOAP ve oXML gibi korkunç canavarlıklarla sonuçlanın.

91
Wyatt Barnett

XML sadece birçok lezzet ve kullanımda gelen bir araçtır. XML bazı şeylerde mükemmel, bazılarında berbat. Bence sorunlardan biri insanların ad alanları ve etrafa saçılmış bok (SOAP, kimse?) İle gereksiz yere karmaşık "kurumsal" XML görmüş olmasıdır. İnsanlar için XML formatları tasarlamanın püf noktası, verilerin okunmasını zorlaştırmazken verilere gerçek bir anlam katıyor.

İnsanların sorun yaşadıkları şeylerden biri, XML'nin bazen bir karakter veya eksik bir parantez tıklamasıdır. Bununla birlikte, bunun için hem bir yukarı hem de bir dezavantaj var. Bunun tersi, farklı yarı geçersiz sözdizimi vakalarının farklı şekilde yorumlanabileceği HTML'de olduğu gibi belirsizliğe sahip olmamanızdır.

Dezavantajı yazar için biraz daha zor ve öğrenmesi zor. HTML, XML kadar katı olsaydı, web'in bu kadar hızlı olmayacağı yönünde bir argüman olduğunu kabul ediyorum, ancak bugün yaptıkça memnun olacağımızı da iddia ediyorum. :)

Ayrıca, bunu yapabildiğiniz için her şey için kullanmayın, uygun şekilde uygulamak için mantıklı ve yargıya sahip olun. Tek sahip olduğunuz XML ise, her zaman istediğinizden uzak bir XSLT dönüşümü olma eğilimindesiniz. :)

Biçimin yalnızca insanların onunla etkileşim kurması gerektiğinde önemli olduğunu iddia ediyorum. Bir şeyi serileştiren ve başka bir program tarafından tüketileceği bir yere gönderen bir program yazıyorsanız, olabildiğince verimli olduğu sürece kimin umurunda? Tüm umurumda için bir ikili biçim veya bunnies ve tek boynuzlu atlar kullanın.

XML'in Artıları

  • YAML ve JSON'un yapmadığı birçok Edge vakasını kapsar
  • Bir dizi farklı platform ve dilde XML'yi ayrıştırmak ve doğrulamak için mükemmel araçlar vardır
  • XML kolayca ve güçlü bir şekilde başka bir formata dönüştürülebilir (XSLT gibi şeyler aracılığıyla)
  • Makul XML belgeleri insanların okuması ve düzenlemesi kolaydır; Bana JSON'un daha kolay olduğunu söyleme, değil :)
  • XML bir dereceye kadar kendini tanımlamaktadır, yani doğrudan yapısı ve anlamı hakkında bilgi içerir (çoğu ikili formatın aksine)
  • Kodlama kolları
  • Platformlar arası kullanımı kolaylaştıran boşluk agnostik
  • İyi biçimlendirilmemişse kırılır (Verilerin yapısal olarak doğru olmasını sağlar)
  • SGML değil

Eksileri

  • Gereksiz sözlerle dolu
  • İkili ayrıştırmak kadar hızlı değil
  • İyi biçimlendirilmemişse kırılır (uygulamanızı kilitler)

İyi kullanımlar

  • Yapılandırma dosyaları
  • Veri değişim formatları
  • Versiyona dayanıklı dosya formatları
  • Belgeleri veritabanlarında saklama

Çok iyi değil

  • Veri aktarım formatları
  • Nesneleri Serileştirme
  • İlişkisel verilerin veritabanlarında depolanması
  • Yüksek performanslı G/Ç senaryoları için dosya biçimi
24
Homde

Jeff Atwood'un XML: The Angle Bracket Tax adresinde oldukça iyi bir blog yazısı var.

Bunun için en yaygın kullanımları:

  • Hizmetler birbirleriyle konuşuyor. Örneğin, bir içerik yönetim sistemi kullanan bir web sitesi, bir müşteri ilişkileri yönetim sistemine bazı veriler göndermek zorundadır ve bu XML ile yapılır.

  • Yapılandırma deposu. Web.config ve app.config yaygın örneklerdir, ancak nAnt komut dosyaları da bunlara XML ekleyebilir.

Bunun en uygun olduğunu düşünmüyorum ama bu tek başıma zihnimi kötü yapmıyor.

14
JB King

İki sebep:

  1. Dışarıda çok fazla kötü programcı var. XML kötü olabilir, ancak aynı zamanda basittir (en azından yüzeyde) ve kötü yazılım yazmayı çok kolaylaştırır. VB gibi Sorta.
  2. Bu kararları veren birçok insan programcı değil, sadece "herkesin XML kullanıyor" olduğunu işleyen ve bu nedenle de ürünlerinin XML kullanmasını istediklerine karar veren işletme türleri.
11
Mason Wheeler

Genellikle "şişirilmiş" ve "yavaş" terimlerinin duyulduğunu duyarım.

En kompakt sözdizimi değil, ama açıkça en etkileyici sözdizimi. İnsan tarafından okunabilir mi? dilinizi nasıl tasarladığınıza bağlıdır. Çoğu insan XML için bir dil tasarlamaz, sadece nesneleri XML olarak serileştirir.

… Neden bu kadar çok insan kullanıyor?

Her yerde var. XQuery ile bir XML veritabanını sorgulayabilir, XSLT ile sonuçları XHTML veya Atom olarak dönüştürebilir, Atom veya diğer web hizmetlerinden başka bir XML biçimi alabilir, XForms kullanan kullanıcılardan XML alabilir, XMLSchema ile doğrulayabilirsiniz , Relax NG veya Schematron, XProc ile işleyin, XQuery Update ile veritabanına geri kaydedin.

XML bir serileştirme teknolojisi değildir, genel amaçlı bir bilgi kümesidir.

8
Max Toro

Burada, farklı dahili temsillere sahip farklı satıcılar tarafından yapılan farklı sistemler arasında veri alışverişi için kullanıyoruz. Verileri ileri geri yönlendirmek için bir XML dönüşüm/değişim sistemi oluşturuyoruz. Bunun için iyi çalışıyor.

XML doğası gereği kötü değil, ama XML kullanarak "iyi" bir çözüm tasarlamanın önemsiz olmadığını kabul ediyorum.

"XML'in özü şudur: çözdüğü sorun zor değildir ve sorunu iyi çözmez." - Phil Wadler, POPL 2003

Kişisel düşüncem, doğrulama, şemalar, XSLT'ler ve geri kalan çirkin şeyleri önemsemediğiniz ve dosyaların boyutunu küçük tuttuğunuz sürece (aksi takdirde ayrıştırma yavaşlar) XML'in bazı iyi kullanımlarını bulabilirsiniz (bir örnek INI dosya) yerine uygulamanızı yapılandırmak içindir.

5
sakisk

Deneyimlerime göre, insanlar teknolojinin kendisinden değil, çoğunlukla nasıl kullanıldığından şikayet ediyorlar.

İnsanların şikayet ettiği şişkin ve yavaş bitler genellikle ondan bilgi almak için kullanılan kütüphaneler/yöntemlerdir.

Diskte depolamak istediğim (veritabanı veya ikili serileştirme olmadan) küçük miktarlarda yapılandırılmış bilgi depolamak veya başka bir uygulamaya geçmek için kullanıyorum (aslında SOAP da açıklanmaktadır).

4
Steven Evers

İyi çünkü:

Birden fazla heterojen sistemin iletişim kurmak için kullanabileceği bir standart "Arayüz". Ve "İnsan" Okunabilir (bir çeşit, 5 MB XML'e bakmayı deneyin)

Kötü çünkü:

Şişirilmiş, daha büyük boyutu = daha fazla bant genişliği = daha fazla $$

Başka nedenleri var, herkesin farklı bir tutuşu var ...

2
Darknight

Diğer tüm teknolojilerde olduğu gibi: Mevcut birçok araç ve kütüphane vardır.

XML'i sevmiyorum, özellikle korkak, insanlar insan tarafından okunabilir olduğunu söylediğinde, şaka yapıyorlar, sanırım ya da bir özelliği xml'yi bir özniteliğe gömmeye çalıştığında hiç bir xml okumadım ... xml varlıkları gerçekten okunmaz. Ayrıca, gereksiz bitiş etiketi ve serbest metin ve verileri karıştırma yeteneği nedeniyle ne kadar alanın boşa harcanması şaşırtıcı ...

Ama:

  • Xml belirtilebilir (xsd) ve Xml verilerinin uygunluğunu kontrol eden araçlar mevcuttur
  • birçok araç (metin editörleri ve benzeri) Xml'yi destekler
  • çok sayıda kütüphane (yaklaşık her programlama dilinde) Xml'yi destekler

Aynı zamanda, önceliğin avantajına sahiptir, çoğu zaman. Zaten Xml'de web hizmetleri sunuyorsanız ve biri yeni bir hizmet istediğinde ... muhtemelen Xml'de yapılacaktır, çünkü bildiğiniz şey budur.

2
Matthieu M.