招聘.NET的Web開工程師,Java背景也可,這是一個測試專案

溫謙發表於2014-09-28

您好,感謝您對我們的招聘資訊感興趣!

我們為了能夠比較快捷地匹配到合適的人員,做了一個小小的測試題目。非常基礎,如果熟悉的話,一個小時可以完成。麻煩您花一點點時間,做一下,這樣便於我們瞭解您對技術的熟悉程度。

簡短捷說

先給給急性子的人說明一下:

  1. 根據這個演示:http://ordermaker.webstack.com.cn ,瞭解功能目標;
  2. 下載完成一半的專案檔案,補齊功能程式碼:http://ordermaker.webstack.com.cn/content/ordermaker.zip
  3. 把專案檔案發回我們的聯絡郵箱: jobs@artech.cn,packages目錄裡內容不用發,檔案就很小了。
  4. 其他說明:http://www.ituring.com.cn/article/123783
  5. 如果對工具熟悉的話,1~2個小時可以完成。

詳細說明:專案功能

我首先做了一個非常非常小的專案:http://ordermaker.webstack.com.cn ,包括構思和實現,大約用了1個小時多一點。

由於這個網站肯定沒有多少人訪問,您訪問的時候可能Web Server需要重新啟動這個網站,所以會慢一些,需要等十幾秒鐘。

這個專案的功能非常簡單,如下圖所示。點選選單上的“Product”,進入產品列表頁,可以看到列有若干產品以及價格。每個產品可以檢視詳細資訊、編輯、刪除和加入購物車。加入購物車之前需要先註冊一個賬號,並登入。將一個產品加入購物車以後,列表上面有一個數字顯示更新以後的購物車中產品的數量。

enter image description here

然後點選選單“Cart”,可以檢視已經新增到購物車中的產品列表。每個產品後面有一個連結,可以修改數量。

enter image description here

在購物車頁面上部有一個“Make Order”按鈕,點選後就產生一個訂單,將購物車中的產品加入這個訂單,並清空購物車。

enter image description here

點解訂單編號後面的連結,可以檢視這個訂單的具體內容。

enter image description here

請您完成

為了和大家有一個交流的基礎,我把上面這個小專案完成以後,刪除了其中的一部分程式碼,然後放到網上,http://ordermaker.webstack.com.cn/content/ordermaker.zip如果對我們的工作有興趣的朋友,請下載這個專案的“半成品”。您按照上面演示的網站功能,把我刪除掉的程式碼補上以後,發給我們(jobs@artech.cn)就可以了。

要完成這個工作,需要的工具:

  • ASP.NET MVC 5
  • Entity Framework 6 (Code First + Migration)

關於程式碼幾點說明:

  • 專案直接是使用 VS 2013 中的 ASP.NET MVC 5 模板建立的,所以使用者註冊、登入等功能都沒有任何改動,直接保留。只需要增加具體的功能程式碼即可。
  • 使用 Entity Framework 6.1 Code First 方式進行資料建模,實際上就是4個物件,對應於資料庫中的4個資料表:
    • Product :產品
    • CartItem:用於記錄購物車中的產品
    • Order:訂單
    • OrderItem:訂單明細
  • 我把大部分資料模型程式碼保留了,不過還是需要補充少量的欄位,這個需要從業務邏輯的角度考慮。
  • Controllers部分,我已經把需要的Action名字和空函式都寫好了,就對應於選單上的三項:
    • Product:列表、詳細、新建、刪除、編輯、加入購物車
    • Cart:列表、編輯產品數量、下訂單
    • Order:列表、檢視詳細情況
  • 資料庫用的是VS 2013自帶的LocalDB,如果你要換成其他的資料庫,修改相應的web.config中的連線字串。
  • 使用了Entity Framework中的Migration特性,在修改了資料模型以後,請使用Migration功能修改資料庫的表結構。
  • ASP.NET MVC 5專案預設使用的使用者系統是 ASP.NET Identity 2.0,如果你不知道如何獲取某使用者的UserId可以參考:http://stackoverflow.com/questions/19505526/asp-net-owin-identity-how-to-get-userid-from-a-web-api-controller 。
  • 你可以把這個專案作為一個實際專案的早期原型階段,所以效能等很多重要方面都不是主要考慮點,當然這也是為了把問題簡化,能把時間控制在一兩個小時範圍內。但是你要考慮一下哪些因素對於未來的效能考量是需要改進的。
  • 結合購物車、下訂單這個具體場景,業務邏輯方面有什麼是需要考慮周到的地方?
  • 另外,和您的專案一起發給我們一個小文件,談談下面幾個小問題:
    • 你在使用 ASP.NET MVC 開發時,你通常向 View 傳遞什麼模型?業務模型還是建立專用的ViewModel?如何考慮?有安全性方面的問題嗎?
    • IEnumerable<T> 和 IQueryable<T> 兩種型別有什麼區別和聯絡?
    • 關於效能優化,你通常是怎麼操作的?
    • 使用Entity Framwork 的時候,你通常如何控制 DbContext 例項的生命週期?
    • 如果方面,請附一份簡歷。

總結

相關文章