Rumah >hujung hadapan web >tutorial js >Beberapa Petua Corak Reka Bentuk Skrip
Merujuk "Corak Reka Bentuk TypeScript" Vilic Vane, tersedia di Amazon: https://www.php.cn/link/2e51055e7d09f972c49336144993e082
Bab 2 menangani kerumitan yang wujud yang timbul sebagai skala projek perisian. Ia menyerlahkan bagaimana pangkalan kod yang tidak teratur menjadi sukar digunakan dengan cepat dan menawarkan penyelesaian dengan menekankan pengenalpastian corak dan pengabstrakan untuk kebolehselenggaraan yang dipertingkatkan.
Bab ini menggunakan sistem penyegerakan pelanggan-pelayan sebagai kajian kes. Pada mulanya mudah, mengendalikan satu jenis data, kerumitan sistem meletup apabila ciri ditambah (berbilang jenis data, pelanggan, penyelesaian konflik). Ini menggambarkan bagaimana kod tidak berstruktur menjadi sukar untuk diuruskan dengan cepat.
Pertimbangkan sistem HR yang menyegerakkan data pekerja. Bermula dengan hanya nama, menambah peranan, gaji dan masa bercuti tanpa pendekatan berstruktur membawa kepada sistem yang rapuh dan mudah ralat.
Penyegerakan asas dicapai dengan membandingkan cap masa. Pelayan menghantar data dengan cap masa terkini; pelanggan menghantar semula data yang dikemas kini dengan cap masa yang lebih baharu.
<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>
Walau bagaimanapun, pendekatan asas ini tidak berskala apabila sistem berkembang.
Pengarang mengetengahkan isu biasa dalam sistem yang tidak berstruktur:
Dalam sistem HR, mengabaikan perhubungan antara pekerja, jabatan dan organisasi membawa kepada ketidakkonsistenan data (mis., menugaskan pekerja ke jabatan yang tidak wujud).
Bab ini menyokong:
<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>
Atas ialah kandungan terperinci Beberapa Petua Corak Reka Bentuk Skrip. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!