【面試題】新東方.NET工程師面試題總結

一、學校幾本(是否統招)、英語等級、大學成績排名Top%幾、當前月薪(入職前是否能提供薪資證實材料)、指望月薪css

二本,統招
英語四級
排名top10java

二、作過的項目技術棧是什麼?(例如 .NET、Sql Server、Dapper、EF、Redis……)程序員

.NET、C#、EF、MVC、SQL Server、Oracle、WebService、API、SDK、Redis、JPush、Lucene.Net
Html、css、JavaScript、Ajax、Jquery、AngularJS、Bootstrap
iOS、Objective-C、Winforms、WPFweb

三、作過的項目中最大的表數據量大概多少?業務高峯期每分鐘併發請求數量大概多少?遇到的最大技術難點與解決方案,研究過的.NET開源項目,舉例說明3-5個面試

最大的表有200萬條數據,數據查詢出現慢的狀況,優化方案:在條件語句的列上加索引;優化SQL避免like,in、not in等;使用分頁臨時表避免全表掃描;
高峯期每分鐘併發請求2千左右;
技術難點:團隊創立初期,APP剛剛上線,功能在逐步完善。當時爲了推廣拉新,想開發一個功能,實現APP的在微信裏的傳播分享。網站享用的是微信開放平臺的網站應用號受權,還有另外一塊是微信公衆平臺公衆號分享,分別是不一樣的兩套APPID,受權以後會獲取到兩個不一樣的OpenID,但願用戶信息打通,用戶只要受權過一次以後就能在另外一個模塊實現免登錄。因爲當時一心想經過業務存儲兩個不一樣的OpenID的關聯關係,作到統一,結果走了很多彎路,仍然達不到想要的效果。
解決方案:UnionID,將兩個帳號在後臺關聯以後就能獲取到統一的UnionID,業務記錄此ID便可。數據庫

開源項目
Json.net Json序列化和反序列化,基本支持全部的json特性,性能也很好,MVC4的默認引用程序集中已包含.
Log4net 傳統的日誌框架,移植於log4jV1.2,高效,穩定
Html Agility Pack Html解析庫
DotNetZip 建立,壓縮,解壓Zip文件
DotNetCodes 一些經常使用的功能性代碼Utilities,能夠減小許多開發時間,並且類與類之間沒有什麼依賴,每一個類均可以單獨拿出來使用,excel導出、二維碼生成、網絡請求等;編程

四、.NET系統如何實現水平擴展、如何解決高併發問題,解決方案思路json

應用服務和數據服務分離:把網站分爲應用服務器、文件服務器和數據庫服務器,不一樣服務器承擔不一樣角色,從而提成網站處理能力和文件存儲能力;
數據庫讀寫分離:經過配置主從服務器實現數據庫讀寫分離,改善數據庫負載壓力;
業務拆分:根據產品線拆分,例如訂單、商鋪、買家等,分歸不一樣業務團隊管理,不一樣業務分不一樣物理服務器處理,能夠經過消息隊列進行數據分發;
使用NoSQL和搜索引擎:應用服務器經過統一模塊訪問各類數據,減輕應用程序管理數據源的麻煩;
應用服務器集羣:經過負載均衡使一批設備共同對外提供服務,由統一調度服務器經過調度策略進行分發,當有服務器宕機時,調度服務器會將請求轉移到其餘服務器上,保證不影響用戶使用;
分佈式文件系統和分佈式數據庫系統:將業務拆分紅不一樣模塊,不一樣業務的數據庫放在不一樣的物理服務器上;
緩存:包括本地緩存、分佈式緩存、反向代理和CDN加速;
使用緩存改善網站性能:把業務常常訪問的數據緩存到內存中,能夠大大減小數據庫的讀取訪問壓力,從而改善寫入性能,方式有本地緩存和分佈式服務器緩存,部署大內存服務器;
反向代理和CDN加速:基本原理都是緩存,用戶請求服務時,經過距離判斷最近機房代理服務器中緩存這用戶請求的資源,直接返回給用戶,減輕後端服務器負載壓力;
異步操做:典型的生產者消費者模式,二者不存在直接調用,只要保持數據結構不便,彼此功能實現能夠隨意變化而不互相影響;
固態硬盤代替機械硬盤:使用SSD,物理設備上加快文件訪問速度;windows

五、國內外基於.NET技術的知名網站有哪些,.NET與Java相比有哪些優勢、缺點,如何看待微軟全新一代.NET Core開源、免費、跨平臺的將來發展前景後端

.NET知名網站
國外:microsoft、stackoverflow、codeproject、myspace、Godaddy、msn、
國內:cnblogs、csdn、智聯、攜程、必應、起點、凡客

.NET和java對比

開源和跨平臺,Java一直開源跨平臺,有很是豐富的社區資源;微軟14年也宣佈開源跨平臺,有.NET Core、xamarin,微軟正在努力,但作到Java如今的程度我的以爲還有很長一段路要走。
編程工具,C#有好用的IDE Visual Studio;Java之前有eclipse,如今有Intellij。
語言特性,二者語法相似,C#feature更多(語言特性,泛型、委託、重載運算符、LINQ、lambda、delegate、擴展等),語法糖也更多,程序員基本能夠專一邏輯而不用關注如何實現;而Java這塊比較貧乏。
更新速度,C#由微軟維護,版本更新快,支持更多新特性;java版本更新慢。
應用領域,C#目前主要應用在windows的PC應用,unitity3D,web。Java應用於web,Android,Hadoop等。
生態環境,我的認爲最重要的一點。開源庫和框架Java數不勝數,各類層面的解決方案眼花繚亂,C# web比較好用的框架只有asp .net、MVC。

.NET Core將來發展前景

我的看好 .Net Core 的將來發展前景。
.NET Core是一個開源通用的開發框架,支持跨平臺,即支持在Window,macOS,Linux等系統上的開發和部署,而且能夠在硬件設備,雲服務,和嵌入式/物聯網方案中進行使用。首先從Core的定位上來講,他摒棄了原有AspNet的那些臃腫組件,面向高性能服務器開發。雖然如今版本功能還比較弱,各種三方庫支持也沒有更新,可是這只是時間問題,以微軟的更新速度和推廣力度,幾年後必將完善。
基於微軟的 Azure 雲的平臺優點,後期勢必會加入 .Net Core 的支持,加上微軟的跨平臺戰略,對 Docker 的親和性,對於開發人員也很是友好,因此總體環境來講是健康發展的,將來技術決策時 .Net Core 也有很大的優點。
所以將來其發展主要看的就是微軟推廣力度及社區開發者的支持度。
喜歡C#就會一直堅持下去,由於興趣是最好的老師。

六、www.dot.net官網任選一篇英文技術文章,不用單詞軟件大概能看懂百分之多少?
看了一篇教學文章
https://www.microsoft.com/net/tutorials/csharp/getting-started/hello-world
所有英文文檔大概能看懂百分之80

七、咱們會根據以上信息進行崗位匹配度的評估(教育背景、技術能力、抽象總結能力……),節省應聘者的面試成本,提高招聘效率

八、爲了方便及時溝通,請加技術經理微信 2531685528 註明:應聘.NET 姓名

-------------------------------------------------------

【.NET技術面試參考資料、圖書】

一、《大型網站技術架構》

二、《Sql Server性能優化與管理的藝術》

三、《跟阿銘學Linux》

四、《深刻淺出MySQL數據庫開發優化與管理維護》

五、《微服務設計》

參考資料共享地址

http://pan.baidu.com/s/1nvUc1nz

http://www.apelearn.com/study_v2/

相關文章
相關標籤/搜索