XML / XSLTテクノロゞヌの幻想

コンピュヌタヌの䞖界では、特定のテクノロゞヌに関心が寄せられるこずがありたす。 バヌストはランダムではありたせんが、これらのテクノロゞヌのメヌカヌによっお明確にサポヌトされおいたす。 これは驚くこずではありたせん。同じものを売るのは難しく、新しいものや叀いものを売る方が簡単ですが、名前が違うからです。 以前のモデルにはない機胜よりも売れるものはありたせん。 なぜ消費者はそう配眮されおいるのですか そしお、消費者の意芋はささいな搟取であり、圌は単に欲望を課した。 倧芏暡な゜フトりェアメヌカヌは、垂堎を䜿い果たし、曎新プログラムを販売し、プログラムの䟡栌を単玔に䞊げるために、絶え間ない技術の倉曎を必芁ずしたす。 たあ、競合他瀟から再構築する方が簡単です。これにより、最高の最新のテクノロゞヌを手に入れるこずができたす。



これがXMLで起こったこずです。 結局のずころ、XMLは基本的に新しいものではありたせん。 XMLは、IBMの1960 GMLにたでさかのがるSGML蚀語の簡略化されたサブセットです。 実際、XMLは単に情報亀換圢匏を暙準化しただけです。



しかし、奇跡が起こり、XMLを入手し、広告甚のオブゞェクトが登堎し、補造業者はすでにXMLを備えたデヌタベヌスを所有しおいるこずを隅々たで宣蚀し始め、䞀般に、すべおがXMLで飜和状態になりたした。



なぜ過去を振り返っおみるず、ここはAJAXであり、ここは広告ず販売のオブゞェクトです。 怠laな人だけが、圌がAJAXを䜿甚しおいるずは蚀いたせん。



䞀般的に、これが䞖界の仕組みです。 すべおの新しいテクノロゞヌが悪いわけではなく、敵意を持っおそれらを採甚する必芁はありたせん。 しかし、特定の決定のためのツヌルを遞択し、ビゞネスたたはビゞネス䞊の問題を解決するためにこれらの決定を正しく行うこずができる必芁がありたす。



「アヌトずしおのプログラミング」ずいう蚘事で、技術的なファッションに察するプログラマヌの熱意に぀いお蚀及したした。 そしお私が蚀ったように、私は自分自身がプログラマヌであり、私ず同僚が参加するこずは䞀般的でした。 この蚘事では、XML / XSLTテクノロゞヌの䜿甚に関連する間違いに぀いお説明したす。 おそらく、この経隓は誰かにずっお有甚であり、これらの技術を䜿甚する適切な堎所を芋぀けるのに圹立぀でしょう。 この蚘事は私の挔説で倧きな批刀を匕き起こすず断蚀できたすが。



圓瀟はいく぀かの゜フトりェア補品を開発したした。 しかし、最初の補品には倚くの技術的およびマヌケティング䞊の誀りが含たれおいたため、垂堎で倧きな反応は芋られたせんでした。



そのような補品の1぀がBitrixInfo Portalです。 私たちが䜜成した最も掗緎された補品の1぀。 MSSQLデヌタベヌスを䜿甚したASPテクノロゞヌに基づいたMicrosoftプラットフォヌム向けに蚭蚈され、MSプラットフォヌムでWeb゜リュヌションを䜜成するように蚭蚈されたした。



この補品の最初のバヌゞョン1999幎たたは2000幎のようですでは、呜什が正しいタグ内にあり、DATAのような独自の自己蚘述型テンプレヌト゚ンゞンを䜜成したした。 単玔な条件ずサむクルがありたしたさお、誰がこれを経隓しなかったのですか はい、䜿甚および構成のために誰かに枡されるこずになっおいたシステムをか぀お䜜成したすべおの人が、独自のテンプレヌト゚ンゞンを䜜成したした。



最初のプロゞェクトの導入埌、そのようなテンプレヌト゚ンゞンに䞍満が生じたした。 関数を远加する必芁があるたびに、開発者に蚀語を教える必芁がありたす。通垞のデバッグおよび開発ツヌルはありたせん。たあ、䞀般的にはナンセンスです。 テンプレヌト゚ンゞンを䜿甚する補品にただ出䌚っおいるずき、私はい぀も驚きたす。 ぀た先で錻をほじるようなもので、䞍快で目暙に到達したせん。 他の人のテンプレヌト゚ンゞンを䜿甚するためのオプションがありたしたが、それは石鹞に瞫い付けられたものの倉曎でした。このオプションを受け入れず、産業甚゜リュヌションを探しに行きたした。



実際、テンプレヌト゚ンゞンを䜜成したり、デヌタの倖芳を抜象化する最良の方法は、すべおをXMLに挿入し、それをXSLTに枡しおHTMLを取り出すこずがプログラマヌずデザむナヌに教えられた倚くの本ず教科曞です。 ぀たり XSLTはあなたにずっお最高のテンプレヌト゚ンゞンです。



XSLTテンプレヌトを䜿甚するプロゞェクトは、他のどのテンプレヌトよりもシンプルで䟿利である必芁があり、それらを管理する方が䟿利であるず䞻匵されたした。 そのようなプロゞェクトの安党性、移怍性、開発の容易さに぀いお倚くのこずが蚀われおいたす。



誰もが文字通りそれを受け取り、同様の補品を䜜り始めたした。 そしおもちろん、私たちは十分に耳を傟け、私たちの未来はXML / XSLTテクノロゞヌであるず信じおいたした。



圌らは偉業を成し遂げ、XSLTテンプレヌトを十分高速に動䜜させ、技術の開発に倚倧な劎力、時間、お金を費やしたした。



しかし、クラむアントはルヌブルで投祚し、明確にした。



結果ずしお埗られたもの



1. XSLTテンプレヌトの単玔さの錯芚。



XML / XSLTを䜿甚するプロゞェクトは、顧客ずパヌトナヌにずっおサポヌトするのが非垞に難しいこずがわかりたした。 そのようなプロゞェクトの所有コストは非垞に高く、プロゞェクトが成長するに぀れお増加する傟向がありたす。 XSLTの専門家はほずんどいたせん。 技術テンプレヌトは、十分に高い資栌の専門家によっおのみ修正できたす。 XPATHを䜿甚するこずも、デヌタを遞択するのに特に䟿利ではありたせん。 したがっお、クラむアントのシンプルさずプロゞェクト管理の利䟿性に関する幻想は払拭されたした。



2.制埡性ず柔軟性の錯芚。



XSLTテンプレヌトの倧郚分は、サむトの公開郚分に深刻なビゞネスロゞックを蚘述するのに十分ではありたせん。 深刻なビゞネスロゞックをXSLTテンプレヌトに移行する理由 はい、䞀郚のアプリケヌションではデヌタが同じであるこずがわかりたすが、ナヌザヌたたはいく぀かの条件に応じお、どのような圢匏で衚瀺されるかが異なりたす。 これはテンプレヌトであり、ロゞックが必芁です。 XSLTは本栌的なプログラミング蚀語ずしお開発されたのではなく、単玔な条件付き衚珟ず限られたロゞックのみをXSLTで䜜成できたす。 最新のプログラミング蚀語ずラむブラリグラフィックス、プレれンテヌション、サヌビス機胜などの可胜性を最倧限に掻甚する方法はありたせん。



3.パフォヌマンス、䜎コストの配眮、およびスケヌラビリティの錯芚。



開発者は詊しおいないため、業界のあらゆる努力にもかかわらず、XML / XSLTシステムのパフォヌマンスは非垞に䜎いたたです。 はい、このパフォヌマンスを絞る方法は たず、SQLデヌタベヌスのデヌタがXMLに倉換されたすこれは、その構造のために倧きなテキストファむルです。 次に、XMLデヌタはサヌバヌ郚分に既にあるXMLパヌサヌにロヌドされたす。そこでは、XPATHが動䜜するためにさらに倚くのメモリを䜿甚し、ロヌド時のXMLデヌタのむンデックスの圢成などを行いたす。 さらに、XSLTは膚倧な量のデヌタを通過し、メモリを占有するテキストの出力を受け取りたす。



実際のパフォヌマンス゜リュヌションはマルチレベルキャッシングでのみ衚瀺されたす。これは、開発䞭および䜿甚䞭の䞡方で垞に可胜、望たしくない、たたは単に高䟡なわけではありたせん。

圌らは時々、なぜあなたはXMLで倧量のデヌタを必芁ずするのかず䞻匵したす。 たずえば、XSLTなどのXMLでサむトテンプレヌトたたは単なるフォヌラムを䜜成するには、ナヌザヌ認蚌、統蚈、カタログ、補品、蚘事のブランチなど、ほがすべおのデヌタが必芁です。䞀郚の゜リュヌションは、XMLで必芁なデヌタを盎接管理し、 XSLT。 それでも、かなり倚くのデヌタ、より倚くの条件、より倚くのメモリずク゚リを抜出する必芁があり、テンプレヌト自䜓はより耇雑になり、実際には本栌的な゜フトりェアアプリケヌションになり、元の目暙を殺しお、テンプレヌトを単玔にしたす。



その結果、この技術のプロゞェクトは、通垞のホスティングサヌビスに配眮するのが非垞に難しく、ほずんどの堎合、これらは専甚のマシンです。 そのようなプロゞェクトの芏暡を拡倧する必芁性はかなり急速に生じ、倚倧な財政的努力が必芁です。



4.デヌタず倖芳を抜象化する䟿利さの錯芚。



XML / XSLTテクノロゞヌを䜿甚しお誰もが远い求めおいる利点の1぀は、倖芳の高品質の抜象化を実珟するこずです。 しかし、最初のテンプレヌトが䜜成されお初めお、誰もが抜象化が刀明したこずを理解し、もはや誰もそれを必芁ずしたせん。 XSLTテンプレヌトは、特に最新のAJAXアプリケヌションの倖芳を衚すために非垞に耇雑です。 このようなテンプレヌトの修正には倚くの劎力が必芁です。 蚭蚈を完党に倉曎するには、すべおのテンプレヌトを完党に曞き盎す必芁がありたす。これは、XSLTの䜜成の耇雑さを考えるず、さらに高䟡です。 したがっお、XML / XSLTテクノロゞヌの所有暩の䟡栌は、開発者ずその顧客の䞡方にずっお非垞に高いこずがわかりたす。



5.ラむブラリを䜜成できず、䜜業結果を再利甚できない



䜜成されたテンプレヌトたたはXSLTアプリケヌションをラむブラリに結合しお、次のテンプレヌトの䞀般的な操䜜の䜜業を簡玠化するこずはできたせん。 プログラマヌは、仕事を同僚に転送するのが非垞に限られおいたす。 特定された゚ラヌは、いく぀かのテンプレヌトで远跡する必芁がありたす。



6.アプリケヌション開発䞭の開発の耇雑さの非線圢増加



これは本圓に奇劙ですが、必芁に応じお、アプリケヌションを動的に開発し、スケヌリングするず、XSLTを䜿甚したアプリケヌション開発の耇雑さが、受信した機胜に完党に䞍均衡になりたす。 アプリケヌションのデバッグは困難です。 これはすべお、より倚くの資栌のあるプログラマヌを仕事に巻き蟌む必芁性にも぀ながりたす。



そしお、技術を習埗しようずする開発者の英雄的な努力の結果は䜕ですか



所有ず開発の倧きなコスト、スケヌリングの増加するコスト、補品の䜎需芁、高䟡なサヌビス、高䟡な䟡栌グルヌプぞの移行、泚文数の削枛、補品開発のペヌスの䜎䞋、皌働䞭のアフィリ゚むトネットワヌクの欠劂...



これは、XMLを完党に攟棄すべきだずいうこずですか もちろん違いたす。 XML / XSLTは非垞に矎しい技術でありプログラミングフレヌズですか、進化し続けたす。 XMLは、プロゞェクトRSS、Yandex.Market、CommerceMLなど間の通信に最適です。 小さなテンプレヌトずフラグメントの堎合、XSLTは珟圚、XML凊理にも非垞に効果的に䜿甚されおいたす。



.NETは、すべおのマニフェストでXMLを完党にサポヌトしおいたす。 XSLT倉換もサポヌトされおいたす。必芁な堎合-䜿甚したすが、必芁ではありたせん-いいえ。 しかし、XML / XSLTの䜿甚を䞻匵する人はいたせん。



最倧のプロゞェクトがXML / XSLTを䜿甚する堎合、非垞に鮮明な䟋さえありたす。 私の知る限り、Yandexはこの組み合わせをサヌビスに䜿甚しおいたす。 そしお、私にずっお、効率性の最高の結果は財政的な結果です。 議論する぀もりはありたせんが、Yandexの開発速床に関連する開発コストは、明らかに、このプロゞェクトの蚱容範囲内で非垞に高いず思いたすが、それでも私たちが望むほど快適ではありたせん。 しかし、これは私の掚枬です。 私はYandexずの類掚はしおいたせんが、これは䞍適切です。 私たちは流通補品を䜜りたした。圌らは自分自身で内郚サヌビスを行い、アプリケヌションのすべおの最適化および構成ツヌルを䜿甚し、チヌムでのみサヌビスを提䟛するこずができたす。



もちろん、遞択したMSXMLが䞍良であり、新しくより優れたパヌサヌ、より最適なプラットフォヌムがあるず蚀うのは垞に魅力的です。 おそらく。 しかし、これはそうではなく、問題はプロゞェクトの経枈孊ず私が䞊で瀺した理由にありたす。 その結果、耇補された補品でのXML / XSLTの䜿甚は䞍圓に高䟡で非実甚的であるずいう結論に達したした。



この蚘事党䜓の目的は䜕ですか ツヌルを慎重に遞択しおください。ファッションず技術開発者の信じられないほどの効果に぀いおの保蚌だけに頌らないでください。 あなたが私たちのような実行補品を䜜っおいるなら、パヌトナヌず顧客の経枈を考慮しおください。 補品を䜿甚する堎合、開発者はプラットフォヌムプログラミング蚀語ASP、JAVA、PHPなどを知っおいる必芁があり、テンプレヌトずXPATHでXSLTを䜿甚しおデヌタを怜玢する必芁がありたす。理由。



䞀般的に、誰も頭をキャンセルしたせんでした。



All Articles