メインコンテンツへスキップ

ルーティングについて

コメント

30件のコメント

  • 竹本 靖夫

    ISHIJIMA さんお世話になっております。

    一般的と言われると自信がありません;;

    まだ数社の実績しかありませんが、ルーティング+遅延ロードをガシガシ使っています。

     

    もしよろしければ近日中に、最近作ったサンプルプログラム第一弾をGithubとか弊社のホームページに置いておこうと思うのですがいかがでしょうか?

    MagicのほうはアレですがAngular側はだいたいコレで行けるはずです。

    データベースにはサンプルとしてすぐ動かせるようにSQLITEを使用しています。

     

     

    ひぐまショップデモ ログイン・単票形式
    https://youtu.be/46OjRa-k7F4

    ひぐまショップデモ 伝票形式
    https://youtu.be/gtk_hep8B_k

    ひぐまショップデモ JSON連携・ファイルアップロード・ダウンロード
    https://youtu.be/WGh6LMTD62k

  • ISHIJIMA

    竹本 靖夫 さん

    お世話になります。

    いろいろなサンプルをみてどのような作りか良いのか知りたいと思っています。

    よろしくお願いします。

  • ISHIJIMA

    竹本 靖夫 さん

    お世話になります。

    >まだ数社の実績しかありませんが、ルーティング+遅延ロードをガシガシ使っています。

    いろいろな資料を見るとルーティングが基本なのかなと思っています。

    XPAの場合もそうだと思っているのですがペットショップアプリが使っていないので・・・

    サンプルよろしくお願いします。

    ある程度、ルーティングで作成してみてはいるのですが本当に良いのかが心配なのと

    本当にこの作成方法で実際に運用した場合、問題ないのかなと・・・

    サンプルよろしくお願いします。

  • 櫻井永一

    Web Client版ペットショップアプリは、XPAで作成された既存アプリを

    踏襲して作成しています。よってルーティングではなく、コールプログラムで

    プログラムを呼び出す形を採用しております。

    この意図は、出来るだけ従来のローコードの開発手法のまま、Web Clientの

    アプリケーションが作成できることをお伝えしたかったからです。

    しかし、実際の開発現場では、ルーティングを採用しているケースが

    多く、遅延ロードを行う場合には、ルーティングで作られていることが

    前提条件となり、ルーティングを選ぶ理由となっています。

    現在、無償のWeb Clientハンズオンコース、

    又は3日間で開催しておりますWeb Client基礎トレーニングコース

    では、ルーティングを使ったWebアプリケーション開発の演習を

    実施しております。

    ぜひ、こちらのコースもルーティングのご参考になると思いますので

    これからルーティングを学ばれる方にはご参加いただきたいです。

     

  • ISHIJIMA

    答えられたらでよいのですが遅延ロードとは何でしょうか?

    大規模等の業務アプリを作成するとなるとやはりルーティング・遅延ロードが必須なのでしょうか?

  • 櫻井永一

    答えられる範囲で恐縮ですが、シングルページアプリケーションでは

    最初の読み込みですべてのコンテンツをロードします。

    その分、その後のパフォーマンスが良いという特徴があります。

    従来のWebアプリケーションでは、リクエストしたページのコンテンツだけを

    ロードしますので、少し違いがございます。

    一般的に、シングルページアプリケーションの規模が大きくなると

    最初の読み込みが重くなり、画面表示が遅くなるというトラブルを抱えるケース

    がございます。

    そこで、Web Clientでは、最初に読み込むコンテンツの量を減らして、初期ページの読み込みの

    高速化が期待される機能としてWeb Clientの遅延ロードがございます。

    詳細については、本番環境へのデプロイと合わせて遅延ロードの設定を行う必要がございますので

    Web Client基礎トレーニングコースをご検討いただければと思います。

  • ISHIJIMA

    Web Client基礎トレーニングコースを検討しようと思っているのですが4.7.1ではないですよね

    4.7.1で機能がいろいろ追加されているのですがそのあたりはどうなりますか?

  • tanda

    ISHIJIMAさん、ルーティングというのはWebの世界で一般的に用いられている技術ですね。Magicでもルーティングが行えると便利だからという要望で、あとから追加されたオプションだと思います。

    おそらく、Webの世界からMagicに入ってくる人は、そのほうが分かり易いし、融通が利くからといった側面があると思います。

    しかしながら、従来通りのプログラムリンクでもほとんどがこなせますので、Magicの作法になれた人は従来通りのやり方でもいいと思います。ケースバイケースですね。

  • ISHIJIMA

    基本的にリンクでできる事は確認しましたが

    ログイン→動的メニュー(3階層)→プログラム等を考えると

    今の私の把握しているところだとリンクたど限界があり難しいと判断しました。

    ルーティングだと問題なくできそうな事までは確認できたのですが

    本当にその作成手法が正しいのか

    実用的には問題ないのかの疑問が残っています。

    私のスタンスとしては基本構造はすべてxpaのみで作成したいと思っています。

    あとのhtml・css・ts等は最低限にしたいと思っています。

    できる限りxpaのみの生成である程度できる事を願っています。

    多分このような考え方は間違っているのかもしれませんが・・・

     

     

  • 竹本 靖夫

    例えば ログイン→メニュー→売上ヘッダ

    までの処理をprog()で見ると

    Routingをしない場合は

    ログイン、メニュー、売上ヘッダ

    となり最後の売上ヘッダ時点でまちがって「F5」キーを押した場合ログインまで処理が戻ります。

    Routingをした場合prog()で見ると

    売上ヘッダのみとなり、まちがって「F5」キーを押した場合売上ヘッダで処理が終わります。

    たぶんプログラム本数も2桁単位で起動時間が遅くなるので、最初から理由がなければルーティングと遅延ロードの組み込みを行うのが良いとおもいました。

  • tanda

    > できる限りxpaのみの生成である程度できる事を願っています。

    Magicの基本姿勢は変わらないと思いますよ。

     

  • tanda

    Magicブラウザクライアントの時も最初は面食らいましたが、だんだん落ち着いていきましたね。

  • ISHIJIMA

    竹本 靖夫 さん

    >たぶんプログラム本数も2桁単位で起動時間が遅くなるので、

    >最初から理由がなければルーティングと遅延ロードの組み込みを行うのが良いとおもいました。

    私もそう思います。

    Webアプリではそれが標準なのでしょうね

    回答ありがとうございました。

  • ISHIJIMA

    xpaのみで構造作った場合の「F5」キーの挙動がよくわかっていません。

    コンテキストの関係でメモリテーブルを使用していた場合とか

    グローバル変数とか・・・

    結構厄介みたいで・・・・

    この辺りは解決しないといけないのかな・・・

    「F5」キ-の挙動はきちんとしておかないと駄目ですね・・・

     

  • ISHIJIMA

    ちなみに「F5」キーを無効にする事はできるのかな?

  • Pu

    こんにちはPuです

    webのフレームワークを使用していない時は、clientはhtml+javascriptで

    サーバーサイドはDB読んでjsonでDBの値を返してclientで表示する

    もしくはサーバー側でhtmlをtemplateで出力する手法、magicで言うクラサバみたいな手法しかしりませんでした。

    wdbフレームワークを使用するようになり、たいていのフレームワークはルーティングが基本なので

    そういうもんだと思い使用しましたが、生産性の向上(これは書き方が統一される)、共通化

    ソースの読みやすさなどのメリットがあると感じました

    magicが生産性高いのも、一種magicと言うaplのフレームワークでの記述だと感じます

    (ソースが読みやすい、共通性がある)

    これはあくまでも私の感想です。

    でわ~でわ~

  • ISHIJIMA

    Puさん

    こんにちは

    回答ありがとうございました。

    やはり一般的にはルーティングなのですね

    生産性向上・共通化・読みやすさ・・・大事ですよね

    Webアプリの特性なのかもしれませんが戻る・進む・再読み込み・・

    この辺りがどのように実装するかが難しそうです・・・

  • Pu

    ISHIJIMAさんこんにちは

    magic以外だったら通常はjavascriptで簡単なんですが

    でわ~でわ~

  • ISHIJIMA

    Puさんこんにちは

    >magic以外だったら通常はjavascriptで簡単なんですが

    ちなみにjavascriptだとどんなふうに記述したり判断したりするのでしょうか?

  • Pu

    ISHIJIMAさんこんにちは

    参考サイトのurlを記載しておきますね

    https://www.sejuku.net/blog/95024

    でわ~でわ~

  • ISHIJIMA

    Puさんこんにちは

    参考にさせていただきます。

    ありがとうございました。

  • ISHIJIMA

    竹本 靖夫 さん こんばんわ

    早速、ひぐまショップデモをダウンロードして実行してみました。

    問題なく実行できました。

    これからいろいろ確認して参考にさせていただきます。

    ありがとうございました。

  • ISHIJIMA

    Loginのプログラムが起動される記述がないのに呼び出されるのは

    Loginのルート名が「**」となっているからなのでしょうね

    これはRoutingが呼び出された時に最初に起動するという事なのですかね

    「**」の意味は何でしょうか?

  • ISHIJIMA

    Routingはフォルダ無しで

    CommonフォルダーはWebモジュールでLoad on Demandはチェックなし

    以外のフォルダーはWebモジュールでLoad on Demandはチェックあり

    どのように使い分けるのでしょうか?

  • 竹本 靖夫

    ISHIJIMA さんおはようございます。

    質問に回答させていただきます。

    1.「**」はAngularではルーティングにおけるワイルドカードでして「なんでも」です。
    なので最後の行に仕込んで「すべてがなかったら」という感じで使用しています。

    2.基本はLoad on Demandで構築しております。
    Load on Demandでない場合は初期ロード時間が大変なことになります。

    そしてLoad on DemandからLoad on Demandをコールする場合は「同じフォルダしかコールできない」という制限がありますのでヘッダやフッダなど共通モジュールに関してはLoad on Demandなしで行っています^-^。

  • ISHIJIMA

    竹本 靖夫 さん おはようございます。

    わかりやすい回答で大変参考になります。

    回答ありがとうございました。

     

  • tanda

    息子に聞いてみましたが、ルーティングはWebアプリでは当たり前の手法だそうです。Magicでもこれが取り入れられたということですね。

  • Pu

    こんにちはPuです

    MVCが出てきたころ、WEBフレームワーク(サーバーサイド)はurlルーティング

    (有名なのはRuby on Rails)考え方にビックリした遠い記憶が...

    今、MVVMモデル(SPA)が出てきてvueルーティングに目から鱗

    ルーティングよりもSPAフレームワークでびっくりしたのはデータの双方向バインディング

    人間長く生きていると技術の進化にビックリです。ついていくのが大変です。

    SPAの普及と共に、そろそろサーバーレス(AWS lambda)も勉強せねば

    しらんけど(^^;

  • ISHIJIMA

    新しい技術についていくの大変ですよね・・・・

    頑張らなければ・・・

  • tanda

    Webアプリはページを記憶して、次回の使用時にそこからスタートすることができるので、プログラムリンクだけでは不自由なこともありそうですね。

サインインしてコメントを残してください。