java隨記

          堅(jiān)持就是勝利!

           

          兩道小面試題的背后

          跟同學(xué)聊了通電話,討論了一下需求理論,架構(gòu),軟件擴(kuò)展性方面
          的東西。好吧。。。搞硬件的跟搞軟件的瞎聊一下這個(gè)好象也不奇
          怪。
          軟件易擴(kuò)展屬于開(kāi)發(fā)質(zhì)量要求。這樣一些非功能性需求往往很重要
          。理論其實(shí)很重要,嗯,從兩道面試題說(shuō)起,面試官都喜歡問(wèn),嗯,
          俺也喜歡問(wèn)。遺憾的是沒(méi)聽(tīng)到過(guò)想要聽(tīng)的答案。
          1,重定向redirect和內(nèi)部跳轉(zhuǎn)forwar有什么區(qū)別或在什么場(chǎng)景使
          用?
             求職者多半的回答是redirect是瀏覽器執(zhí)行的跳轉(zhuǎn)動(dòng)作,好吧
          給8分9分的也行。 forward是應(yīng)用服務(wù)器內(nèi)部跳轉(zhuǎn),屬同一個(gè)
          request好吧,給10分也行。網(wǎng)上的面試寶典答案也跟這個(gè)類似。
              沒(méi)毛病。但不甚滿意。redirect本質(zhì)是應(yīng)用服務(wù)器通過(guò)http協(xié)
          議發(fā)出一個(gè)html文本,里面包含refer:URL指令,瀏覽器解析到這個(gè)
          指令后跳轉(zhuǎn)到那個(gè)URL。嗯,至少了解http原理,給10分。forward
          確實(shí)是內(nèi)部跳轉(zhuǎn),可是怎么用頗值得探討一下。我們知道設(shè)計(jì)模式
          中的簡(jiǎn)單工廠類經(jīng)典實(shí)現(xiàn)是 if(1) return 產(chǎn)品1 ; else return 
          默認(rèn)產(chǎn)品; 。 那forward所在控制器類能否扮演一個(gè)簡(jiǎn)單工廠類的
          角色呢?if(1)forward 控制器1; else forward 控制器2; 應(yīng)用場(chǎng)
          景舉例,比如我有一個(gè)產(chǎn)品查詢頁(yè)面,有兩種不同的實(shí)現(xiàn)方式,一
          種是通過(guò)solr引擎檢出,一種是數(shù)據(jù)庫(kù)直接檢出結(jié)果。通過(guò)forward
          ,可以把兩種實(shí)現(xiàn)同時(shí)寫到產(chǎn)品里。可配或者根據(jù)不同條件用不同的
          解決方案。這樣就變成了 (頁(yè)面A,控制器A ,serviceA),(頁(yè)面A,
          控制器B,serviceB)。兩個(gè)組件共用一個(gè)頁(yè)面A。 因?yàn)槭莾蓚€(gè)組件,
          擴(kuò)展性自是極好的,比如我們還可以增加一個(gè)內(nèi)存數(shù)據(jù)庫(kù)查詢結(jié)果
          的解決方案,而只用簡(jiǎn)單的修改一下 forward所在的控制器類。簡(jiǎn)
          單工廠模式加策略模式的組合應(yīng)用。理解設(shè)計(jì)模式和組件的概念,
          有思考,嗯,給12分。
          2,mvc模式中的m,v,c 分別指什么?
             m就不必多說(shuō)。但是v就很值得思量。 一般的回答是jsp和swing. 
          這種說(shuō)法很片面,也可以說(shuō)沒(méi)理解mvc。 v指view,翻譯是視圖,貌
          似jsp和swing的回答沒(méi)毛病,網(wǎng)上也多說(shuō)是這個(gè)。但v準(zhǔn)確的理解應(yīng)
          該是邊界,即和系統(tǒng)交互的一切東西。比如觸發(fā)某個(gè)任務(wù)的時(shí)鐘,
          調(diào)用系統(tǒng)的某個(gè)外部系統(tǒng),人機(jī)交互的界面等.這樣子的理解,即
          使沒(méi)有界面的功能也同樣適用mvc. c也有講究,就不說(shuō)了。
              編程確實(shí)是一種藝術(shù),但是很多東西都很抽象,理解了就是一
          種思想,沒(méi)理解或不通透就是一種工具。搞程序的和搞硬件的我想
          理論比經(jīng)驗(yàn)更重要。因?yàn)榻?jīng)驗(yàn)有可能是錯(cuò)的,理解透了的理論則不
          會(huì)。

          posted on 2017-04-28 14:00 傻 瓜 閱讀(1184) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(7)

          我參與的團(tuán)隊(duì)

          隨筆分類

          隨筆檔案

          文章分類

          友情鏈接

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 华坪县| 义马市| 镇巴县| 西吉县| 华坪县| 固安县| 谢通门县| 丰城市| 赤城县| 东台市| 霍山县| 富阳市| 无为县| 鲁山县| 泰顺县| 邛崃市| 中西区| 大厂| 松原市| 社会| 若尔盖县| 大英县| 赣州市| 读书| 德格县| 山东省| 盐津县| 屏南县| 尼木县| 太仆寺旗| 广宁县| 中宁县| 景德镇市| 加查县| 西吉县| 灵石县| 长岭县| 福州市| 冷水江市| 秦皇岛市| 望谟县|