學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場 > 面試題 > 高級軟件工程師面試題

高級軟件工程師面試題

時間: 如英753 分享

高級軟件工程師面試題

  高級軟件工程師面試的時候,會被問到哪些問題呢?下面是學(xué)習(xí)啦小編為大家?guī)淼母呒壾浖こ處熋嬖囶},相信對你會有幫助的。

  高級軟件工程師面試題(一)

  你對MVC的理解,MVC有什么優(yōu)缺點(diǎn)?結(jié)合Struts,說明在一個Web應(yīng)用如何去使用?

  答:

  MVC設(shè)計模式(應(yīng)用觀察者模式的框架模式)

  M: Model(Business process layer),模型,操作數(shù)據(jù)的業(yè)務(wù)處理層,并獨(dú)立于表現(xiàn)層(Independent of presentation)。

  V: View(Presentation layer),視圖,通過客戶端數(shù)據(jù)類型顯示數(shù)據(jù),并回顯模型層的執(zhí)行結(jié)果。 C: Controller(Control layer),控制器,也就是視圖層和模型層橋梁,控制數(shù)據(jù)的流向,接受視圖層發(fā)出的事件,并重繪視圖

  MVC框架的一種實現(xiàn)模型

  模型二(Servlet-centric):

  JSP+Servlet+JavaBean,以控制為核心,JSP只負(fù)責(zé)顯示和收集數(shù)據(jù),Sevlet,連接視圖和模型,將視圖層數(shù)據(jù),發(fā)送給模型層,JavaBean,分為業(yè)務(wù)類和數(shù)據(jù)實體,業(yè)務(wù)類處理業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)實體,承載數(shù)據(jù),基本上大多數(shù)的項目都是使用這種MVC的實現(xiàn)模式。

  StrutsMVC框架(Web application frameworks)

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

  Struts提供了一些組件使用MVC開發(fā)應(yīng)用程序:

  Model:Struts沒有提供model類。這個商業(yè)邏輯必須由Web應(yīng)用程序的開發(fā)者以JavaBean或EJB的形式提供

  View:Struts提供了action form創(chuàng)建form bean, 用于在controller和view間傳輸數(shù)據(jù)。此外,Struts提供了自定義JSP標(biāo)簽庫,輔助開發(fā)者用JSP創(chuàng)建交互式的以表單為基礎(chǔ)的應(yīng)用程序,應(yīng)用程序資源文件保留了一些文本常量和錯誤消息,可轉(zhuǎn)變?yōu)槠渌Z言,可用于JSP中。

  Controller:Struts提供了一個核心的控制器ActionServlet,通過這個核心的控制器來調(diào)用其他用戶注冊了的自定義的控制器Action,自定義Action需要符合Struts的自定義Action規(guī)范,還需要在struts-config.xml的特定配置文件中進(jìn)行配置,接收J(rèn)SP輸入字段形成Action form,然后調(diào)用一個Action控制器。Action控制器中提供了model的邏輯接口。

  高級軟件工程師面試題(二)

  什么是WebService?

  答:

  WebService是一個SOA(面向服務(wù)的編程)的架構(gòu),它是不依賴于語言,不依賴于平臺,可以實現(xiàn)不同的語言間的相互調(diào)用,通過Internet進(jìn)行基于Http協(xié)議的網(wǎng)絡(luò)應(yīng)用間的交互。

  WebService實現(xiàn)不同語言間的調(diào)用,是依托于一個標(biāo)準(zhǔn),webservice是需要遵守WSDL(web服務(wù)定義語言)/SOAP(簡單請求協(xié)議)規(guī)范的。

  WebService=WSDL+SOAP+UDDI(webservice的注冊)

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

  Web Service是通過提供標(biāo)準(zhǔn)的協(xié)議和接口,可以讓不同的程序集成的一種SOA架構(gòu)。

  Web Service的優(yōu)點(diǎn)

  (1) 可以讓異構(gòu)的程序相互訪問(跨平臺)

  (2) 松耦合

  (3) 基于標(biāo)準(zhǔn)協(xié)議(通用語言,允許其他程序訪問)

  Web Service的基本原理

  (1) Service Provider采用WSDL描述服務(wù)

  (2) Service Provider 采用UDDI將服務(wù)的描述文件發(fā)布到UDDI服務(wù)器(Register server)

  (3) Service Requestor在UDDI服務(wù)器上查詢并 獲取WSDL文件

  (4) Service requestor將請求綁定到SOAP,并訪問相應(yīng)的服務(wù)。

  高級軟件工程師面試題(三)

  什么是中間件?

  中間件就是程序中可織入的,可重用的,與業(yè)務(wù)邏輯無關(guān)的各種組件。

  中間件(middleware)是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。顧名思義,中間件處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。

  在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。

  分類:數(shù)據(jù)訪問中間件,遠(yuǎn)程調(diào)用中間件,消息中間件,交易中間件,對象中間件。 舉例:

  1,RMI(Remote Method Invocations, 遠(yuǎn)程調(diào)用)

  2,Load Balancing(負(fù)載均衡,將訪問負(fù)荷分散到各個服務(wù)器中)

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

  4,Clustering(集群,用多個小的服務(wù)器代替大型機(jī))

  5,Back-end-Integration(后端集成,用現(xiàn)有的、新開發(fā)的系統(tǒng)如何去集成遺留的系統(tǒng)) 6,Transaction事務(wù)(全局/局部)全局事務(wù)(分布式事務(wù))局部事務(wù)(在同一數(shù)據(jù)庫聯(lián)接內(nèi)的事務(wù))

  7,Dynamic Redeployment(動態(tài)重新部署,在不停止原系統(tǒng)的情況下,部署新的系統(tǒng)) 8,System Management(系統(tǒng)管理)

  9,Threading(多線程處理)

  10,Message-oriented Middleware面向消息的中間件(異步的調(diào)用編程)

  11,Component Life Cycle(組件的生命周期管理)

  12,Resource pooling(資源池)

  13,Security(安全)

  14,Caching(緩存)

看過“高級軟件工程師面試題”的人還看了:

1.軟件工程師經(jīng)典測試題及答案分析

2.軟件工程師面試自我介紹范文

3.電子工程師常見的面試題

4.關(guān)于高級開發(fā)人員的面試題

1086004