高階軟體工程師面試題

  高階軟體工程師面試的時候,會被問到哪些問題呢?下面是小編為大家帶來的,相信對你會有幫助的。

  ***一***

  你對MVC的理解,MVC有什麼優缺點?結合Struts,說明在一個Web應用如何去使用?

  答:

  MVC設計模式***應用觀察者模式的框架模式***

  M: Model***Business process layer***,模型,操作資料的業務處理層,並獨立於表現層***Independent of presentation***。

  V: View***Presentation layer***,檢視,通過客戶端資料型別顯示資料,並回顯模型層的執行結果。 C: Controller***Control layer***,控制器,也就是檢視層和模型層橋樑,控制資料的流向,接受檢視層發出的事件,並重繪檢視

  MVC框架的一種實現模型

  模型二***Servlet-centric***:

  JSP+Servlet+JavaBean,以控制為核心,JSP只負責顯示和收集資料,Sevlet,連線檢視和模型,將檢視層資料,傳送給模型層,JavaBean,分為業務類和資料實體,業務類處理業務資料,資料實體,承載資料,基本上大多數的專案都是使用這種MVC的實現模式。

  StrutsMVC框架***Web application frameworks***

  Struts是使用MVC的實現模式二來實現的,也就是以控制器為核心。

  Struts提供了一些元件使用MVC開發應用程式:

  Model:Struts沒有提供model類。這個商業邏輯必須由Web應用程式的開發者以JavaBean或EJB的形式提供

  View:Struts提供了action form建立form bean, 用於在controller和view間傳輸資料。此外,Struts提供了自定義JSP標籤庫,輔助開發者用JSP建立互動式的以表單為基礎的應用程式,應用程式資原始檔保留了一些文字常量和錯誤訊息,可轉變為其它語言,可用於JSP中。

  Controller:Struts提供了一個核心的控制器ActionServlet,通過這個核心的控制器來呼叫其他使用者註冊了的自定義的控制器Action,自定義Action需要符合Struts的自定義Action規範,還需要在struts-config.xml的特定配置檔案中進行配置,接收JSP輸入欄位形成Action form,然後呼叫一個Action控制器。Action控制器中提供了model的邏輯介面。

  ***二***

  什麼是WebService?

  答:

  WebService是一個SOA***面向服務的程式設計***的架構,它是不依賴於語言,不依賴於平臺,可以實現不同的語言間的相互呼叫,通過Internet進行基於Http協議的網路應用間的互動。

  WebService實現不同語言間的呼叫,是依託於一個標準,webservice是需要遵守WSDL***web服務定義語言***/SOAP***簡單請求協議***規範的。

  WebService=WSDL+SOAP+UDDI***webservice的註冊***

  Soap是由Soap的part和0個或多個附件組成,一般只有part,在part中有Envelope和Body。

  Web Service是通過提供標準的協議和介面,可以讓不同的程式整合的一種SOA架構。

  Web Service的優點

  ***1*** 可以讓異構的程式相互訪問***跨平臺***

  ***2*** 鬆耦合

  ***3*** 基於標準協議***通用語言,允許其他程式訪問***

  Web Service的基本原理

  ***1*** Service Provider採用WSDL描述服務

  ***2*** Service Provider 採用UDDI將服務的描述檔案釋出到UDDI伺服器***Register server***

  ***3*** Service Requestor在UDDI伺服器上查詢並 獲取WSDL檔案

  ***4*** Service requestor將請求繫結到SOAP,並訪問相應的服務。

  ***三***

  什麼是中介軟體?

  中介軟體就是程式中可織入的,可重用的,與業務邏輯無關的各種元件。

  中介軟體***middleware***是基礎軟體的一大類,屬於可複用軟體的範疇。顧名思義,中介軟體處於作業系統軟體與使用者的應用軟體的中間。中介軟體在作業系統、網路和資料庫之上,應用軟體的下層,總的作用是為處於自己上層的應用軟體提供執行與開發的環境,幫助使用者靈活、高效地開發和整合複雜的應用軟體。

  在眾多關於中介軟體的定義中,比較普遍被接受的是IDC表述的:中介軟體是一種獨立的系統軟體或服務程式,分散式應用軟體藉助這種軟體在不同的技術之間共享資源,中介軟體位於客戶機伺服器的作業系統之上,管理計算資源和網路通訊。

  分類:資料訪問中介軟體,遠端呼叫中介軟體,訊息中介軟體,交易中介軟體,物件中介軟體。 舉例:

  1,RMI***Remote Method Invocations, 遠端呼叫***

  2,Load Balancing***負載均衡,將訪問負荷分散到各個伺服器中***

  3,Transparent Fail-over***透明的故障切換***

  4,Clustering***叢集,用多個小的伺服器代替大型機***

  5,Back-end-Integration***後端整合,用現有的、新開發的系統如何去整合遺留的系統*** 6,Transaction事務***全域性/區域性***全域性事務***分散式事務***區域性事務***在同一資料庫聯接內的事務***

  7,Dynamic Redeployment***動態重新部署,在不停止原系統的情況下,部署新的系統*** 8,System Management***系統管理***

  9,Threading***多執行緒處理***

  10,Message-oriented Middleware面向訊息的中介軟體***非同步的呼叫程式設計***

  11,Component Life Cycle***元件的生命週期管理***

  12,Resource pooling***資源池***

  13,Security***安全***

  14,Caching***快取***