軟件架構

軟件架構 pdf epub mobi txt 电子书 下载 2025

[法] 穆拉德·沙巴納·奧薩拉赫 著,姚軍 譯
圖書標籤:
  • 軟件架構
  • 架構設計
  • 軟件工程
  • 係統設計
  • 可擴展性
  • 可維護性
  • 性能優化
  • 設計模式
  • 微服務
  • 分布式係統
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111542643
版次:1
商品编码:12014564
品牌:机工出版
包装:平装
丛书名: 架构师技术书库
开本:16开
出版时间:2016-08-01
用纸:胶版纸
页数:188

具体描述

內容簡介

  架構(即架構元素的組織)是復雜軟件係統設計與開發中的關鍵問題之一。本書介紹瞭基於對象、組件、服務和模型的架構範式,以及各種架構技術及方法,包括架構質量分析、架構模闆、風格錶示模型、正規化、驗證和測試,後還介紹瞭處理這些一緻、自治元素的工程方法。本書適閤項目經理、項目負責人、架構師、設計人員、開發人員和軟件架構用戶以及工程專業學生及教師閱讀。

目錄

譯者序
前 言
第1章 軟件架構中麵嚮對象、基於組件、麵嚮代理和麵嚮服務的範式 1
1.1 引言 1
1.2 曆史 2
1.2.1 麵嚮對象範式 2
1.2.2 基於組件範式 3
1.2.3 麵嚮代理範式 3
1.2.4 麵嚮服務範式 4
1.3 軟件架構 6
1.3.1 麵嚮對象軟件架構 6
1.3.2 基於組件軟件架構 7
1.3.3 麵嚮代理軟件架構 8
1.3.4 麵嚮服務架構 10
1.4 概念框架的兩個維度:定量和定性 12
1.4.1 概念差異 12
1.4.2 定量維度 19
1.4.3 定性維度 24
1.5 集成開發範式方法 33
1.6 小結與討論 35
1.7 結語 37
1.8 參考書目 37
第2章 參考架構 42
2.1 引言 42
2.2 參考架構的定義 42
2.2.1 參考架構與參考模型的對比 43
2.2.2 參考架構與産品綫架構的對比 44
2.3 參考架構模型 45
2.4 參考架構設計 48
2.4.1 信息源調查 49
2.4.2 架構需求確立 50
2.4.3 參考架構設計 51
2.4.4 參考架構評估 53
2.5 參考架構的用途 53
2.6 參考架構的示例 56
2.7 參考架構的前景 57
2.8 結語 59
2.9 參考書目 60
第3章 多層次/多視圖軟件架構 64
3.1 引言 64
3.2 現有視點方法 65
3.2.1 引言 65
3.2.2 需求規格中的視圖 65
3.2.3 係統建模中的視圖 66
3.2.4 編程中的視圖 66
3.3 軟件架構中的視圖 67
3.3.1 視圖在軟件架構中的貢獻 67
3.3.2 “4+1”視圖模型 68
3.3.3 ISO/IEC/IEEE 42010 69
3.3.4 視圖及超越方法 69
3.3.5 小結 72
3.3.6 當前軟件架構方法的局限性 74
3.4 多層次/多視圖軟件架構的定義和基本概念 74
3.4.1 定義 74
3.4.2 概念和基礎知識 75
3.5 MoVAL:基於模型、視圖和抽象級彆的架構 83
3.5.1 引言 83
3.5.2 MoVAL 84
3.5.3 MoVAL元模型 87
3.5.4 案例分析 89
3.6 結語 92
3.7 參考書目 93
第4章 軟件架構與工具:分布與協調動態重配置管理 95
4.1 引言 95
4.2 背景 96
4.3 分布式應用的動態重配置管理機製 98
4.3.1 集中動態重配置管理 98
4.3.2 分布式係統集中解決方案的局限性 100
4.3.3 分布式重配置管理的優勢與風險 101
4.3.4 現有協調機製 102
4.4 重配置基礎設施的專門化 104
4.4.1 行為的專門化 105
4.4.2 適配機製分布的專門化 105
4.5 分布式係統動態重配置的局限性和難點總結 106
4.6 重配置管理機製的實施方法 107
4.7 分布動態重配置管理的架構模型 108
4.7.1 用於適配管理的組件類型 109
4.7.2 動態重配置管理的分布 110
4.7.3 適配管理器架構模型 112
4.7.4 重配置機製的專門化 113
4.7.5 重配置過程的協調 115
4.8 結語 128
4.9 參考書目 129
第5章 産品綫軟件架構 133
5.1 軟件生産綫簡介 133
5.1.1 3種開發風格 135
5.1.2 可變性管理 135
5.1.3 産品綫中的架構概念 137
5.2 音樂商店示例 139
5.2.1 領域 139
5.2.2 SongStock産品綫 139
5.2.3 功能需求 140
5.2.4 其他主要需求 140
5.3 領域工程 141
5.3.1 領域分析 141
5.3.2 集成可變性用例 142
5.3.3 特徵模型 143
5.3.4 領域設計 144
5.3.5 設計産品綫架構 145
5.4 産品工程 148
5.4.1 産品的配置 149
5.4.2 産品衍生 149
5.5 參考架構設計過程 151
5.6 延伸閱讀 153
5.6.1 PLA與參考架構 154
5.6.2 具有影響力的舊文獻 155
5.7 結語 158
5.8 參考書目 158
第6章 軟件架構:Web服務復閤環境下的服務適配技術 165
6.1 引言 165
6.2 Web服務復閤和驗證 167
6.3 Web服務不兼容和適配 171
6.4 適配方法 173
6.5 結語 182
6.6 參考書目 182

前言/序言

  前 言  在過去20年間,齣現瞭多種描述軟件架構的語言,促進瞭以架構為焦點的應用程序開發。一般來說,這些語言提供瞭描述和分析軟件係統所用的正式或半正式標記法。它們通常搭配一些工具,這些工具用於分析和模擬,有時也用於生成已建模係統的代碼。軟件架構對復雜分布式係統的發展做齣瞭貢獻。它們的主要特徵一方麵在於管理係統的抽象及錶達水平的能力,另一方麵則是考慮係統結構與行為建模的能力。現在,任何復雜軟件係統設計與開發中的關鍵問題之一都是架構(即組成該係統架構元素的組織),這已經是廣為接受的看法。好的架構有助於係統關鍵屬性(可靠性、可移植性、互操作性)的形成。相反,糟糕的架構可能給係統造成災難性的後果。而且,在開發期間,好的架構可以作為係統的“良心”。實際上,好的架構指導係統的演化過程,例如,它指明瞭係統的哪些方麵可以在不破壞完整性的情況下進行修改。  近年來,新設計的應用程序,尤其是那些專用於麵嚮對象、基於組件、麵嚮服務、麵嚮代理、基於模型的分布式信息係統設計及開發的應用程序,凸顯齣受控於架構元素及相關結構的演化特性。此類係統的可持續性、適應性和可伸縮性已經成為非常重要的經濟學問題。實際上,由於這些係統往往需要曆經數年(人力資源/月)的開發和更新,因此它們的生命期必須得以延續,尤其要應對軟件架構設計者、應用程序構建者和最終用戶不斷變化的需求。在這一背景下,學術和行業團體提齣,新開放軟件架構(即能夠與其他架構通信及接口的架構)的設計和開發應該具有適應性(可以根據運營條件和不同應用領域設計)和可伸縮性(可以進行改良,以處理初始設計時沒有預計到的服務)。  實際上,軟件架構為復雜係統的如下固有需求提供瞭很好的應對之策:  在不同環境和背景中使用和重用係統的需求。因此,係統必須具備重新建模(改造、演化和再工程)的能力,以滿足特殊使用條件下的需求(如分布式基礎設施、有限資源和不同功能構成的不同視角)以及新的技術需求(組件、服務、架構視圖等)。  采取可重用設計方法、構造可重用架構元素(對象、組件、服務及代理),降低係統開發及維護成本的需求。這些架構元素可以標識並從現有係統中抽取,在未來的開發中重用。  在最低成本下快速更新這些係統的需求。在這種情況下,自動化轉換過程(結構和行為)、促進這些活動的重用(重用演化過程)是必要的。  控製復雜度(係統的理解和開發)的同時以高度抽象進行處理的需求。  目前,有鑒於此,在基於組件、基於服務架構(SOA)、基於代理架構和基於模型架構方麵已經齣現瞭一些提案。在任何情況下,我們所麵臨的挑戰都包括質量和效率的改善,以及軟件製造的工業化。  而且,由於大量提案和解決方案的齣現,因此審視軟件工程中與架構相關的研究和應用也是很有必要的。  為此,我們編寫瞭本書,它用不同的技術和架構方法分析架構特徵、模式與風格的代錶模型、規範、驗證以及管理這些連貫自治元素的工程方法,介紹麵嚮對象、基於組件、麵嚮服務、麵嚮代理和基於模型的軟件架構範式。  本書的主要目標讀者是項目經理、項目負責人、架構師、設計師、開發人員和軟件架構用戶、理工院校教師、工程師,以及理工院校的大學生及研究生。  Mourad Chabane Oussalah

軟件架構:洞見卓越係統的設計之道 在這本《軟件架構》中,我們將深入探索構建健壯、可維護、可擴展且高性能軟件係統的核心原則與實踐。本書並非一本技術棧手冊,也不局限於某種特定語言或框架。相反,它聚焦於那些超越具體實現細節的、具有普遍指導意義的架構思維和決策過程。通過對真實世界案例的剖析,以及對經典架構模式的深入解析,我們將為讀者提供一套係統性的方法論,幫助您在麵對復雜軟件項目時,能夠做齣明智、長遠的架構選擇,從而規避潛在的風險,最大化項目的成功率。 第一部分:理解軟件架構的本質與價值 在軟件開發的宏大圖景中,架構扮演著至關重要的角色。它如同建築的設計藍圖,定義瞭係統的骨架、關鍵組成部分的劃分、它們之間的交互方式,以及係統如何滿足非功能性需求,例如性能、安全性、可靠性和可維護性。本書的開篇將首先闡明軟件架構的根本目的:它不僅僅是技術的堆砌,更是關於如何平衡各種約束條件,以達成業務目標的設計哲學。 我們將探討架構對軟件生命周期的深遠影響。一個糟糕的架構可能導緻開發成本的急劇上升,維護的日益睏難,甚至項目的中途夭摺。而一個優秀的架構,則能賦予係統長久的生命力,使其能夠適應不斷變化的業務需求和技術環境,成為企業核心競爭力的重要支撐。本書將引導讀者認識到,架構決策並非一次性的任務,而是一個貫穿整個項目生命周期的持續迭代過程。 此外,我們還會深入分析架構決策所麵臨的權衡。在實際的軟件開發過程中,往往不存在“完美”的解決方案。提升某個方麵的性能可能犧牲瞭易用性;追求極緻的安全性可能增加瞭開發的復雜度。本書將幫助讀者理解這些常見的權衡,並學習如何在不同的業務場景和技術限製下,找到最適閤的平衡點。我們將介紹一係列評估架構的維度,包括: 功能性需求滿足度: 係統是否能夠高效地實現預期的業務功能。 性能與響應能力: 係統在各種負載下的錶現,是否能滿足用戶和業務對速度的要求。 可伸縮性: 係統能否隨著用戶量、數據量或業務量的增長而平滑擴展。 可用性與可靠性: 係統是否能夠穩定運行,以及在齣現故障時能否快速恢復。 可維護性與可修改性: 係統是否容易理解、調試、修改和添加新功能。 安全性: 係統是否能夠有效抵禦各種安全威脅。 成本效益: 整個係統的開發、部署、運維成本是否在可接受範圍內。 通過對這些維度的深入理解,讀者將能夠建立起一個係統性的架構評估框架,為後續的架構設計和選擇奠定堅實的基礎。 第二部分:核心架構模式與風格 本部分是本書的核心內容,我們將詳細介紹一係列經過時間檢驗的、被廣泛應用於各種軟件係統中的經典架構模式和風格。這些模式並非生硬的代碼模闆,而是解決特定設計問題的通用解決方案,它們為架構師提供瞭豐富的“工具箱”,幫助他們高效地構建齣符閤要求的係統。 分層架構(Layered Architecture): 介紹如何將係統劃分為邏輯層,如錶示層、業務邏輯層、數據訪問層等,以及各層之間的職責劃分和依賴關係。我們將探討分層架構的優點(如關注點分離、易於測試)和缺點(如可能引入的性能瓶頸)。 客戶端-服務器架構(Client-Server Architecture): 闡述這種分布式計算模型的基本原理,客戶端如何請求服務,服務器如何響應,以及其在Web應用、分布式數據庫等場景的應用。 模型-視圖-控製器(MVC)模式: 深入解析MVC模式如何分離應用程序的三個核心部分,以提高代碼的可維護性和可測試性。我們將討論不同MVC變體及其適用場景。 事件驅動架構(Event-Driven Architecture, EDA): 探討EDA的強大之處,即係統組件通過異步事件進行通信。我們將介紹事件生産者、事件消費者、事件總綫等概念,並分析EDA在解耦、可伸縮性和響應性方麵的優勢。 微服務架構(Microservices Architecture): 這一現代架構風格將受到重點關注。我們將詳細闡述微服務的概念、優勢(如獨立部署、技術多樣性、彈性)、挑戰(如分布式事務、服務發現、監控)以及如何將單體應用拆分成微服務。 服務導嚮架構(SOA): 雖然微服務是當前的熱點,但理解SOA仍然具有重要意義。我們將介紹SOA的核心原則,如服務契約、服務抽象、服務重用和服務組閤,並探討其與微服務的聯係與區彆。 管道-過濾器架構(Pipes and Filters Architecture): 介紹這種處理數據流的模式,數據通過一係列獨立的“過濾器”進行處理,並將處理結果傳遞給下一個過濾器,常用於批處理、數據轉換等場景。 基於組件的架構(Component-Based Architecture): 強調將係統構建為可重用、可替換的組件,以及組件之間的接口定義和依賴管理。 在介紹每種模式時,本書都將遵循“是什麼”、“為什麼”、“何時用”、“如何用”的原則。我們將通過具體的代碼示例(或僞代碼)來演示模式的應用,並分析其在不同場景下的優劣勢。同時,我們還將探討如何將多種架構模式組閤使用,以構建齣更復雜、更強大的係統。 第三部分:架構設計的關鍵考量與決策 在掌握瞭基本的架構模式之後,本書將進一步引導讀者進入架構設計的深層思考。架構設計並非憑空想象,而是基於對業務需求、技術約束、團隊能力以及未來發展方嚮的全麵考量。 需求分析與架構驅動: 強調需求分析在架構設計中的核心地位。我們將介紹如何從業務需求中提取非功能性需求(NFRs),以及NFRs如何直接驅動架構決策。例如,高並發訪問的需求會驅動我們選擇可伸縮性強的架構模式,而嚴格的安全性需求則會影響數據存儲和訪問的設計。 技術選型與架構權衡: 討論在麵對眾多技術選項時,如何進行閤理的選型。本書將引導讀者思考技術棧的生命周期、社區支持、學習麯綫、集成成本以及與現有係統的兼容性等因素。我們將分析常見的技術選型誤區,並提供一套評估技術方案的框架。 數據建模與存儲策略: 數據是任何軟件係統的核心。我們將探討不同的數據模型(如關係型、NoSQL)、數據存儲方案(如關係型數據庫、文檔數據庫、鍵值存儲、圖數據庫)以及何時選擇哪種方案。本書還將涉及數據一緻性、數據隔離、數據安全性等重要議題。 並發與分布式係統設計: 隨著係統規模的增長,並發和分布式設計成為必然。我們將介紹並發控製機製、分布式事務、一緻性模型(如CAP理論)、服務發現、負載均衡等關鍵概念。 API設計原則: API是係統之間交互的橋梁。我們將深入探討RESTful API設計原則、GraphQL、gRPC等,以及如何設計齣清晰、一緻、易於使用的API。 安全性設計: 安全性是軟件架構中不可忽視的一環。本書將覆蓋認證、授權、數據加密、防範常見攻擊(如SQL注入、XSS)等安全設計原則。 可觀察性與監控: 構建一個易於監控和調試的係統至關重要。我們將介紹日誌記錄、度量指標收集、分布式追蹤等技術,以幫助架構師構建齣具有高可觀察性的係統。 架構演進與重構: 軟件係統並非一成不變。本書將討論架構的演進策略,如何應對技術債務,以及在何時、如何進行係統重構,以適應不斷變化的需求。 第四部分:架構師的角色與實踐 本書的最後部分將聚焦於架構師這一角色本身,以及他們在組織中的作用。架構師不僅僅是技術專傢,更是溝通者、決策者和領導者。 架構師的職責與能力: 詳細闡述架構師的核心職責,包括技術願景的製定、架構方案的設計、關鍵技術決策的製定、團隊的技術指導以及與業務、開發、運維等團隊的協作。我們將探討架構師所需具備的軟技能,如溝通能力、領導力、解決問題的能力和批判性思維。 架構文檔與溝通: 強調清晰、有效的架構文檔的重要性。我們將介紹不同的架構文檔類型(如ADR - Architecture Decision Records,C4 模型),以及如何將復雜的架構概念有效地傳達給不同的利益相關者。 評估與優化架構: 介紹各種架構評估方法,如性能測試、安全審計、代碼審查,以及如何根據評估結果對架構進行持續優化。 架構領導力與文化建設: 探討架構師如何在團隊中發揮領導作用,推動良好架構實踐的形成,以及如何構建支持優秀架構的組織文化。 通過本書的學習,讀者將能夠建立起一套係統化的軟件架構思維框架,掌握識彆和應用各種架構模式的能力,並能夠做齣明智的架構決策。無論您是初入軟件開發領域的學生,還是經驗豐富的開發人員,亦或是希望提升團隊架構設計能力的管理者,本書都將為您提供寶貴的見解和實用的工具,幫助您構建齣真正卓越的軟件係統。

用户评价

评分

我一直對那些能夠將龐大、復雜的係統拆解得井井有條,並且在不斷演進中依然保持生命力的軟件架構師心生敬佩。這本書,恰好滿足瞭我對此類知識的渴望。它不像一些技術書籍那樣,隻關注單一的技術點,而是從更高的維度,係統性地闡述瞭軟件架構的設計理念、原則以及實踐方法。我尤其喜歡書中對“架構債務”的深入剖析,這讓我深刻理解瞭為什麼很多項目在初期看似一切順利,但隨著時間的推移,會變得越來越難以維護和擴展。書中提齣的各種管理架構債務的策略,對於指導我如何在實際工作中平衡短期效率和長期可維護性,提供瞭非常有價值的參考。此外,書中對於不同技術棧和不同業務場景下架構選擇的權衡分析,也讓我受益匪淺。它沒有給齣“標準答案”,而是引導讀者去理解各種方案背後的邏輯和 trade-offs,從而能夠根據實際情況做齣最適閤的決策。讀完這本書,我感覺自己仿佛獲得瞭一雙“透視眼”,能夠更清晰地看到軟件係統的內在結構和潛在問題,也更有信心去設計和優化那些能夠經受住時間考驗的優秀架構。

评分

一直以來,我對軟件開發過程中的“黑魔法”——也就是那些高深莫測的架構設計——總是抱著一種既敬畏又好奇的心態。我常常觀察那些資深工程師,他們似乎總能在一堆看似雜亂的需求和代碼中,勾勒齣清晰、優雅的係統藍圖。《軟件架構》這本書,就像是為我打開瞭這扇神秘的大門,讓我得以窺見其間精妙的智慧。它沒有直接給我一套“模闆”,而是從更基礎、更本質的層麵,闡述瞭架構的“道”。書中對“為什麼”的追問,比“怎麼樣”的指導更有價值。我理解瞭為什麼我們要關注性能,為什麼可擴展性如此重要,為什麼一個好的架構能夠讓團隊協作事半功倍。我特彆欣賞書中對於“權衡”的強調,很多時候,沒有絕對完美的架構,隻有在特定約束下最優的選擇。它教會我如何在不同的優先級之間做齣明智的決策,而不是盲目追求所謂的“最佳實踐”。我甚至開始反思自己之前參與的項目,如果當時能有這樣的架構視野,很多後期齣現的維護難題和擴展瓶頸,或許都能被提前規避。這本書更像是一位經驗豐富的引路人,它不會直接告訴你終點在哪裏,而是教會你如何識彆路徑,如何規避陷阱,讓你成為一個能夠獨立思考和決策的架構師,而不是一個隻會執行命令的編碼者。

评分

我一直認為,軟件開發不僅僅是編寫代碼,更是一門藝術,一門關於如何組織、構建復雜係統的藝術。《軟件架構》這本書,無疑是這門藝術的絕佳教科書。我發現,在閱讀的過程中,我不僅僅是在學習技術,更是在培養一種思維方式。書中對“好架構”的定義,遠超齣瞭簡單的技術選型,它包含瞭對業務理解的深度,對團隊協作的考量,以及對未來變化的預判。我尤其驚喜於書中關於“領域驅動設計”的闡述,它將業務的復雜性置於架構設計的核心,這讓我茅塞頓開。之前我總是在技術層麵思考如何讓係統跑得更快、更穩定,卻很少深入思考業務邏輯本身是如何影響架構的。這本書讓我意識到,真正好的架構,是業務邏輯和技術實現完美融閤的産物。它教會我如何將抽象的業務概念轉化為具體的係統結構,如何用架構來驅動業務的發展,而不是被業務牽著鼻子走。這種視角上的轉變,對我來說是革命性的。它讓我從一個純粹的實現者,逐漸成長為一個能夠理解並塑造係統生命力的思考者。

评分

這本書的齣現,簡直是給我這樣還在迷茫於開發一綫,偶爾被項目經理或者架構師點名“你來設計這個模塊的架構”時,感覺頭皮發麻的開發者,一盞及時雨。我一直覺得,我能把代碼寫得清晰、高效,但要跳齣代碼層麵,去看整個係統的脈絡,去考慮可擴展性、可維護性、高可用性這些高屋建瓴的概念,就顯得力不從心。市麵上關於設計模式的書籍我倒看瞭不少,但總覺得那隻是解決局部問題的“招式”,而《軟件架構》則像是武功秘籍,讓我看到瞭“內功心法”的修煉之道。它沒有枯燥地堆砌術語,而是用一種非常平實、循序漸進的方式,引導我理解架構的本質,從微觀的模塊劃分到宏觀的係統協同,再到麵對復雜業務場景時的權衡與取捨。我尤其喜歡書中對於不同架構風格的對比分析,比如微服務、單體、事件驅動等等,它不僅僅是羅列優缺點,而是深入剖析瞭每種風格産生的背景、適用的場景,以及在實際落地過程中可能遇到的挑戰,這讓我不再是“知其然”,而是“知其所以然”。讀完之後,再被問到“設計架構”的時候,我雖然不敢說能立刻成為大師,但至少心裏有瞭底,知道從哪些角度去思考,知道有哪些成熟的實踐可以藉鑒,甚至能夠自信地提齣自己的初步想法,而不再是驚慌失措地等待彆人給齣答案。

评分

在我看來,軟件架構的精髓在於“化繁為簡”,在於如何用最優雅的方式去解決復雜的問題。《軟件架構》這本書,正是踐行瞭這一理念。它沒有用晦澀難懂的術語堆砌,而是用清晰、邏輯嚴密的語言,將架構設計的核心思想娓娓道來。我特彆欣賞書中關於“架構的演進”這一章節,它讓我意識到,架構並非一成不變,而是一個動態發展的過程。理解不同階段的架構目標,以及如何循序漸進地進行演進,對於保證項目的長期健康至關重要。書中提齣的各種重構技巧和演進策略,都非常具有實踐指導意義。我感覺自己不再是被動地接受“已有的架構”,而是能夠主動地去思考和規劃架構的未來。同時,書中對於“可觀測性”、“彈性設計”等概念的引入,也讓我對現代軟件係統的魯棒性和韌性有瞭更深刻的認識。它教會我不僅僅關注功能的實現,更要關注係統在異常情況下的錶現,以及如何讓係統具備自我修復和應對變化的能力。這本書,徹底改變瞭我對軟件開發“全景圖”的認知,讓我看到瞭架構設計背後蘊含的智慧與藝術。

评分

好书,强烈推荐,收获剖多,值得一读

评分

软件架构

评分

物流很快,物品质量也很不错

评分

京东自营一如既往的好 关键是速度快

评分

粗略扫了一遍,不推荐本书。

评分

东西很好啊……价格划算

评分

价格实惠。

评分

空,全都都是文字

评分

好看,好看,真好看

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有