动态

列表
创建 时间

Spark 集羣和 Scala 編程語言的關係

Spark 集羣是基於Apache Spark的分佈式計算環境,用於處理大規模數據集的計算任務。Apache Spark是一個開源的、快速而通用的集羣計算系統,提供了高級的數據處理接口,包括Spark SQL、Spark Streaming、MLlib(機器學習庫)和GraphX(圖計算庫)。Spark的一個主要特點是能夠在內存中進行數據處理,從而大大加速計算速度。 Scala 編程語言是Spar

创建 时间

如何設計一個 RPC 框架

RPC(Remote Procedure Call,遠程過程調用)框架是一種在分佈式系統中常見的通信方式。它允許程序調用位於另一台計算機上的函數或過程,就像調用本地函數一樣。RPC 框架的核心職責是在不同計算機或不同網絡環境中實現程序間的通信和數據交換。 RPC 框架的設計目標在於隱藏遠程通信的複雜性,讓開發者像使用本地對象一樣方便地使用遠程對象。這種設計可以大幅簡化分佈式系統的開發流程,因為開發

创建 时间

Wundergraph Cloud - 雲原生 GraphQL 的未來

在當今的軟件開發領域,雲原生應用程序的開發已經成為一種主流趨勢。雲原生開發不僅能夠提高應用程序的可擴展性、可維護性和安全性,還能夠降低運維成本。在這個背景下,Wundergraph Cloud 憑藉其獨特的特色功能,成為了一款備受歡迎的雲原生開發工具。 Wundergraph Cloud 簡介 Wundergraph Cloud 是一款基於 GraphQL 的雲原生開發工具,它旨在簡化數據的查詢、

创建 时间

關於 Angular 應用 Components 和 Directives 的實例化問題

同 Angular Module 不同,Angular Components 和 Directives 要實例化多次,每個出現在 HTML template 中的 markup 都會對應一次實例化。 此外,這些項的作用域也限定在它們被導入的 NgModule中,以防止兩個組件使用相同的選擇器時發生命名衝突。由於依賴注入(DI)行為的這種差異,需要區分一個包含組件和指令的 NgModule 和一個包

创建 时间

使用瀏覽器的 Local Storage 真的安全嗎?

LocalStorage 是一個 HTML5 網絡存儲對象,用於將數據存儲在客户端——即本地,在用户的計算機上。 本地存儲的數據沒有到期日期,並且會一直存在,直到被刪除。 (相比之下,會話存儲是另一個 HTML5 網絡存儲 API,它會在瀏覽器關閉時刪除存儲的數據。) 本地存儲是純 JavaScript。 同樣,雖然它仍然在用户的設備上生成純文本文檔,但本地存儲也允許存儲多達 5MB 的數據(與

创建 时间

面向對象軟件設計領域中職責分離 Segregation of Duties 概念介紹

在討論 Segregation of Duties (SoD) 的概念前,我們先明確它在計算機軟件設計和企業管理中的基本含義。SoD,中文可以翻譯為 職責分離 或 權責分離,是一種防範風險和提高系統安全性的管理策略,要求將關鍵職責分配給多個人或系統,以避免利益衝突、減少錯誤和欺詐的風險。在面向對象設計領域,這一概念同樣適用,意味着系統的不同職責應該由不同的對象承擔,以保持系統的高內聚和低耦合性,進

创建 时间

對象存儲安全的最佳實踐和一些反面的案例

對象存儲安全:最佳實踐與反面例子 對象存儲(Object Storage)是一種現代數據存儲解決方案,它將數據存儲為對象,而不是傳統的塊存儲或文件存儲。對象存儲系統具有高度的擴展性和靈活性,被廣泛用於存儲海量非結構化數據,如文檔、圖片、音視頻文件等。然而,隨着對象存儲的普及,安全問題也變得愈發重要。大家如果關注科技新聞的話,就會發現,涉及到對象存儲的安全事故,不出則已,一出就是大事故,一般都能上熱

创建 时间

rxjs 裏 Skip 操作符的一個使用場景

skip 操作符允許我們忽略源的前 x 個排放。 當我們有一個始終在 subscription 上發出希望忽略的某些值的可觀察對象時,就可以使用這個操作符。比如 Observable emit 的前幾個值並不是我們感興趣的值,另一種情況是我們訂閲了 Replay 或 BehaviorSubject,並且不需要對初始值進行操作,而只關心初始值之後的數據 emit. 這種情況下,skip 操作符非常有

创建 时间

使用 RxJS timeout 操作符給 Angular SSR 服務器端渲染模式下的 HTTP 請求添加超時機制

Angular Universal 是一個開源項目,擴展了 @angular/platform-server 的功能。 該項目使 Angular 中的服務器端渲染成為可能。 為了在服務器上渲染,Angular 使用 node.js 的 DOM 實現——domino. 對於每個 GET 請求,domino 都會創建一個類似的 Browser Document 對象。 在該對象上下文中,Angular

创建 时间

Rxjs mergeMap 的使用場合

注意: flatMap 是 mergeMap 的別名。 如果一次只能激活一個內部訂閲,請使用 switchMap. 如果內部 observables 的發射和訂閲順序很重要,請使用 concatMap. 當需要展平內部 observable 但想要手動控制內部訂閲的數量時,是 mergeMap 極佳的使用場合。 例如,當使用 switchMap 時,每個內部訂閲在源發出時完成,即任意時間

创建 时间

Rxjs map, mergeMap 和 switchMap 的區別和聯繫

map、mergeMap 和 switchMap 是 RxJS 中的三個主要運算符,在 SAP Spartacus 開發中有着廣泛的使用場景。 map map 是 Observables 中最常見的運算符。 它的作用與數組中的映射相對相似。 map 接收從 Observable 發出的每個值,對其執行操作並返回一個 Observable(因此 Observable 鏈可以繼續)。 把它想象成一個函

创建 时间

rxjs Observable 設計原理背後的 Pull 和 Push 思路

Observables 顧名思義,是可以被觀察的事務。在 Rxjs 的上下文裏,Observable 會隨着時間的推移,在某個時間點產生數據。 Observables 可以: 不停地(永遠)產生值,比如 interval 操作符。 可以一次性生產價值,然後進入 complete 狀態。 可能會產生錯誤,然後進入 complete 狀態。 Observable 是一種異步事件的實現利器,例

创建 时间

rxjs Observable 兩大類操作符簡介

Observable 生產的數據,應該提供開發人員足夠的自由度,對這些數據進行各種處理,比如 map / transform 等等。這就是 Rxjs Operator 大展身手的地方。 運算符是對 Observable 進行操作並返回 Observable 的函數。 這允許我們鏈接這些運算符。 鏈中的每個運算符都會修改由前一個運算符的運算產生的 Observable。 鏈中的算子不會同時工作,而是

创建 时间

什麼是 rxjs 的 replaySubject

rxjs 是一個強大的庫,為我們提供了豐富的功能來處理異步數據流。在這些功能中,ReplaySubject 是一個非常有用的類,它在多種情況下表現突出。 ReplaySubject 是 Subject 的一種變體。與 Subject 類似,它是一個多播的 Observable,允許多個 Observer 訂閲。然而,它有一個顯著的不同點:它會緩存一定數量的值,並將這些值重新發射給所有新的訂閲者。我

创建 时间

什麼是 SAP Router?

SAP Router 是 SAP 體系中一個非常關鍵的組件,它在整個 SAP 網絡架構中扮演着重要角色,特別是在安全性、網絡管理以及跨網絡通信方面。要理解 SAP Router 的重要性,必須首先了解它的背景和設計初衷。 什麼是 SAP Router? SAP Router 是 SAP 提供的一種專用網絡路由器軟件,主要用於在不同網絡之間(如公司內部網絡與 SAP 外部網絡)建立安全的通信通道。它

创建 时间

什麼是數據庫表的索引和主索引

在談論數據庫表的索引和主索引之前,我們需要理解數據庫索引的基本概念。數據庫索引是幫助數據庫系統高效查詢數據的一種數據結構。通過索引,可以快速定位到存儲在數據表中的特定數據,無需掃描整個表。索引的實現通常使用樹型結構,如 B-樹或紅黑樹,這些結構支持快速的查找、插入和刪除操作。 數據庫索引的工作原理 假設你有一個圖書館的圖書數據庫,其中包含數萬條圖書記錄。如果要找到特定的書籍,沒有索引的情況下,可能