Skip to content

Commit

Permalink
Update documentation on BEAR.Sunday usage and benefits
Browse files Browse the repository at this point in the history
The commit improves the structure of the Japanese manual of BEAR.Sunday. Section breaks are added for enhanced readability. For more accurate information, updates are made in the subsections 'Value for developers', 'Value for users' and 'Value for business' under 'Value brought by BEAR.Sunday'.
  • Loading branch information
koriym committed Apr 19, 2024
1 parent 05f7693 commit 7b5cd5c
Showing 1 changed file with 8 additions and 20 deletions.
28 changes: 8 additions & 20 deletions manuals/1.0/ja/15.tech.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,17 +118,9 @@ BEAR.Sundayは、リソース指向アーキテクチャ(ROA)を中核とし

揮発性を排除したこのアプローチは、SPOF(Single Point of Failure)を回避し、高い可用性と耐障害性を実現するだけでなく、ユーザー体験とコスト効率を最大化させ、ダイナミックコンテンツでもスタティックコンテンツと同じWeb本来の分散キャッシングを実現します。つまり、Webが1990年代から持っていたスケーラブルでネットワークコストも削減する分散キャッシュという原則を、現代的な技術で再実現しているのです。

#### セマンティックメソッドによるキャッシュ無効化
#### セマンティックメソッドと依存によるキャッシュ無効化

BEAR.SundayのROAでは、各リソース操作にセマンティック(意味的な役割)が与えられています。例えば、GET メソッドはリソースを取得し、PUT メソッドはリソースを更新します。これらのメソッドがイベントドリブン方式で連携し、関連するキャッシュを効率的に無効化します。たとえば、特定のリソースが更新された際には、その変更が依存する他のリソースに自動的に伝播し、関連するキャッシュが無効化されます。これにより、データの一貫性と新鮮さが保たれ、ユーザーに最新の情報が提供されます。

#### 埋め込みリンクによる依存関係の可視化

ROAの設計では、リソースは他のリソースへのリンクを含むことができ、これによりリソース間の依存関係がクライアントに透明に示されます。このリンク情報を活用することで、キャッシュの無効化が必要な場合にどのリソースが影響を受けるかを瞬時に判断でき、効率的なキャッシュ管理が可能になります。

#### 引数の宣言によるキャッシュキー生成

BEAR.Sundayでは、リソースメソッドの引数が明確に宣言されています。これにより、リソースの状態やリクエストパラメータに基づいて独自のキャッシュキーを生成することができます。キャッシュキーの生成は、リソースの状態が変更されたときに特定のキャッシュを正確に特定し、無効化するための重要なメカニズムです。これにより、不必要なキャッシュの削除を避けつつ、必要な部分だけを迅速に更新することができます。
BEAR.SundayのROAでは、各リソース操作にセマンティック(意味的な役割)が与えられています。例えば、GET メソッドはリソースを取得し、PUT メソッドはリソースを更新します。これらのメソッドがイベントドリブン方式で連携し、関連するキャッシュを効率的に無効化します。たとえば、特定のリソースが更新された際には、そのリソースを必要とするリソースのキャッシュが無効化されます。これにより、データの一貫性と新鮮さが保たれ、ユーザーに最新の情報が提供されます。

#### ETagによる同一性確認と迅速な応答

Expand Down Expand Up @@ -174,15 +166,11 @@ JsonSchemaを使用してリソースの表現を検証し、リソースの整

### PHPインターフェイスとSQL実行の統合

BEAR.Sundayでは、PHPのインターフェイスを使って、データベースとのやり取りを行うSQL文の実行を簡単に管理できます。クラスを実装することなく、インターフェイスに直接SQLの実行オブジェクトを束縛することが可能です。これにより、コードの再利用性が向上し、モジュール性が強化されます。
BEAR.Sundayでは、PHPのインターフェイスを使って、データベースとのやり取りを行うSQL文の実行を簡単に管理できます。クラスを実装することなく、PHPインターフェイスに直接SQLの実行オブジェクトを束縛することが可能です。これにより、コードの再利用性が向上し、モジュール性が強化されます。

### クエリー引数の評価

BEAR.Sundayのインターフェイスは、単なるスカラー値だけでなくオブジェクトも受け入れることができます。特に、オブジェクトがインターフェイスによってどのように評価されるかは重要です。例えば、DateTimeInterface オブジェクトをインターフェイスに渡すと、これがSQL文内で適切に日付として扱われるように自動的に評価されます。これにより、日付や時刻のデータを効率的に扱うことができます。

#### クエリーの引数の依存性注入

BEAR.Sundayでは、インターフェイスに対して依存性を注入することも可能です。これにより、必要なオブジェクトや値を動的にインターフェイスに供給することができ、より柔軟なアプリケーション設計が実現されます。依存性注入を用いることで、コードのテストが容易になり、結合度を低く保ちつつ高い凝集度を維持することができます。
SQL実行に束縛したPHPインターフェイスは、単なるスカラー値だけでなくオブジェクトも受け入れることができます。例えば、DateTimeInterface の引数があると束縛された現在時刻が、SQL文内で適切に日付として扱われるように自動的に日付の文字列として評価されます。自己解決力のあるPHPインターフェイスがSQLに渡す引数解決の負担を軽減し、コードの可読性を向上させます。

#### AIとツールを活用したSQL生成と最適化

Expand Down Expand Up @@ -255,7 +243,7 @@ BEAR.Sunday では、セマンティックバージョニングを採用し、

高いコード品質のアプリケーションを提供するためにBEAR.Sundayフレームワークも高い水準でコード品質を保っています。

* フレームワークのコードは静的解析ツールのpsalmとphpstan双方でレベル最大で適用しています
* フレームワークのコードは静的解析ツールのpsalmとphpstan双方で最も厳しいレベルで適用しています
* テストカバレッジ100%を保っています。
* タイプカバレッジもほぼ100%です。mixedの使用を最小化しています。
* 原則的にイミュータブルなシステムであり、テストでも毎回初期化が不要なほどクリーンです。SwooleのようなPHPの非同期通信エンジンの力を引き出します。
Expand All @@ -266,7 +254,7 @@ BEAR.Sunday では、セマンティックバージョニングを採用し、

- 生産性の向上:堅牢な設計パターンと原則に基づいた制約で、開発者はコアなビジネスロジックに集中できます。
- チームでの協業:開発チームに一貫性のあるガイドラインと構造を提供することで、異なるエンジニアたちのコードを疎結合のまま統一的に保ち、コードの可読性とメンテナンス性を向上します。
- メンテナンス性の向上:BEAR.Sundayの後方互換性を破壊しないことソフトウェアの原則と設計パターンに基づいた堅牢な設計思想は、メンテナンスコストを削減しソフトウエアの長期的な継続性を高めます。
- メンテナンス性の向上:BEAR.Sundayの後方互換性を破壊しない事と、変わらない制約は、メンテナンスコストを削減しソフトウエアの長期的な継続性を高めます。
- 柔軟性と拡張性:BEAR.Sundayのライブラリを含まない方針は、開発者にコンポーネントの選択における柔軟性と自由をもたらし、将来の変化にも対応できます。
- テスト容易性:BEAR.Sunday の DI(依存性の注入)と ROA(リソース指向アーキテクチャ)がテスト容易性を高めます。

Expand All @@ -279,8 +267,8 @@ BEAR.Sunday では、セマンティックバージョニングを採用し、
### ビジネスにとっての価値

- 開発コストの削減:BEAR.Sundayが提供する一貫性のあるガイドラインと構造は、持続的で効率的な開発プロセスを促進し開発コストを削減します。
- 維持コストの削減:BEAR.Sundayの後方互換性を維持するアプローチは、技術的継続性を高め、変更対応の時間とコストが不要にします
- 高い拡張性:BEAR.Sunday のコードの変更を最小にしながら振る舞いをかえることのできるDI(依存性の注入)やAOP(アスペクト指向プログラミング)といった技で、ビジネスの成長や変化に合わせながらアプリケーションを容易に拡張できます。
- 維持コストの削減:BEAR.Sundayの後方互換性を維持するアプローチは、技術的継続性を高め、変更対応の時間とコストを最小限に抑えます
- 高い拡張性:BEAR.Sunday のコードの変更を最小限に抑えながら振る舞いを変えることができるDI(依存性の注入)やAOP(アスペクト指向プログラミング)といった技で、ビジネスの成長や変化に合わせながらアプリケーションを容易に拡張できます。
- 優れたユーザーエクスペリエンス(UX):BEAR.Sunday は高いパフォーマンスと高い可用性を提供することで、ユーザーの満足度を高めます。優れたUXは、顧客ロイヤリティの向上、顧客基盤の拡大、ビジネスの成功に貢献します。

優れた制約は変わりません。BEAR.Sundayがもたらす制約は、開発者、ユーザー、ビジネスのそれぞれに具体的な価値を提供します。

0 comments on commit 7b5cd5c

Please sign in to comment.