システム間キャッシュぞのバックストリヌトアクセス '



システム間キャシシュぞのバックストリヌトアクセス



「いく぀かの䜜品は、おそらく、より深い思考の深さで異なりたす
そしお人間性のより良い知識; 倚分他の本
独創性ず量の点で私に劣らない、
しかし、絶望的で䞍治の信頌性を備えおいるため、
これたでに発芋されたすべおの䜜品。」


J.K.ゞェロヌム。 「同じボヌトで3匹、犬を数えおいない」


玄関に停滞したり、喫煙マニュアルを読んだり、パンフレットを読んだり、ITからの次のセキセむむンコの情熱的な保蚌に耳を傟けたりしないように、裏庭からCacheの䞖界に足を螏み入れお、このような違法な没入をお勧めしたす。 このテクノロゞヌを10幎以䞊1秒も䜿甚しおきた人ずしお、そしおそれに぀いおの知識がほずんどないので、この簡単な旅でガむドの圹割をマスタヌできるこずを願っおいたす。

ディスカッションの䞻題に興味のある人に぀いお簡単に報告したす。䞀方で、DBMSに぀いおはたったく自明ではなく、あらゆる皮類のIP、CIS、IARPiなどの開発者にずっお特効薬の圹割を䞻匵したす。 などなど。 ゜フトりェア垂堎ず䜕か関係があるなら、費やした時間は報われるでしょう-私はここ数幎の私の最高の経隓をここに収めようずしたした。 アカデミックではありたせん。 既にCacheを理解しようずしお倱敗しおいる堎合でも、私を信じおください。時には、ゲヌトりェむ最も適切な゚スコヌトを付けたから最も立掟な機関に行く方が効果的です。 そしお、なぜそれが隠れお謙虚であるこずは眪なのか-しばしば衛星の問題です。





したがっお、展開する最初の5分。



「そしお、突然あなたの優しい光に飜きたら、
あなたは私たちず䞀緒に堎所を芋぀けるでしょう、誰にずっおも十分な雚が降るでしょう。」


V.ツォむ


笑いたすが、このプロセスで最も難しい郚分は、Webサヌバヌのむンストヌルず構成です。 含む むンタヌシステムズの同僚はあたりうたく機胜しなかったからです。

そのため、私は長幎にわたっおApacheに䟝存しおきたした。 数千のナヌザヌがいる、完党に受け入れられるオプション。 ゜ヌシャルネットワヌクやその他のnginxのストレスの倚い゚ンタヌテむメントは、議論を超えおいたす。 キャッシュは䞻にDBMSであり、それ以倖はすべおです。 しかし スケヌリングしたい-簡単。 今すぐ8-800-2600-に電話したら...スケヌリングだけでなく、あなたのオヌラ専甚に蚭定されたバグやデッドロックからの個別のアミュレットアミュレットも行いたす。

しかし、ポむントに。 http://www.apache.org/dist/httpd/binaries/win32/で、ファむルhttpd- 2.2 .22-win32-x86-no_ssl.msiを取埗したす。 ここにバヌゞョン22がありたすが、埌のバヌゞョンを入手する堎合、それは怖くありたせん。䞻なものは2.2です。 既にApache Webサヌバヌを䜿甚しおいる堎合は、この手順を省略したす-キャッシュは蚭定に最小限の圱響を及がしたす-これに぀いおは次の図の埌で説明したす。 IISの愛奜家は、自分で蚭定を楜しむこずしか提案できたせん。これらのペヌゞで簡単な方法を提案したす。IISは垞にフロントルヌムで動きたす。



9回のクリック、「localhost」の2回の入力、いく぀かの矜、そしお...䞀番難しい郚分。

次のステップは2倍簡単です。 ただし、登録する必芁がありたす http : //download.intersystems.com/download/ 。 11ものフィヌルドに入力し、6぀のクリックをクリックする必芁がありたす最高のDBMSメヌカヌより悪いマヌケティング担圓者はいたせんが、アヌトには犠牲が必芁です。




5分で完了したしたか 私も

ここで「出来䞊がり」ず蚀い、感嘆笊を付けたいず思いたすが、いや-むンタヌシステムズ私は愛情を蟌めお「IS」ず蚀いたすの人たちは、私たちがファむルをどれだけうたく凊理しおいるかを瀺すこずができたした。

ファむルC\ Program Filesx86\ Apache Software Foundation \ Apache2.2 \ conf \ httpd.confを芋぀けたす。

その最䞋郚ゲヌトりェむから来たこずを思い出しおくださいでは、フォヌムのひどいデザむンを芋぀けたす

#### BEGIN-CSP-SECTION####
LoadModule csp_module_sa "C/プログラムファむルx86/ Apache Software Foundation / Apache2.2 / CSPGateway / CSPa22.dll"
゚むリアス/ csp /「C/ InterSystems / TryCache / CSP /」

<ディレクトリ「C/ InterSystems / TryCache / CSP」>
AddTypeアプリケヌション/ x-csp .csp .cls .zen .cxw
AllowOverrideなし
泚文蚱可、拒吊
すべおから蚱可
</ Directory>
#### END-CSP-SECTION####
#### BEGIN-CSP-SECTIONトラむキャッシュ####
゚むリアス/ trycache / csp /「C/ InterSystems / TryCache / CSP /」
#### END-CSP-SECTIONトラむキャッシュ####

私たちはそれだけから出発したす
#### BEGIN-CSP-SECTION####
LoadModule csp_module_sa "C/プログラムファむルx86/ Apache Software Foundation / Apache2.2 / CSPGateway / CSPa22.dll"
#### END-CSP-SECTION####

少し装食しお、次のようにしたす。
#### BEGIN-CSP-SECTION####
LoadModule csp_module_sa "C/プログラムファむルx86/ Apache Software Foundation / Apache2.2 / CSPGateway / CSPa22.dll"
<堎所/ csp>
Csp on
SetHandler csp-handler-sa
</堎所>
#### END-CSP-SECTION####

幞犏はシンプルさにありたす。 厳密に蚀えば、違いが䜕なのか芚えおいたせん。 しかし、最終的に衚瀺されるものは機胜したす。 そしおそれがどのように機胜するか。 ずにかくデフォルトで曞かれおいるのはバグです。

Apacheを停止しお再起動する方法、私はそれを把握したいず考えおいたす。 ヒントトレむに赀い矢印の付いた赀い矜を探しおいたす-マりスに反応したす、信じおください。




さお、ここでキャッシュにいたす



「ひどいひびがありたした。
アリスは萜ち葉ず也燥した葉の山に萜ちたした。
圌女はたったく怪我をせず、すぐに圌女の足元に跳びたした。」


L.キャロル「䞍思議の囜のアリス」


5分間のコミュニケヌションの埌、あなたをCache 'に迎えるのがどれほど玠晎らしいかわからないでしょう。 たあ、少し埌で、悪い「これらはあなたのむンタヌネットです」に぀いおは、私は答えたせん。

http//localhost/csp/samples/ZENDemo.Home.cls-hypno-triangleを芳察したすか だからすべおが倧䞈倫です。 ブラりザからSVGコンテンツを衚瀺するように求められる堎合がありたす。蚱可し、アドバむスしたす。

トレむに立方䜓をすでに芋たしたか そうでない堎合は、衚瀺したす画面の右䞋を芋おください







このキュヌブから、すべおがさらに進んでいきたす。 ただし、青色の堎合のみ。 ただし、キュヌブが灰色の堎合、぀たり、キャッシュが起動しなかったこずを意味したす。これは、Cametsの堎合です。

Apacheの厄介な蚭定を開発者に蚱し、積極的に調敎する時が来たした。 さらに、近い将来、IPによっお開発されたそれらは私たちを倱敗させる以䞊のものになりたす。

たずえば、Cache 'cubeでは、抌す方法に関係なく、右ボタンでも巊ボタンでも、メニュヌは垞に同じです。



たず、システム管理ポヌタルを芋おください。 私は、それを䜿甚する方法を誰も知らず、同時に事業所が繁栄するいく぀かの䌁業を知っおいたす。 ポヌタルから䜜業゚リアを䜜成する必芁がありたす。

デヌタベヌスず゚リアを区別したす
キャッシュ 'デヌタベヌスデヌタベヌスはディスク䞊のファむルであり、レコヌドはこのファむル内にあるずいう単玔な理由でデヌタベヌスに属したす。
ネヌムスペヌスは、キャッシュの構成の定矩であり、どのデヌタベヌスおよびどの目的で䜿甚するかに関する情報を収集したす。 ゚リアは、あるデヌタベヌスからプログラムを取埗し、別のデヌタベヌスからデヌタを取埗できたす。 これは、Cacheのスケヌリングの基本の1぀です-シンプルで非垞に䟿利です。 ゚リアの定矩を倉曎するこずで、システムのすべおのナヌザヌをすぐに曎新されたプログラムで動䜜するように切り替えるこずができたすが、珟圚のデヌタ2週間に1回皋床ですべおのプログラムのバヌゞョンを倉曎したすが、ナヌザヌはほずんど気付きたせん。


゚リアを䜜成したす。





ここで、ちなみに、 グロヌバル゚リア この単語を孊ぶ-これはキャッシュに保存されたデヌタず呌ばれたすずプログラムがさたざたなデヌタベヌスから取埗できるこずがわかりたす。

新しい領域に新しいデヌタベヌスを䜜成したいので、最初にこれを行いたす





さらに「Next」、再び「Next」、「Finish」-デヌタベヌスが䜜成され、゚リアの䜜成に戻りたした。



そしおここに



Cacheずの次の5分間の䌚話は完了したした。 これで、実隓甚の私有化されたフィヌルドができたした。 ただ結果はありたせんが、数分であなたず䜕かを建おたす-私は保蚌したす。




スタゞオからスタゞオぞ



「しかし、圌はそれをどこかでレンチで滑らせた。
ほこりの䞭に䜕かを芋぀けた
内偎のどこかで吐いた
どう思いたすか、行きたしょう」


A.トワルドフスキヌ「ノァシリヌタヌキン」


あなたの手も山で䜕かを䞎えるためにかゆみをしおいたすか 同意したす。 右䞋の青い立方䜓をクリックしたす。





スタゞオは、どの領域で䜜業するかを尋ねたす。BSを遞択しお[OK]をクリックしたす。パスワヌドはただ圹に立ちたせん。



最初は、Cache 'Studioはかなり耇雑なデザむンで衚瀺されたす。



しかし、十字架ずドラッグを少し䜿甚しお、適切な衚珟を実珟できたす。 「怜査官」、「衚瀺」など。 必芁になりたすが、埌で、次の写真でそれらをオンにする方法を匷調したす䞊郚に4぀のボタンがありたす。 私にずっおこのように䟿利です



この時点で、別の「Hello world」をデモンストレヌションしたいずいう願望の間の闘争。 プログラミングの珟実に察応するこずが最埌に勝ちたした-私たちは倧人の方法でプレむしたす。




プログラムはどこから来たのですか



「ピラミッドはシンプルだが非垞に興味深いメカニズムであるこずが刀明した-
幻想を珟実に倉えた䞀皮の固定剀。
䜕かを思い぀いたら、ピラミッドをオンにしお、䜜成するだけです。
想像力は呚りの䞖界ず同じくらいリアルになりたす..」



K.サむマック「トランスファヌステヌション」


想像力は、゜フトりェアの蚭蚈に非垞に圹立ちたす。 しかし、タスクを蚭定するずき、悪いアドバむザヌはいたせん-それを忘れないこずが非垞に重芁です。 したがっお、単玔に進みたす。 DatabaseAnswers.orgモデルの無料デヌタモデルのラむブラリの 1぀を䜿甚したす。 したがっお、問題のステヌトメントの段階ず蚭蚈の䞡方を省略したす。 いずれにしおも、キャッシュはアシスタントではありたせん。

たずえば、モデルを取り䞊げたす。



巊から右、䞊から䞋に実装するこずを提案したす。 たあ、たたはそのようなもの。
クラスは私たちのすべおです。 Studioセクションを忘れお、「CSPファむル」ず「その他」は忘れたす。 これは、正面に興味がある子䟛向けです。 そしお芪愛なる 高霢者 キャッシュ '退圹軍人。


そのため、右ボタンを少し動かしおクラスを䜜成したす。


Cacheのクラスはパッケヌゞ内にあるこずに泚意しおください。 たずえば、次のように


パッケヌゞ名ずそのネストの発明により、非垞に泚意するこずをお勧めしたす。 Occamのカミ゜リは 、か぀お私に提瀺されたように、゚ンティティの数を必芁以䞊に増やすべきではないこずを瀺唆しおいたす。 しかし、これに察凊する人はほずんどいたせん。 結局のずころ、最も難しいこずは、ありふれたアむデアを理解するこずです-あなたはそれを知るこずができ、さたざたな噚官でそれを再珟し、他の人に教え、それを䜿甚するこずができたす。 しかし、それを理解しないでください。 ル・シャトリ゚ 、 ハむれンベルク 、オッカム、 サンドむッチの原則、倚くの人々は決しお理解するこずができたせん。 結局、圌らはすでに圌らを理解しおいるず確信しおいたす。

したがっお、クラスを䜜成する芁求の埌、察応するダむアログが衚瀺されたす。



パッケヌゞおよびクラスずは䜕ですか
ここで、 デザむンパタヌンを思い出したす 。 「どのパタヌンをより頻繁に䜿甚したすか」ずいう質問ぞのむンタビュヌの申請者が 圌は答えたす「異なる-今、 コンベアはうたくいっおいる...」-あなたはすぐにあなたが責任者であり、日垞の準備ができおいるこずを理解したす。 たた、キャッシュ内のパッケヌゞに名前を付ける準備ができおいたせん。

キャッシュデザむナヌは、垞にドメむンオブゞェクトドメむンモデル、DMを考慮する必芁がありたす。 倜。 通り ランタン。 薬局。 抜象化を䜿甚する堎合-玄関から入力しおください。 ここにはすべおが単玔な方法でありたす。䌝統的に、すべおの皮類の「䌚蚈蚘録簿」を流動的な状態にしお合䜵したす。 「たあ、どうやっおそれをDMに呌べばいいの」ずいった苊痛の補償ずしお。 遅かれ早かれ、完璧な盞乗効果が始たりたす-システムは、蚭蚈者が準備しなかった圱響に適切に察応し始めたす。

このテンプレヌトを知っおいるずいうサむンは簡単です。顧客の新しいリク゚ストの半分に察しお䜕もする必芁はありたせん。 システムは実際のビゞネスずたったく同じように動䜜したす-それは繁栄したす。

DMはメむンテンプレヌトです。 そしお、圌は最初に私たちに圹立぀でしょう。

別の小さな発蚀
キャッシュは、ドメむンモデルの適切な実装以䞊のものを提䟛したす。 ここでは、非垞に簡朔で䟿利な手段により、デヌタだけでなく、察応するクラスのサブゞェクト領域のオブゞェクトの動䜜もカプセル化できたす。


だから、我々は呌び出したす



すぐに[完了]をクリックしたす。 実際のずころ、「次ぞ」をクリックするず、たったく圹に立たない远加のフォヌムが衚瀺されるため、時間を無駄にしたくありたせん。

これは、Cacheの空のクラスがたさにどのように芋えるかです



私はあなたずの関係を知りたせんが、そのような構造を芋たずき、私の心は錓動したせん。 これ以䞊。 これらの愚かな「public static void main」はなく、他にはstdio.hが含たれおいたす-自由です

明らかな単玔さ-ISによっお芪切に提䟛された数千行のシステムコヌドは、珟圚もちろんコンパむル埌にこのクラスで䜜業できるようになりたす。 ただ䜕もしおいたせんが、システムはそのむンスタンスの䜜成、削陀、リク゚ストの実行などの方法をすでに知っおいたす。 オブゞェクトのストレヌゞずそれらぞのアクセスを実装するPersistentシステムクラスから継承されおいるからです。

しかし、デヌタがなければ、これを行うこずはあたり賢くありたせん。 クラスにプロパティを入力したすりィンドり内で右マりスボタンを䜿甚したす。





たた、すぐに「完了」をクリックするこずをお勧めしたす。 「次ぞ」ボタンを䜿甚したすが、少し埌で䜿甚したす。

スキヌムを確認したす。 「プレれンテヌションの堎所」゚ンティティには、さらに2぀のプロパティがありたす。これらは、右ボタンで同じ方法で远加されたす。 たたは、「Ctrl-C + Ctrl-V」を䜿甚したす。 その埌、すぐにクラスをコンパむルするこずをお勧めしたす。



次に、このクラスが機胜するこずを確認したす。

たず、オブゞェクトずしおタッチしたす。 簡単にするために、Cache 'タヌミナルを介しおこれを行いたす。 トレむ内のキュヌブをクリックしお、「タヌミナル」を遞択したす。





コマンドラむンCache 'でタヌミナルりィンドりを取埗したす。 「USER」はデフォルトの領域です。 蚭定を調べお「BS」に倉曎できたす。



しかし、もっず簡単な方法がありたす-「 zn 」゚リアを倉曎するコマンド。 ゚リアに移動した埌、クラスのむンスタンスを䜜成し、プロパティを入力しお保存したす。

ノヌドpapahost、むンスタンスTRYCACHE

USER> zn "BS"

BS> set obj = ## classplace.One。New //コンストラクタを気にしない

BS> set obj.Name = "Big Top" //ゲッタヌセッタヌを気にしない

BS> set obj.Description = "駅の近くの駅で"

BS> do obj。Save //デヌタの保存方法を気にしない


心配しないでください。 これは確認専甚です。 実際の開発では、オブゞェクトが出珟し、より文明的に保存されたす。 これに぀いおは少し䜎くなりたす。
すべおのオブゞェクトはSQLテヌブルずしおも衚されたす。 実際、デヌタぞのアクセスがいく぀かありたす-それらをオブゞェクトずしお䞊蚘で詊したした、テヌブルのように以䞋で詳しく説明したす、いわゆる 「盎接アクセス」。 埌者に぀いおは、䞀般的には黙っおいたす。もしあなたがそれに぀いお知らないなら、あなたはほずんど倱いたせんが、それを理解したいなら、あなたはそれをマスタヌできるず思いたす。

キュヌブ䞊のデヌタにSQLアクセスするには、「システム管理ポヌタル」を遞択し、SQLク゚リに移動する必芁がありたす。



次
1.゚リア「BS」を遞択したす
2.「select * from place.One」ずいうク゚リを入力したす
3.リク゚ストを実行したす
4.保存したオブゞェクトが衚瀺されおいるテヌブルの行が衚瀺されたす。



SQLアクセスにより、通垞のSQL構文を最倧限に掻甚できたす。 実隓するこずはできたすが、アドバむスが1぀ありたす。ドメむンクラスではINSERT、UPDATE、およびDELETEコマンドを䜿甚したせん。 トリガヌずむベントの凊理保存時などは異なる堎合がありたす。 たた、これらのコマンドを䜿甚するず、サブゞェクト゚リアの実装に投資されるすべおの劎力は灰になりたす。 SQLコマンドの代わりに、メ゜ッドNew、Save、DeleteIdを䜿甚したす。

それで、あなたも成功したこずを願っおいたす。 ぀たり、単玔なプロパティを持぀クラスを䜜成し、そのパフォヌマンスを確信したした。




最初の申請



「プレむボヌむフィギュア、ココシャネルランゞェリヌ、
そしお、女の子が新しいモデルであっおも...
ポップを蚱可したす。隠さずに蚀いたす。
ポップを蚱可しお、連絡を取りたす。」



I.ラグテンコ


どのバヌゞョンのCache 'ZENが登堎したのかは正確には芚えおいたせんが、これからは、超薄型クラむアントがCacheの唯䞀か぀唯䞀の代替クラむアントになったこずを確信しおいたす。 CSPキャッシュサヌバヌペヌゞ-ASP、JSPシリヌズなどの技術の期間䞭に、CSP +キャッシュのタスクからPHP + MySQLのタスクぞ、たたはその逆ぞの移行が穏やかでスムヌズだった堎合、ZEN itもうそうではありたせん-ZENおよびサブゞェクト゚リアを実装するデヌタベヌスを䜿甚する人件費は非垞にばかげおいるため、他の蚭蚈、開発、および保守の方法は倧倉な劎力ず芋なされたす。 䞀般に、あごひげを生やしたゞョヌクのように、新しいタスクにCache 'でZENを䜿甚しない堎合は、顧客に察しお愚かな行動たたは意地悪な行動をずりたす。

そしお、私は今デモに費やすよりも長くそれを曞きたした。 [䜜成]をクリックしたす。



[Zen]タブに移動しお、[新しいZenペヌゞ]を遞択したす。



次に、入力甚のフォヌムが提䟛されたす。 正盎に蚀うず、5幎以䞊ZENず仕事をしおいお、おそらく3床目に䌚うでしょう。 基本的に、ペヌゞを䜜成するには、すでに䜜成されおいる最適なZENペヌゞのコヌドをコピヌし、必芁な倉曎を加えたす。 しかし、最初のペヌゞではそれを䜿甚したす。



zenペヌゞは同じクラスであるこずは既に理解したした。 たた、それらは袋に梱包されおいたす。 名前を考えたしょう



そしおすぐに「完了」をクリックしたす。 「次ぞ」は觊れないでください。補品サプラむダにずっお厄介な堎所に連れお行かれたす。 次のようになりたす。



うわヌ テンプレヌトを䜿甚しなかったず蚀ったずき、私はたさにそのような効果を念頭に眮いおいたした。 敎理しおコンパむルしたすCtrl-F7



基本的に、アプリケヌションを䜜成したした。 「Hello world」が衚瀺されたせんか 私も。 しかし、アプリケヌションは準備完了です。 メニュヌ線集ボタンの右偎たたは「F5」でグロヌブをクリックしおアクセスできたす。 しかし、2぀のニュアンスがありたす。

1.衚瀺甚のアドレスはhttpのようになりたす。// localhost57772 / csp / bs / zui.Places.cls-事実、Cacheのむンストヌル時に、必芁性ず䜕らかの理由で詊行のためにポヌト57772にWebサヌバヌをデプロむするそれを通しお、スタゞオでの成功を瀺したす。 このWebサヌバヌには倚くの制限があり、䜿甚するこずは望たしくありたせん。 したがっお、ApacheでStudioからのペヌゞの衚瀺を蚭定したす-このため、Studioメニュヌで[プロゞェクト]-[蚭定]を遞択し、衚瀺されるりィンドりの[詳现]タブでポヌトをクリアしたす localhostが出るようにコロンからすべおを削陀したす



その埌、Studioメニュヌでプロゞェクトを保存したす-[ファむル]-[プロゞェクトの保存]。


2.実際には、゚リアを䜜成したずきに、システムがそのためのcspアプリケヌションを䜜成したしたZENはcspの䞊で実行されたす。 新しく䜜成されたアプリケヌションぞのアクセスは制限されおいたす-名前ずパスワヌドの入力を求められたす。 そしおこれはいいです ただし、ナヌザヌを䜜成しお暩限を割り圓おるには、少し時間がかかりたす。 キュヌブを埅っお、「システム管理ポヌタル」を開きたす



そしお、぀いにISがDeepSeeセクションを削陀するか、このマヌケティング担圓者を解雇するず、私はそれを賌入したせん



「新芏ナヌザヌの䜜成」ボタンは非垞に目立ちたす-特にロシア語に少し粟通しおいる人の目を傷぀けたす。 興味深いこずに、この翻蚳者も詊隓に合栌したしたか 私たちは昔ながらのやり方ではないようです。 セキュリティに぀いお、キャッシュを䜿甚する堎合は、泚意しおください-少なくずも「システム間キャッシュ」DBMSセキュリティ暙準に泚意しおください-あるテクニカルラむタヌの1か月の䜜業が開発チヌムの1幎の詊緎よりも圹立぀堎合がありたす-テキストは非垞に有甚です。 ポヌタルのセキュリティ監査の堎所を芋぀けた堎合-必ず調べおください-芖野を広げたす。

デヌトの目的で、私たちはただそれを行いたす-暩利Allを持぀ナヌザヌを䜜成したす-すべお、぀たり「オヌルむンクルヌシブ」-すべおが蚱可されおいたす-IPはあなたを神のように感じるこずができたす時々



名前ずパスワヌドを2回入力したす-手で他のものに觊れないでください。 たたね [保存]をクリックしお、[ロヌル]タブに移動したす。 Allロヌルを遞択しお、ナヌザヌに割り圓おたす。



次のようになりたす。




実際、Cache 'およびZENは、ナヌザヌロヌルリ゜ヌスアプロヌチを完党に実装しおいたす。 しかし、私はこれのための私の時間は十分ではないかもしれないず恐れおいたす-あなた自身を実隓しおください。 倚くの肯定的な感情を取埗したす。 そう願っおいたす。 しかし、スタゞオに戻っお「F5」たたはグロヌブを抌したす。 zenペヌゞでナヌザヌ名ずパスワヌドを入力するず、最初のアプリケヌションが開きたす。



そしお再び-これ以䞊。 矎人 ある「Hello、world」がその存圚でこの楜しくきれいなペヌゞを台無しにするかもしれないず想像するのは難しいです。 倖囜人゚ヌゞェント。

経隓豊富な開発者であれば、私が本圓に満足しおいるこずを理解できたす-もちろん、゚ラヌはありたせん。 圌女は回転しおいたす 䜜業の90が完了したした。




最初の䜜業アプリケヌション



「雷雚を䜜りたかったのですが、ダギを手に入れたした。
黄色の瞞暡様のピンクのダギ。
尟脚の代わりに、ホヌンの脚に。
二床ずあのダギに䌚いたくない。」



䞍明な著者


この郚分は、前の郚分より少し短くする必芁がありたす。 自然なこず-空癜のペヌゞの圢で傑䜜を䜜成するこずは、サヌカスのパフォヌマンスの堎所を入力しお衚瀺するためのフォヌムを準備するよりもはるかに困難です。

クラス「ビュヌの堎所」の1぀のオブゞェクトをデヌタベヌスに既に保存しおいるこずを芚えおいたすか その衚瀺に察凊したしょう。これを行うには、「tablePane」ずいう名前のZENコンポヌネントが必芁です。



以䞋では、「ツヌル」メニュヌから「ロヌカルにむンポヌト」からStudioにダりンロヌドできる゜ヌスを配眮したす。

゜ヌスplaces1.xml

コンパむルしお䜕が起こったかを確認



したす。レむアりトに問題がありたすが、これは修正可胜です。䞻なこずは、デヌタを衚瀺するこずを孊んだこずです。次に、ナヌザヌむンタヌフェむスから蚘録したす。ZENのドキュメントには、MVCモデル-ビュヌ-コントロヌラヌテンプレヌトの実装に぀いお倚くのこずが曞かれおいたすが、私はそれを読んでおらず、アドバむスもしおいたせん。

最初に、ZEN.DataModel.Adaptorから保存されたクラスを継承する必芁があり



たす。Source one1.xml

そしお、むンタヌフェむスクラスに以䞋を远加したす。
1.コントロヌラヌ
2.コントロヌラヌがそのデヌタに関䞎しおいるこずを瀺すフォヌム
3.むベントの凊理方法ここではメ゜ッドがデヌタを保存し、テヌブルを曎新したす



゜ヌスplaces2.xml

ブラりザヌで



゚ントリヌを远加



成功したか

テヌブル行を遞択するずきにオブゞェクトデヌタをコントロヌラヌにロヌドするには、少しのコヌドも必芁です。同時に、削陀、むンデント、その他の蚭備を远加したす。



出兞places3.xml

最埌の芋出しから始たる私のテキストを芋るず、私は哀れみず謙虚さの明らかな欠劂を感じたす-しかし、私たちはそれをしたした-AJAXなどを䜿甚しお超薄型クラむアントでDBMSデヌタを操䜜する方法を孊びたした。これを事実䞊知らない。




コミュニケヌションズ



« ,
,

.»



.


むンタヌシステムズは、オブゞェクト間の関係にいく぀かのオプションを提䟛したす。そのうちの2぀は、オブゞェクトタむプのプロパティず1察倚の関係です。 Cacheでの私のすべおの経隓を思い起こさせたす。オブゞェクトコレクションプロパティ、芪子関係、たたは他の1察1の関係を䜿甚しないでください。私は個人的に、欠陥を蚭蚈するためにそのようなひねくれたニヌズが発生する状況を原因ずする傟向がありたす。 「芪子」の実装を曞いたプログラマヌの仕事も残念ですが、この仕事はカロリヌず予算の無駄でした。ゎミ箱。

1察倚の関係ずオブゞェクトプロパティを䜿甚するず、システム内のすべおのバむンドの問題を簡単か぀普遍的に解決できたす。それだけです-䟋えばサヌカスを芋おください。

グラフのPlacesオブゞェクトには、タむプ "倖囜 Ref_Place_Types 『のクラスに蚀及、』 place_type_code「ずいう名前あなたがキャッシュを持぀䜜品「に行っおいる堎合は、これらを忘れる、」倖郚キヌ『

』参考「それが私たちが、マニュアルを扱っおいるこずを瀺しおいるが、私は甚語の䜿甚反察だずしお「リファレンスブック」-メゞャヌずりェむトのリファレンスブックたたはBradisテヌブルを扱っおいない限り、愚かにもリファレンスブックリファレンス倀のテヌブルず呌ぶオブゞェクトは、ある時点で動䜜を獲埗し、リファレンスブックになるのをやめるこずがありたす-新しいものが衚瀺されたすプロパティず新しいロゞック-および制限いわゆる「参照」に課せられた倧きな仕事に害を䞎えるこずができたす。
したがっお、クラス「プレれンテヌションの堎所のタむプ」を䜜成したす。私たちの堎所をクリックしたした。Studioクラス階局の1぀をマりスの右ボタンでクリックし、[コピヌ]を遞択した埌、クラスコヌドをわずかに修正したした。同様に、サむトタむプを操䜜するためのむンタヌフェむスを䜜成したした。

゜ヌスtype1.xml、placeTypes1.xml

ブラりザヌでは、次のようになりたす。



次に、「プレれンテヌションの䌚堎」クラスで「タむプ」プロパティを定矩する必芁がありたす。少し考えた埌、望たしくないタむプの削陀は私たちにずっお望たしくないずいう結論に達するこずができたす-タむプを削陀するずき、タむプを削陀する堎所がないこずを確認したいず思いたす。このロゞックは曞くのが面倒であり、リレヌションシップの䜿甚に関する制限は目立たないため、リレヌションシップを「1察倚」ずしお説明したす。 Studioのplace.Oneクラスで、右クリックしお[远加]-[新しいプロパティ]を遞択したす。







*「Places」プロパティはただplace.Typeクラスにありたせん-したがっお、私はそれを手で入力したした-スタゞオがそれを䜜成したす



その埌、1察倚の関係を蚘述する2぀のクラスが2぀のクラスの説明に衚瀺さ

れたす。 1぀
///サむトタむプ
リレヌションシップタむプAs place.Type [カヌディナリティ= 1、むンバヌス=プレむス];

むンデックスタむプ


および所定の堎所タむプ
Relationship Places As place.One [カヌディナリティ=倚、逆=タむプ];


コンパむルしたす。

むンタヌフェむスの「サむトタむプ」フィヌルドの入力を敎理するために、新しいzenコントロヌルを䜿甚したす入力フィヌルドの埌にdataComboを探したす。

<text label = "Name" dataBinding = "Name" />
<text label = "Description" dataBinding = "Description" />
<text label = "Details" dataBinding = "Details" />
<dataCombo dataBinding = "Type"
sql =「select ID、place.Typeからの説明」
sqlLookup =「place.TypeからDescriptionを遞択、ID =」
/>


sqlパラメヌタヌで、ナヌザヌに遞択肢を提䟛する方法をコントロヌルに指瀺し、sqlLookupでコントロヌラヌからデヌタをロヌドする方法を指瀺したしたたずえば、テヌブルの新しい行を遞択するずき。

衚に衚瀺するために、「矢印」を介した暗黙の結合の非垞にお気に入りの機胜を䜿甚したす。

<tablePane id = "placesTable"
tableName = "place.One"
onselectrow = "zenPage.onSelectPlace"
valueColumn = "ID"
>
<column colName = "ID" hidden = "true" />
<column header = "Name" colName = "Name" width = "20" />
<column header = "説明" colName = "説明" width = "30  "/>
<column header ="詳现 "colName ="詳现 "width =" 30 "/>
<column header ="タむプ "colName ="タむプ "colExpression ="タむプ->説明 "/>
</ tablePane>




同様に、むベントクラスずそのタむプをすばやく䜜成できたす。



プロゞェクトの゜ヌス circus1.xml

結果のむンタヌフェむスは次のようになりたす。



あなたが正盎に立ち止たっお次の郚分を考えるか延期する必芁がある時が来たした-ボリュヌムは予想倖に倧きいこずが刀明したした。

キャッシュに぀いお私が蚀いたかったこず

ドメむンオブゞェクト、それらの関係、および動䜜を蚭蚈するための匷力なツヌルを入手したした。 Cacheを少なくずも非合理的に䜿甚する堎合は、「ドメむンモデル」パタヌンを䜿甚しないでください。

ZENを䜿甚するず、デヌタベヌス蚭蚈からGUI実装にすばやく移行できたす。これにより、補品が顧客を満足させるたで、数癟のスケッチやプロトタむプを実行できたす。

昚日の孊生は数日で技術を認識したす。 2週間埌、圌が曞いたコヌドは簡単に本番環境に入りたす。

倚くの堎合、倉曎は次のリリヌスたで埅たないこずがありたす。ナヌザヌの芁件は電話での䌚話で満たすこずができたす。 倚くの堎合、ナヌザヌは「F5」を䜿甚しお倉曎されたコヌドを操䜜する必芁さえありたせん。


話す時間がないもの

ストレヌゞレベルの継承は、同じデヌタにアクセスするためのさたざたなむンタヌフェむスを提䟛する優れたツヌルです。

暗黙の参加。 テキストおよび゜ヌスに䟋がありたすが、ツヌルの力は確かに明らかにされおいたせん。


そしお著者から

私はただのアむドラヌだず思っおいるだけでなく、怠の説教者でもありたす。 遅延䜜成されたコヌドはすぐに衚瀺されたす-簡朔で理解しやすく、意図したずおりに正確か぀非垞に効率的に実行されたす。 最埌の芁因は重芁です-プログラマヌは普遍的なコヌドを考えお蚘述したすが、その運呜は、システムのラむフサむクルの終わりたでパラメヌタヌの予枬された質量にたったく䜕も入れず、プログラマヌが想像する数癟の代わりに2぀の倀のみを返すこずですアナリストが悪い堎合。 怠zyなプログラマヌも簡単に区別できたす-圌は陜気で効率的です。 圌は䞖俗的なゎシップずNoSQLホリバヌを知っおいたす。 圌は劇堎を蚪れ、子䟛たちに埓事しおいたす。 圌がプログラムする堎合は、それなしではできない堎合にのみ。

むンタヌシステムズのメリットは小さいず䞻匵する人もいたす-䞻なものは、M蚀語、グロヌバル、および非朚造建築のその他の楜しみです最初のバヌゞョンでは、ここでフロむトに封印され、䜜業を入力したした。 私たちのプログラマヌの倚くは数幎にわたっおCacheで䜜業しおおり、グロヌバルで䜜業するためのコマンドすら知らないのです。

むンタヌシステムズのメリットは、「everyday M」を忘れるこずを可胜にしたこずです。完党に異なる料理の味を食るスパむスずしおのみ䜿甚するこずを提案し、そのレシピを玹介し始めたした。


重芁な脚泚䞊蚘のすべおはロシアの䌚蚈基準に適甚されたせん-悪名高いRAS、䌚蚈を線成する必芁がない嫌な䟋です。 私は䌚蚈゜フトりェアを曞くこずはありたせん。 私は20幎前に自分自身に蚀いたした。 付着する。 ストヌルに「配線」オブゞェクトはありたせん ショヌケヌス、売り手、キャッシュデスクがありたす。 22時たでアルコヌルのオブゞェクトがありたす。 しかし、配線オブゞェクトはありたせん。 その配線ですか。


ご枅聎ありがずうございたした。

Source: https://habr.com/ru/post/J183340/


All Articles