2024架構整潔之道理論考核試題及答案_第1頁
2024架構整潔之道理論考核試題及答案_第2頁
2024架構整潔之道理論考核試題及答案_第3頁
2024架構整潔之道理論考核試題及答案_第4頁
2024架構整潔之道理論考核試題及答案_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

架構整潔之道理論考核試題一、選擇題1.為了避免多人為了不同的目標修改同一份源代碼,我們應該采取哪種方法()[單選題]*A、不復用別人的代碼,自己重新寫一份B、將服務不同行為者的代碼進行切分√C、鎖定文件,不讓其他人修改D、誰最后修改了代碼誰負責2.將服務不同行為者的代碼進行切分的方法,以下說法錯誤的是()[單選題]*A、將數據與函數分離B、使用fa?ade(外觀)模式C、將重要的函數留在類中,同時使用這個類調用其他沒那么重要的函數D、每個開發人員寫自己的類,互不影響√3.SRP原則是什么原則()[單選題]*A、單一職責原則√B、開閉原則C、里氏替換原則D、接口隔離原則4.OCP原則是什么原則()[單選題]*A、單一職責原則B、開閉原則√C、里氏替換原則D、接口隔離原則5.LSP原則是什么原則()[單選題]*A、單一職責原則B、開閉原則C、里氏替換原則√D、接口隔離原則6.ISP原則是什么原則()[單選題]*A、單一職責原則B、開閉原則C、里氏替換原則D、接口隔離原則√7.DIP原則是什么原則()[單選題]*A、單一職責原則B、開閉原則C、里氏替換原則D、接口隔離原則E、依賴反轉原則√8.一個好的架構在新增功能時應該將舊代碼的修改需求量降至最小,我們首先應該做的是()[單選題]*A、將不同需求的代碼分組√B、調整不同分組代碼的依賴關系C、抽象業務接口,實現不同的子類D、設計數據表結構9.如果A,B組件存在依賴關系,A組件不想被B組件上發生的修改所影響,應該()[單選題]*A、應該讓A組件依賴于B組件B、應該讓B組件依賴于A組件√C、應該讓A,B組件相互依賴D、切斷A,B組件的依賴關系10.在系統架構中,最符合OCP(開閉)原則的是()[單選題]*A、Controller(控制)層B、Service(服務)層C、View(展示)層D、Interface層√11.假設有一個L類,該類有個calcFee方法由Billing類調用,L類有兩個子類分別實現了calcFee方法,上述設計符合什么設計原則[單選題]*A、單一職責原則B、開閉原則C、里氏替換原則√D、接口隔離原則12.有一個矩形類L存在setH,setW兩個方法,他有一個正方形子類S存在一個setSide方法,該設計違反了哪個設計原則()[單選題]*A、單一職責原則B、開閉原則C、里氏替換原則√D、接口隔離原則13.LSP可以且應該被應用與軟件架構層面,因為一旦違背了()性,該系統架構就不得不為此增添大量復雜的應對機制[單選題]*A、可替代性√B、依賴性C、隔離性D、唯一性14.任何層次的軟件設計如果依賴于不需要的東西,就會帶來意料之外的麻煩,屬于()設計原則[單選題]*A、單一職責原則B、開閉原則C、里氏替換原則D、接口隔離原則√15.對于那個語言來說需要程序員顯式的import,use或include其功能所需要的源代碼[單選題]*A、java√B、rubyC、pythonD、JavaScript16.OCP使我們進行系統架構設計的主導原則,目標是讓系統()[單選題]*A、易于擴展√B、組件分離C、依賴控制D、接口隔離17.OCP設計實現方式不包括一下哪個()[單選題]*A、將系統劃分為一系列組件B、將組件間的依賴關系按層次結構進行組織C、高階組件不會因為低階組件被修改而受影響D、設計組件的可替換性√18.依賴反轉原則告訴我們,如果想設計一個靈活的系統,在源碼層次的依賴關系中應該()[單選題]*A、引用抽象類型√B、引用具體實現C、引用其他工具類D、寫高質量代碼19.如果想要在軟件架構上追求穩定,就必須多使用穩定的抽象接口,少依賴多變的具體實現類,以下說法不正確的是[單選題]*A、應在代碼中多使用抽象接口,避免使用那些多變的具體實現B、不要在具體實現類上創建衍生類C、不要覆蓋包含具體實現的函數D、以上均不正確√20.設計良好的計算機軟件應該()擴展,同時()修改。[單選題]*A、利于、避免B、利于、抗拒C、易于、避免D、易于、抗拒√21.()的出現使得插件式架構可以在任何地方被安全的使用[單選題]*A、結構化編程B、面向對象編程√C、函數式編程D、響應式編程22.下列需求開發過程中的觀念正確的是()[單選題]*A、我們可以未來再重構代碼,產品上線最重要B、在工程中容忍糟糕的代碼存在可以短期內加快該工程上線的速度,未來這些代碼會造成一些額外的工作量但是并沒有什么大不了C、對于一個亂麻系統挽救的唯一辦法就是拋棄現有系統,設計一個全新的系統來替代D、采用循規蹈矩的方式編寫代碼√23.軟件系統應該容易被修改,體現的是下列哪個價值[單選題]*A、行為價值B、架構價值√C、產品價值D、程序員價值24.結構化編程對程序控制權的()進行了限制和規范[單選題]*A、間接轉移B、強制轉移C、直接轉移√D、獲取25.面向對象編程對程序控制權的()進行了限制和規范[單選題]*A、間接轉移√B、強制轉移C、直接轉移D、獲取26.函數式編程對程序中的()進行限制和規范[單選題]*A、賦值√B、轉移C、跳轉D、返回27.()是我們跨越架構邊界的手段[單選題]*A、封裝B、繼承C、多態√D、面向對象編程28.()是我們規范和限制數據存放位置和訪問權限的手段[單選題]*A、結構化編程B、面向對象編程C、函數式編程√D、響應式編程29.()是各模塊的算法實現基礎[單選題]*A、面向對象編程B、結構化編程√C、函數式編程D、響應式編程30.結構化編程范式可將()遞歸降解拆分為可推導的單元[單選題]*A、程序B、類C、函數D、模塊√31.結構化編程范式最有價值的地方就是,它賦予了我們創造()的能力[單選題]*A、可證明程序單元B、最簡潔代碼C、可證偽程序單元√D、最直觀代碼32.()就是以多態為手段來對源代碼中的依賴關系進行控制的能力,這種能力讓軟件架構師可以構建出某種插件式架構[單選題]*A、結構化編程B、面向對象編程√C、函數式編程D、響應式編程33.()的變量是不可變的[單選題]*A、結構化編程B、面向對象編程C、函數式編程√D、響應式編程34.一個架構設計良好的應用程序應該將狀態修改的部分和不需要修改狀態的部分隔離成單獨的(),然后用合適的機制來保護可變量[單選題]*A、類B、函數C、模塊D、組件√35.軟件架構師應該著力于將大部分處理邏輯都歸于不可變組件中,可變狀態組件的邏輯應該()[單選題]*A、越多越好B、越少越好√C、越靈活越好D、越簡單越好36.C語言是下面哪種類型的編程語言[單選題]*A、面向對象編程B、結構化編程√C、函數式編程D、響應式編程37.下列哪項體現了依賴反轉的思想[單選題]*A、某適配對象依賴于適配器接口的抽象√B、業務服務調用數據庫組件C、業務服務依賴公共基礎模塊D、高層函數調用中層函數38.面向對象編程是以()為手段來對源代碼中的依賴關系進行控制[單選題]*A、封裝B、繼承C、多態√D、依賴反轉39.LISP是下列哪種編程語言[單選題]*A、結構化編程B、面向對象編程C、函數式編程√D、響應式編程40.JAVA中某個父類統一操作或方法在不同對象實例上具有不同的行為,體現的是[單選題]*A、多態√B、繼承C、封裝D、依賴反轉41.關于編程范式,以下說法不正確的是()[單選題]*A、結構化編程是對程序控制權直接轉移的限制B、面向對象編程是對程序控制權間接轉移的控制C、函數式編程是對程序中賦值操作的限制D、面向對象編程是對程序控制權直接轉移的控制√42.關于設計和架構,以下說法正確的是()[單選題]*A、我們可以未來再重構代碼,產品上線最重要B、在工程中可以容忍少許的糟糕代碼C、要想跑得快,先要跑的穩√D、循規蹈矩的工作速度長遠來看比胡編亂寫的速度會慢43.軟件架構的終極目的是()[單選題]*A、用最小的人力成本來滿足構建和維護該系統的需求√B、在開始研發一個產品之前就能確定軟件設計過程中的所有細節C、用最少的人力和時間成本完成一個產品的交付D、使當前軟件的系統架構在行業內處于領先水平44.關于軟件系統的價值維度,以下說法不正確的是()[單選題]*A、系統行為緊急不重要B、架構行為重要不緊急C、程序員的工作就是編寫程序,給用戶創造或者提高利潤D、軟件變更的難度應該和變更的具體形狀成等比關系√45.軟件開發過程中常常發生系統架構和系統功能行為相沖突,()來平衡這兩件事的緊急程度?[單選題]*A、部門主管或更上級領導B、產品經理或項目經理C、最終用戶D、研發人員√46.某項目組在開發一款軟件過程中,忽略了軟件架構的價值,導致最終交付系統幾乎無法更改和維護。總結經驗和教訓時,應該判定是()需要改進[單選題]*A、測試B、軟件開發√C、需求方D、產品經理或項目經理47.究竟什么是面向對象?以下說話比較貼切的是()[單選題]*A、是一種對真實世界進行建模的方式B、數據與函數的組合C、是封裝、繼承、多態的有機組合√D、以多態的手段來對源代碼中的依賴關系進行控制的能力48.我們可以用三種結構構造出任何程序,這三種結構不包含哪種()[單選題]*A、遞歸結構√B、順序結構C、循環結構D、分支結構49.結構化編程賦予了我們創造可證偽程序單元的能力,()仍然是結構化編程的最佳實踐之一[單選題]*A、推導B、功能性降解拆分√C、多態D、繼承50.在《架構整潔之道》這本書中,DIP是以下哪個選項的縮寫?[單選題]*A、DependencyInjectionPrincipleB、DigitalIntegrationPlatformC、DependencyInversionPrinciple√D、DocumentImageProcessing51.以下符合依賴反轉原則(DIP)做法的是?[單選題]*A、因為類中字段沒有提供set方法,使用反射修改這個字段的值B、兩個類C1,C2存在相互依賴,抽象出IC1,IC2接口,使得C1,C2分別依賴于IC1,IC2接口,而不相互依賴√C、系統新增一個功能與現有類C1的功能類似,通過繼承類C1,減少重復代碼D、在代碼中將對象強制轉換成實際類型的對象,從而取得對對象更多的控制52.以下哪種生活/工作場景,與依賴反轉原則(DIP)具有相似性[單選題]*A、領導將任務交代給一個團隊來完成,而不是指定團隊中的某個人來完成√B、“如果我這邊信息有變動,我會主動通知到您”C、將專業的事情交給專業的人負責D、外部對接部門行政事務負責人,然后由部門負責人去對接內部人員53.運用依賴反轉原則(DIP)的原因是[單選題]*A、接口或抽象類一般比其實現類更穩定√B、實現類允許繼承(實現)多個接口,有些接口我們用不到C、實現類一般都比較復雜,而接口往往比較簡單D、實現類的對象不能被運行時增強54.關于單一職責原則(SRP)的描述正確的是()[單選題]*A、不同行為者所依賴的代碼可以放在一個類里面進行封裝B、解決同一個類不同行為者修改方法的方式是將代碼合并之后,解決當前沖突;C、任何一個軟件模塊都應該只對某一類行為者負責√D、不同行為者所依賴的代碼放到一起,當一個行為者修改代碼之后,代碼沒有沖入,不會對其他行為者使用產生影響;55.在工作中,經常遇到同一個service實現類方法由于不同需求變更,多個團隊需要修改,當出現沖突的時候,最好的解決辦法是?[單選題]*A、不管別人調用,僅修改自己的功能,滿足自己的需求即可;B、代碼合并,解決沖突,只驗證自己的功能;C、重構當前方法,將不同行為的者的代碼進行拆分,使其軟件模塊只對一類行為負責;√D、為了避免沖突,自己先提交代碼,驗證功能,不管其他團隊;56.下面關于單一職責原則描述正確的是?[單選題]*A、單一職責主要討論的是函數和類之間的關系,但是在兩個討論層面上會議不同形式出現√B、同一個軟件模塊可以有多個被修改的原因C、同一個軟件模塊允許有多個行為者共同負責D、同一個軟件模塊可以有多個系統利益相關者57.下面哪一項不能體現了里氏替換原則(LSP)?[單選題]*A、用戶行為可以依賴他所使用的類,并且這些類可以不用相互替換√B、用戶可以調用授權L類計算授權費用方法進行授權付費,并且該授權類有兩個衍生類A和B,這兩個類會用不同算法來計算授權費用,這樣是符合里氏替換原則的C、對于每個類型是S的對象o1都存在一個類型為T的對象o2,能使操作T類型的程序P在用o2替換o1時行為保持不變,可以將S稱為T的子類型D、一個軟件實體如果使用的是一個基類的話,那么一定適用于其子類,而且它根本不能察覺出基類對象和子類對象的區別58.以下哪一項不能體現里氏替換原則四層含義?[單選題]*A、子類必須完全實現父類的方法B、子類不能有自己的個性√C、覆蓋或實現父類的方法時,輸入參數可以被放大D、覆寫或實現父類的方法時輸出結果可以被縮小59.以下父類方法、子類方法(或返回方法)不符合里氏替換原則的是?[單選題]*A、父類方法func(HashMapmap);子類方法func(Mapmap);B、父類方法func(inta);子類方法newFunc(inta);C、父類方法publicabstractMapfun();子類方法publicHashMapfun(){};D、父類方法func(Mapmap);子類方法func(HashMapmap)√60.設計模式六大原則中,接口隔離原則的簡稱是哪個?[單選題]*A、OCPB、LSPC、ISP√D、DIP61.關于接口隔離原則,以下敘述有誤的是()[單選題]*A、在系統設計時,客戶端不應該依賴那些它不需要的接口B、當一個接口太大時,需要將它分割成一些更細小的接口,使用該接口的客戶端類僅需知道與之相關的方法即可C、接口應該盡量細化,同時接口中的方法應該盡可能少,理想情況下是在每個接口中只定義一個方法,該接口使用起來最為方便√D、一個接口只代表一個角色,每個角色都有它特定的一個接口62.OCP是我們進行系統架構設計的主導原則,其主要目標是()[單選題]*A、讓系統易于擴展,同時限制其每次被修改所影響的范圍√B、所有功能組件化C、便于代碼的修改,同時不增加新的子類D、以上都不是63.以下對開閉原則的描述錯誤的是()[單選題]*A、開閉原則與“對可變形的封裝原則”沒有相似性√B、找到一個系統的可變元素,將它封裝起來,叫開閉原則C、對修改關閉,是其原則之一D、從抽象層導出一個或多個新的具體類可以改變系統的行為,是其原則之一64.開閉原則的含義是一個軟件實體()[單選題]*A、應當對修改開放,對擴展關閉B、應當對擴展開放,對修改關閉√C、應當對繼承開放,對修改關閉D、以上都不對65.開閉原則的實現方式是()[單選題]*A、先調整各類之間的依賴關系,再對各類進行分組(SRP)B、通過分析系統之間的依賴關系,抽離公共的邏輯,所有修改集中在一個范圍中,使得其它邏輯不需要進行修改C、通過將系統劃分為一系列組件,并且將這些組件間的依賴關系按層次結構進行組織,使得高階組件不會因低階組件被修改而受到影響√D、以上都不對66.SOLID五大設計原則包括哪五大原則()[多選題]*A、單一職責原則√B、開閉原則√C、里氏替換原則√D、接口隔離原則√E、依賴反轉原則√67.將服務不同行為者的代碼進行切分的方法,以下說法正確的是()[多選題]*A、將數據與函數分離√B、使用fa?ade(外觀)模式√C、將重要的函數留在類中,同時使用這個類調用其他沒那么重要的函數√D、每個開發人員寫自己的類,互不影響68.對于那個語言來說不需要程序員顯式的import,use或include其功能所需要的源代碼()[多選題]*A、javaB、ruby√C、python√D、JavaScript√69.為了避免多人為了不同的目標修改同一份源代碼,我們應該采取哪種方法,以下說法不正確的是()[多選題]*A、不復用別人的代碼,自己重新寫一份√B、將服務不同行為者的代碼進行切分C、鎖定文件,不讓其他人修改√D、誰最后修改了代碼誰負責√70.一個好的架構在新增功能時應該將舊代碼的修改需求量降至最小,我們應該做的是()[多選題]*A、將不同需求的代碼分組√B、調整不同分組代碼的依賴關系√C、開發足夠多的的工具類D、設計數據表結構71.在軟件架構設計中為什么Interactor會放在重要位置()[多選題]*A、他是程序的業務邏輯所在之處√B、包含了其最高層的應用策略√C、其他組件都只是負責處理周邊的輔助邏輯√D、Interactor是核心組件√72.依賴反轉原則告訴我們,如果想設計一個靈活的系統,在源碼層次的依賴關系中應該(),以下說法不正確的是()[多選題]*A、引用抽象類型B、引用具體實現√C、引用其他工具類√D、寫高質量代碼√73.關于SOLID原則以下說法正確的是()[多選題]*A、任何一個軟件模塊只能有一個被修改的原因√B、設計良好的計算機軟件應該易于擴展,同時抗拒修改√C、在一般情況下,任何層次的軟件設計如果依賴于不需要的東西,都會是有害的√D、DIP原則想告訴我們的是,如果想要設計一個靈活的系統,在源代碼層次的依賴關系中就應該多引用抽象類型,而非具體實現√74.我們應該關注的是軟件系統內部那些會經常()的具體實現模塊,這些模塊是()的,也就經常會出現變更()[多選題]*A、變動的√B、不變的C、不停開發√D、穩定的75.如果想要在軟件架構上追求穩定,就必須多使用穩定的抽象接口,少依賴多變的具體實現類,以下說法正確的是()[多選題]*A、應在代碼中多使用抽象接口,避免使用那些多變的具體實現√B、不要在具體實現類上創建衍生類√C、不要覆蓋包含具體實現的函數√D、應避免在代碼中寫入與任何具體實現相關的名字,或者其他容易變動的事物的名字√76.對于每個軟件系統,我們都可以通過哪些維度來體現它的實際價值()[多選題]*A、行為√B、性能C、質量D、架構√77.下列對系統價值維度描述正確的是()[多選題]*A、系統行為,是緊急的,但是并不總是特別重要√B、系統架構,是重要的,但是并不總是特別緊急√C、系統架構,是重要的,且特別緊急D、系統行為,是重要的,且并不總是特別緊急78.編程范式包含下列哪幾個()[多選題]*A、結構化編程√B、面向對象編程√C、函數式編程√D、響應式編程79.軟件架構的三大關注點()[多選題]*A、穩定性B、功能性√C、組件獨立性√D、數據管理√80.事件溯源這種數據存儲模式中不存在()和()的情況()[多選題]*A、新增B、刪除√C、更新√D、查詢81.軟件,或者說計算機程序無一例外是由哪幾種行為組合而成的()[多選題]*A、順序結構√B、分支結構√C、循環結構√D、間接轉移√82.系列哪些是面向對象編程語言()[多選題]*A、CB、JAVA√C、C++√D、C#√83.面向對象編程包含下列哪些特性()[多選題]*A、封裝√B、繼承√C、多態√D、響應式編程84.下列說法哪些是正確的()[多選題]*A、通過類中的公共函數操作私有成員變量體現了封裝的思想√B、代碼中Cat類實現Animal類eat()方案采到了繼承的方式√C、適配器模式體現多態的思想√D、只有面向對象程序中才會用到多態的思想85.需求變更的()和()是決定對應軟件變更實施成本高低的關鍵()[多選題]*A、內容B、范疇√C、時間D、形狀√86.以下哪些是遵循依賴反轉原則(DIP)的良好編碼守則()[多選題]*A、應在代碼中多使用抽象接口,盡量避免使用那些多變的具體實現類√B、不要在具體實現類上創建衍生類√C、不要覆蓋(override)包含具體實現的函數√D、應避免在代碼中寫入與任何具體實現相關的名字,或者是其他容易變動的事物的名字√87.以下表述與書中依賴反轉原則(DIP)表述具有相似含義的是()[多選題]*A、抽象不應該依賴細節,細節依賴抽象√B、高層模塊不應該依賴低層模塊,兩者都應該依賴于其抽象√C、Don'tcallus,we'llcallyouD、派生類對象可以在程序中代替其基類對象88.SOLID包含哪些具體原則?()[多選題]*A、OCP√B、LSP√C、SRP√D、IOC89.任何一個軟件模塊都應該只對某一類行為負責,其中軟件模塊具體是指什么內容?()[多選題]*A、一組緊密相關的函數和數據結構√B、一個公共組件C、一個函數方法D、一個源代碼文件√90.遵循里氏替換原則可以帶來哪些優勢()[多選題]*A、增強了代碼的可維護性√B、提高代碼的可擴展性√C、降低代碼的耦合度√D、繼承是侵入性的91.里氏替換原則四層含義包含以下哪些()[多選題]*A、子類可以實現父類的抽象方法,但是不能覆蓋父類的非抽象方法√B、子類中可以增加自己特有的方法√C、當子類覆蓋或實現父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入參數更寬松√D、當子類的方法實現父類的抽象方法時,方法的后置條件(即方法的返回值)要比父類更嚴格√92.實現接口隔離原則的方法()[多選題]*A、將接口劃分為更小的、更具體的接口,每個接口只包含客戶端所需的方法√B、使用基類的地方必須使用子類進行替換C、使用依賴注入√D、使用適配器模式√93.使用接口隔離原則可以帶來許多好處()[多選題]*A、降低耦合度√B、提高靈活性√C、增強可維護性√D、提高代碼復用性√94.以下哪些模式符合開閉原則()[多選題]*A、簡單工廠模式B、工廠方法模式√C、原型模式√D、橋接模式√95.開閉原則相關的面向對象設計原則()[多選題]*A、單一職責原則√B、依賴倒置原則√C、接口隔離原則√D、里氏替換原則√96.任何一個軟件模塊可以有任意多個被修改的原因。對錯√97.設計良好的計算機軟件應該易于擴展,同時拒絕修改。對錯√98.在一般情況下,任何層次的軟件設計如果依賴于不需要的東西,都會是有害的。對√錯99.如果A,B組件存在依賴關系,A組件不想被B組件上發生的修改所影響,應該讓B組件依賴于A組件。對√錯100.假設有3個用戶需要操作ops類,分別調用ops類的不同方法,沒必要將各自調用的方法隔離出不同接口。對錯√101.DIP原則想告訴我們的是,如果想要設計一個靈活的系統,在源代碼層次的依賴關系中就應該多引用具體實現,而非抽象類型。對錯√102.軟件架構設計的終極目標是,用最優的架構來滿足構建和維護該系統的需求。對錯√103.我們可以未來再重構代碼,產品上線最重要。對錯√104.任何情況下系統正常工作都比系統易于修改更重要。對錯√105.在架構設計領域,功能性降解拆分仍然時最佳實踐之一。對√錯106.所有的競爭問題、死鎖問題、并發更新問題都是由可變量導致的。對√錯107.軟件開發的一個核心特點:要想跑的快,先要跑得穩。對√錯108.依賴反轉原則(DIP)告訴我們,要將所有對具體實現類的依賴,轉為對接口、抽象類的依賴,我們在軟件系統中可以完全消除違反DIP的情況。對錯√109.任何一個軟件模塊都應該有且僅有一個被修改的原因。對√錯110.一個子類應該可以完全替代它的父類,并且保持程序的正確性和已執行。對√錯111.一個好的軟件架構設計師會努力將舊代碼的修改需求量降至最小,甚至為0。對√錯112.對系統進行抽象化是實現開閉原則的方法。對√錯113.接口隔離原則強調將一個大接口拆分成許多小接口,不同小接口靈活組合,增加了靈活性但提升了代碼的冗余程度。對錯√B1.架構設計的工作常常需要將組件重排組合成為一個()。[單選題]*A、完全圖B、無向圖C、有向無環圖√D、二分圖2.在一個設計良好的架構中,依賴關系的方向通常取決于他們所關聯的()。[單選題]*A、組件聚合B、組件耦合C、組件層次√D、邊界3.軟件架構設計的工作重點之一是將策略批次分離,將他們按照()進行重組。[單選題]*A、策略B、依賴關系C、變更的方式√D、層次4.代表業務邏輯的代碼應該是整個系統的核心,其他低層概念的實現應該以()形式接入系統。[單選題]*A、組件B、模塊C、插件√D、框架5.業務實體屬于()概念,而用例屬于()概念。[單選題]*A、高層、低層√B、低層、高層C、里層、外層D、外層、里層6.用例控制著()之間的交互方式。[單選題]*A、組件B、業務實體√C、模塊D、程序7.框架應該是一個()[單選題]*A、可選項√B、必選項C、插件項D、部署項8.一個良好的架構設計應該圍繞著()來展開[單選題]*A、領導B、公司資源C、研發D、用例√9.架構設計的主題應該基于[單選題]*A、用例√B、開發C、領導D、用戶10.良好的架構設計應該只關注()[單選題]*A、代碼B、用例√C、框架D、開發量11.我們一定要帶著()的態度看待每一個框架。[單選題]*A、包容B、點贊C、信徒D、懷疑√12.系統架構的設計目標是按照不同的()對軟件進行切割。[單選題]*A、切入點B、契合點C、關注點√D、邊界點13.關于業務實體說法不正確的是?[單選題]*A、業務實體封裝了整個系統的關鍵業務邏輯B、業務實體不能被其他應用復用√C、業務實體是一個帶有方法的對象D、業務實體是一組數據結構和函數的集合14.屬于接口適配器層的不包括以下哪個選項?[單選題]*A、數據庫√B、展示器C、視圖D、控制器15.不屬于最外層的模型層的組成部分的是?[單選題]*A、工具B、數據庫C、Web框架D、網關√16.下列說法正確的是?[單選題]*A、最內層包含最通用、最高層的策略B、源碼層面的依賴一定要指向同心圓內側C、層次越往內,抽象和策略層次越低,其抽象程度越高√D、最外層包含最具體的實現細節17.構造合理的跨邊界調用需要我們對源碼中的____進行合理管控[單選題]*A、依賴數量B、依賴關系√C、代碼質量D、開發方式18."謙卑對象模式"最初的設計目的是?[單選題]*A、區分容易和難以測試的行為√B、處理組件依賴關系C、幫助設計系統架構D、方便將數據填充到GUI上19.對象關系映射器(ORM)系統統應該屬于系統架構中的哪一層?[單選題]*A、GUI層B、中間件層C、數據庫層√D、源碼層20.在整個系統中,只有____依賴于Main組件。[單選題]*A、用例B、底層組件C、高層組件D、操作系統√21.Main組件也可以被視為應用程序的一個____,負責設置起始狀態、配置信息、加載外部資源,最后將控制權轉交給應用程序的其他高層組件[單選題]*A、插件√B、依賴C、入口D、邊界22.謙卑對象(humbleobject)這種設計模式可以很好地幫助識別和保護系統架構的____。[單選題]*A、缺陷B、邊界√C、作用D、目標23.SQL部分的功能需要通過網關接口來提供,而這些接口的實現則要由______的類來負責[單選題]*A、GUI層B、中間件層C、數據庫層√D、源碼層24.我們將系統行為分割成可測試和不可測試兩部分的過程常常就也定義了系統的_____.。[單選題]*A、策略B、組件分類標準C、用例D、架構邊界√25.對于用例交互器(interactor)與數據庫中間的組件,我們通常稱之為:[單選題]*A、數據庫網關√B、Main組件C、業務組件D、數據映射器26.對象不是數據結構。至少從用戶的角度來說,對象內部的數據應該都是:[單選題]*A、公開的B、不可見的√C、部分可見的D、可修改的27.通過在系統的邊界處運用_____,我們可以大幅地提高整個系統的可測試性。[單選題]*A、展示器與視圖B、策略模式C、謙卑對象模式√D、數據映射器28.以下關于數據庫映射器描述錯誤的是?[單選題]*A、數據映射器是一種設計模式B、它用于將應用程序的數據模型與數據存儲(通常是數據庫)之間進行解耦C、它的主要目標是保持領域模型的純粹性,使其不受持久化和存儲細節的影響D、可用于將對象模型與關系型數據庫之間進行映射√29.以下關于數據庫網關描述錯誤的是?[單選題]*A、數據庫網關是一個中間層軟件組件,用于連接不同類型的數據庫和數據存儲系統B、數據庫網關處理協議轉換、查詢翻譯、數據轉換、安全性、權限控制等任務,以確保應用程序可以方便地與各種數據庫進行C、數據庫網關同時也是一種設計模式,用于處理應用程序的業務邏輯√D、數據庫網關可以用于協議轉換30.關于服務監聽器描述正確的是?[單選題]*A、用于監控和響應特定服務或事件的組件或模塊√B、它包含了應用程序在數據庫上所要執行的創建、讀取、更新、刪除等操作C、它是一種設計模式D、用于管理和發現謙卑對象31.采用架構整潔之道的目的是?[單選題]*A、單一職責原則(SingleResponsibilityPrinciple)和開放封閉原則(Open-ClosedPrinciple),從而幫助構建更可擴展和易于維護的代碼B、將事件的產生和處理分離,使系統的各個組件能夠松耦合地協同工作C、創建可維護、可測試、可擴展且獨立于外部因素的軟件系統√D、一種設計模式,也是一種軟件開發技術32.Main組件中的依賴關系通常應該由___框架來注入[單選題]*A、協調、創建B、依賴注入√C、組件D、依賴反轉33.以下關于展示器視圖和謙卑對象關系對的是[單選題]*A、視圖部分屬于可測試的謙卑對象B、展示器是可測試的對象√C、展示器是難以測試的對象D、視部分是相對容易測試的謙卑對象34.強大的()是一個架構的設計是否優秀的顯著衡量標準之一[單選題]*A、框架B、性能C、可測試性√D、架構35.數據結構可以進行()的傳輸[單選題]*A、跨模塊B、跨組件C、跨邊界D、跨服務邊界√36.()的職責之一就是預判未來哪里有可能會需要設置架構邊界,并決定應該以完全形式還是不完全形式來實現它們。[單選題]*A、開發人員B、架構師√C、系統分析師D、測試人員37.門戶模式下,我們可以省掉()工作。[單選題]*A、循環依賴B、單一職責C、接口隔離D、依賴反轉√38.在設計一套完整的系統架構邊界時,往往需要用反向接口來維護邊界兩側組件的();[單選題]*A、隔離性√B、獨立行C、可測試性D、依賴性39.謙卑對象模式最初的設計目的是幫助()的編寫者區分容易測試的行為與難以測試的行為,并將它們隔離[單選題]*A、功能測試B、單元測試√C、集成測試D、用戶測試40.在設計一套完整的系統架構邊界時,往往需要用()來維護邊界兩側組件的隔離性。[單選題]*A、依賴反轉B、反向接口√C、接口隔離D、組件聚合41.門戶模式:()的間接轉移不用接口和實現去做,而是用門戶類去做,用這種方式連接口都不用聲明了。[單選題]*A、調用方B、被調用方C、賦值權D、控制權√42.構建完整的架構邊界是一件很耗費成本的事。在這個過程中,需要為系統設計(),用于輸入和輸出的數據結構。[單選題]*A、組件層級B、雙向的多態邊界接口√C、獨立的接口D、單向的輸入模式43.不屬于邊界的解耦方式的是()?[單選題]*A、源碼層次B、部署層次C、服務層次D、組件層次√44.作為(),我們必須要小心審視究竟在什么地方才需要設計架構邊界。另外,我們還必須弄清楚完全實現這些邊界將會帶來多大的成本[單選題]*A、架構師√B、軟件工程師C、BAD、產品經理45.Main組件也可以被視為應用程序的一個插件一一這個插件負責()、配置信息、加載外部資源,最后將控制權轉交給應用程序的其他高層組件[單選題]*A、設置起始狀態√B、配置信息C、加載外部資源D、初始化46.Main組件也可以被視為應用程序的一個插件一一這個插件負責設置起始狀態、()、加載外部資源,最后將控制權轉交給應用程序的其他高層組件[單選題]*A、設置起始狀態B、配置信息√C、加載外部資源D、初始化47.Main組件也可以被視為應用程序的一個插件一一這個插件負責設置起始狀態、配置信息、(),最后將控制權轉交給應用程序的其他高層組件[單選題]*A、設置起始狀態B、配置信息C、加載外部資源√D、初始化48.由于Main組件能以()存在于系統中,因此我們可以為一個系統設計多個Main組件,讓它們各自對應于不同的配置。[單選題]*A、組件形式B、插件形式√C、接口形式D、配置化49.Main組件是整個系統中的一個(),它處于整潔架構的最外圈,主要負責為系統加載所有必要的信息,然后再將控制權轉交回系統的高層組件。[單選題]*A、底層模塊√B、上層模塊C、邊沿模塊D、底層實現50.在所有的系統中,都至少要有一個組件來負責()其他組件的運轉。我們將其稱為Main組件。[單選題]*A、創建、協調、監督√B、創建、協調、監控C、創建、協調、監視D、創建、調度、監督51.Mai口組件是系統中最細節化的部分一一也就是底層的策略,它是整個系統的()[單選題]*A、初始點√B、起始點C、出發點D、終點52.軟件架構設計按照策略彼此分離組件時,()、()和()應該被分到同一個組件中。()[多選題]*A、變更原因√B、變更地點C、時間√D、層次相同的策略√53.變更原因和變更時間相同的策略應在哪兩個原則的指導下合并為同一組件。()[多選題]*A、SRP√B、REPC、CCP√D、SAP54.關于業務實體說法正確的有()[多選題]*A、業務實體是包含了一系列用于操作關鍵數據的業務邏輯的計算機系統中的對象√B、業務實體對象直接包含了關鍵業務數據√C、業務實體對象可以較容易的訪問關鍵業務數據√D、業務實體的接口層由實現關鍵業務邏輯、操作關鍵業務數據的函數組成√55.按照架構設計出來的系統通過具有哪些特點()[多選題]*A、可被測試√B、獨立于UI√C、獨立于框架√D、獨立于數據庫√E、獨立于任何外部機構√56.架構通常包括哪些層級()[多選題]*A、框架與驅動程序√B、接口適配器√C、用例√D、業務實體√57.應用程序所能控制的、要在屏幕上顯示的一切東西,都應該在視圖模型中以哪些形式存在()[多選題]*A、字符串√B、布爾值√C、任意值D、枚舉值√58.對于用例交互器(interactor)與數據庫中間的組件,我們通常稱之為數據庫網關'。這些數據庫網關本身是一個多態接口,包含了應用程序在數據庫上所要執行的以下哪些操作()[多選題]*A、創建√B、讀取√C、更新√D、刪除√59.構建不完全邊界的方式包含以下哪幾種()[多選題]*A、謙卑對象模式B、省掉最后一步√C、策略模式√D、門戶模式√60.Main組件是指系統中來負責_____其他組件的運?轉()[多選題]*A、創建√B、協調√C、監督√D、維持61.Main組件的任務是創建_______,并最終將系統的控制權轉交給最高抽象層的代碼來處理()[多選題]*A、工廠類√B、策略類√C、全局設施√D、中間件62.關于謙卑對象模式描述正確的是()[多選題]*A、謙卑對象模式就是為了幫助單元測試的編寫者區分容易測試的行為與難以測試的行為√B、展示器實際上是采用謙卑對象模式的一種形式√C、謙卑對象模式本質上就是一個設計模式D、謙卑對象模式是一種軟件設計概念√63.架構師怎么應對邊界問題()[多選題]*A、判斷未來哪里有可能需要設置架構邊界√B、需決定應該已完全形式還是不完全形式來實現它們√C、盡量把代碼抽象化來應對將來可能存在的需求D、使用單向邊界與門戶模式64.謙卑對象模式初的設計目的是幫助單元測試的編寫者區分()的行為與()的行為,并將它們隔離()[多選題]*A、難以測試√B、簡單測試C、容易測試√D、復雜測試65.利用謙卑對象模式將GUI的這兩種行為拆分成()與()[多選題]*A、業務邏輯B、展示器√C、視圖√D、界面66.數據庫網關通??梢员惶鎿Q成對應的()和()[多選題]*A、測試替身類√B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論