製品 UUID text in red over a binary code background, representing 4D 20 R10’s new support for version 7 UUIDs with timestamp-based sorting.

バージョン7 における UUID の改善とソート機能

4D 20 R10 から、UUID はシステム関数に依存するのではなく、内部アルゴリズムを使って直接生成されるようになりました。これにより、フォーマットや動作をより細かく制御できます。また、今回のアップデートでは、時系列ソートをサポートするバージョン 7 UUID の選択が可能になりました。アプリケーションへの影響について詳しく見ていきましょう。

製品 blank

オブジェクトフィールドをクラスで型指定する

4D 20 R10 では、オブジェクトの型指定が大きく前進し、コードにさらなる信頼性とコントロールを与えます。今後 4D は、値がオブジェクトであるかだけをチェックするのではなく、特定のクラスのインスタンスであるかを検証します。これにより、よりスマートな自動コード補完、インライン検証、より厳しいコンパイルチェックが可能になり、ミスを早期に発見し、より明確で保守性の高いコードを書くことができます。

メリットは変数や関数の結果だけにとどまりません。この機能強化は、データモデルにも適用されます。ストラクチャーエディターのオブジェクトフィールドに、ユーザー定義クラスやネイティブクラス (AI実装用の新しい 4D.Vector など) を型として直接指定できるようになりました。これにより 4D は、オブジェクトの構造を理解し、より信頼性の高い開発を可能にします。

製品 blank

データモデルを処理するORDAクラス

Deeplからの自動翻訳

前回の ブログでは、ORDAデータモデルクラスの世界について紹介しました。さて、いよいよ手を動かして、もっと勉強しましょう

ORDAの構造(データストアデータクラスエンティティエンティティ選択)がオブジェクトで構成されていることは既にご存知でしょう。しかし、それらは単なるオブジェクトではなく、特定のORDAクラスにリンクされた強型オブジェクトなのです。つまり、データの物理的な実装の複雑さを隠蔽するための関数を書くことができるのです。

製品 blank

ORDAクラスの世界へようこそ

Deeplからの自動翻訳

ORDAは、4D v17で革命を起こしました。それは、全く新しい可能性の世界を開き、あなたを別のプログラミングの次元に導きました。オブジェクト指向のアプローチで簡単にアプリケーションを開発できる次元です。

私たちは、そこで終わりませんでした!私たちは、その後の機能リリースごとに、一連の機能を通じてORDAの機能強化を続けてきました。そして今、4D v18 R4では、さらに一歩進んだORDA データモデルクラスが利用可能になりました。あなたのデータモデルに特化したクラスです。

これは、あなたのコードを大きく向上させるでしょう。あなたのアプリケーションは、簡単にサービスを公開し、より管理しやすく、保守しやすくなり、他のアプリケーションとシームレスに統合できるようになります。

これもプロジェクトのおかげで実現した大きな機能です

製品 blank

ORDA:再起動せずに最新のデータストアを利用できる

Deeplからの自動翻訳

4D v18 R3には、開発者のエクスペリエンスに大きな影響を与えるエンハンスメントが含まれています。多くの方から要望のあった機能を、4Dが実現しました!

開発段階(コードの記述とテスト)で4Dスタンドアローンモードで作業する場合、構造が更新されたときに最新のデータストア(ds)を更新するためにデータベースを再起動する必要はありません。

新しい属性や新しいテーブルが必要なとき、毎回データベースを再起動する必要はありません。全て自動です!

コマンドを呼び出すと、最新のデータストアを取得できます。 dsコマンドを呼び出すと、最新のデータストアオブジェクトを取得できます。つまり、このデータストアオブジェクトの複数のバージョンを、実行中のプロセスを停止させることなく、構造を更新したタイミングに応じて、同時に処理することができるのです。

クライアント/サーバーモードで作業している場合、4Dサーバー上で動作しているコードには問題なく機能します。

リモートクライアントでは、構造の更新が必要なクライアントを再起動するだけです。

製品 blank

データベーステストの改善

開発の品質を向上させるためには、ユニットテストが重要です。これらのテストのため、デベロッパーや QAチームは、様々なモード (シングルユーザー / クライアントサーバー) や異なる環境 (Macintosh / Windows) で 4Dデータベースを起動するためのツールを必要としています。

4D製品は、すでにコマンドラインパラメーターを使用して起動することができ、自動テストや運用が可能です。もし、独自のアップデートメカニズムを作成したい場合や、何百台もの 4D Server が稼働しているサーバーファームを扱う必要がある場合はどうでしょうか。たとえば、使用するデータベースファイルを指定したり、起動時にパラメーターを渡したりしたいかもしれません…

ヒント blank

互換性の設定 – ネストされたトランザクション (その3)

Deeplからの自動翻訳

互換性設定とパフォーマンス向上のための「隠し」機能についての継続的なシリーズを歓迎します。 最初の投稿では、QUERY BY FORMULA コマンドと、それがアプリケーションの動作に与える影響について見てきました。第2回目はピリオドとカンマをプレースホルダーとして使用する」という互換性オプションについて、「数字が>>>>>>>のように表示される」 問題を回避するために紹介しました。

3回目の今回は、「ネストされたトランザクション」について説明します。

ヒント blank

トランザクションとは何ですか、またどのように使用するのですか?

Deeplからの自動翻訳

200,000ユーロをある銀行口座から別の銀行口座に振り込むことを想像してください。送金元の口座からその金額を引き出し、送金先の口座に入金します。ここまではすべて正常で、完璧な世界ではこの操作は成功します。しかし、現実の世界では、残念ながらうまくいかないことがある。何かが起きて、お金が失われてしまうのです。それはとても残念なことです。

しかし、トランザクションは、お客様のアプリケーションでこのようなことが起こらないようにするために存在します。このブログでは、トランザクションの用途と重要性、そしてトランザクションがどのようにあなたのビジネスを救うかを示すいくつかのシナリオについて詳しく説明する。

製品 blank

モノの中の時代…(そして、どこまでも)

Deeplからの自動翻訳

オブジェクトは、開発者の生活を楽にするために、その有用性を示し続けています。

オブジェクトの内部で時間(または継続時間)の値を使用することが、よりスムーズで直感的になりました。4D v17 からは、オブジェクトの中の時間は、ミリ秒ではなく秒として設定されます!