Amazon で入手可能な Vilic Vane の「TypeScript Design Patterns」を参照: https://www.php.cn/link/2e51055e7d09f972c49336144993e082
第 2 章では、ソフトウェア プロジェクトの規模が拡大するにつれて生じる固有の複雑さに取り組みます。これは、整理されていないコードベースが急速に扱いにくくなる様子を強調し、保守性を高めるためのパターンの識別と抽象化を強調することによるソリューションを提供します。
この章では、ケーススタディとしてクライアント/サーバー同期システムを使用します。 最初は単一のデータ型を処理する単純なものですが、機能 (複数のデータ型、クライアント、競合解決) が追加されるにつれて、システムの複雑さは爆発的に増加します。 これは、非構造化コードがいかに管理が急速に困難になるかを示しています。
従業員データを同期する人事システムを考えてみましょう。 名前だけから始めて、構造化されたアプローチなしで役割、給与、休暇を追加すると、システムは脆弱でエラーが発生しやすくなります。
基本的な同期は、タイムスタンプを比較することによって実現されます。サーバーは最新のタイムスタンプを使用してデータを送信します。クライアントは、新しいタイムスタンプを持つ更新されたデータを送り返します。
<code class="language-typescript">type DataItem = { id: number; value: string; timestamp: number }; function syncToClient(serverData: DataItem[], clientData: DataItem[]): DataItem[] { return serverData.filter(serverItem => { const clientItem = clientData.find(item => item.id === serverItem.id); return !clientItem || clientItem.timestamp < serverItem.timestamp; }); } function syncToServer(serverData: DataItem[], clientData: DataItem[]): DataItem[] { return clientData.filter(clientItem => { const serverItem = serverData.find(item => item.id === clientItem.id); return !serverItem || serverItem.timestamp < clientItem.timestamp; }); }</code>
この基本的なアプローチは、システムが成長するにつれて拡張性に欠けます。
著者は、構造が不十分なシステムによくある問題を強調しています:
人事システムでは、従業員、部門、組織間の関係を無視すると、データの不整合が生じます (例: 存在しない部門に従業員を割り当てる)。
この章では次のことを提唱しています。
<code class="language-typescript">type DataItem = { id: number; value: string; timestamp: number }; function syncToClient(serverData: DataItem[], clientData: DataItem[]): DataItem[] { return serverData.filter(serverItem => { const clientItem = clientData.find(item => item.id === serverItem.id); return !clientItem || clientItem.timestamp < serverItem.timestamp; }); } function syncToServer(serverData: DataItem[], clientData: DataItem[]): DataItem[] { return clientData.filter(clientItem => { const serverItem = serverData.find(item => item.id === clientItem.id); return !serverItem || serverItem.timestamp < clientItem.timestamp; }); }</code>
以上がいくつかのヒント Typescript デザイン パターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。