Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Q104. [團隊技能題組] 功能: todo-list #23

Open
wildwindjen opened this issue Mar 16, 2017 · 3 comments
Open

Q104. [團隊技能題組] 功能: todo-list #23

wildwindjen opened this issue Mar 16, 2017 · 3 comments

Comments

@wildwindjen
Copy link
Contributor

wildwindjen commented Mar 16, 2017

商業規則如下:

  • 會員註冊之後,即可享有免費 50 筆的待辦項目。
  • 各頁面右上角固定出現「使用筆數: {已用筆數}/{總筆數}」,ex:「使用筆數: 0/50」
  • 若是免費會員,「使用筆數」資訊後面固定出現「購買」的連結,之後會連結到「購買頁面」(購買功能,先別急,等下一題)。
  • 若是付費會員,「使用筆數」資訊後面固定出現「訂單記錄」的連結,之後會連結到「購買記錄頁面」(購買功能,先別急,等下一題)。

請開發一個簡單的「待辦清單」功能:

  • 待辦清單有「待辦日期」(預設當天)、「標題」、「內容」
  • 待辦清單列表頁,支援「關鍵字篩選」、「分頁」。
  • 新增待辦(若到總額上限,則不允許新增)
  • 修改待辦
  • 刪除待辦,可一次多筆。

a. 請提供你的 table schema。
b. 請提供網站的 url。
c. 描述「關鍵字篩選」、「分頁」這邊的設計,由前端還是後端實作?為什麼?什麼時候要前端做?什麼時候後端做?
d. 後端要做商業規則的驗證,團隊用了什麼工具輔助這一塊?

答題時間: 24 hr

@PenguinRun
Copy link

「於2017/8/7 開始答題」
a. 請提供你的 table schema。
使用no-sql, (aws dynamoDb)

  • member
    • id (Number)
    • create_date (String)
    • email (String)
    • gender (String)
    • level (Number)
    • limit (Number)
    • name (String)
    • photos (String)
  • todolist
    • member_id (Number)
    • create_date (String)
    • complete_date (String)
    • is_complete (String)
    • message (String)
    • title (String)

b. 請提供網站的 url。
website: https://devche.com/todolist
(沒設置主頁是因為主頁要拿來當個人頁面,但還沒建置好。)

c. 描述「關鍵字篩選」、「分頁」這邊的設計,由前端還是後端實作?為什麼?什麼時候要前端做?什麼時候後端做?

  • 「關鍵字篩選」、「分頁」:

  • 這兩部份的功能接由後端進行實做,是為了讓前後端的工作能夠個別去區分,區分的依據為前端為資料呈現及資料交互傳遞,而後端就做資料處理的部份(包括條件搜尋)。

  • 什麼時候要前端做?

    • 在前端設有cookie或localstorage時可以使用,但由於我們設計是採取資料處理部份都由後端處理,所以這邊就沒這部份的考量。
  • 什麼時候要後端做?

    • 如功能部份的答覆。

d. 後端要做商業規則的驗證,團隊用了什麼工具輔助這一塊?

  • 商業規則驗證工具:
    • 目前僅使用postman去測試各功能是否正常。

「於2017/8/7 答題結束」

@wildwindjen
Copy link
Contributor Author

  1. 假設 complete_date 是預計完成日,is_complete 是標記完成。我會選擇這樣設計 table:
    complete_date => deadline,
    is_complete => complete_date (預設 NULL,所以只要有壓上日期,就是已完成。然後還可以用來搜某段時間完成的項目)

  2. 找個商業規則的驗證工具試用看看吧。如果覺得沒有自己寫的好用,以後要用自己寫的也OK。但是就是先看看別人的成品。

  3. 「關鍵字篩選」、「分頁」 這邊,所以沒有cookie或localstorage,就不能前端做了?

aws dynamoDb 沒有 date type ?

@PenguinRun
Copy link

PenguinRun commented Aug 11, 2017

@wildwindjen
Q1: 假設 complete_date 是預計完成日,is_complete 是標記完成。我會選擇這樣設計 table:
complete_date => deadline,
is_complete => complete_date (預設 NULL,所以只要有壓上日期,就是已完成。然後還可以用來搜某段時間完成的項目)

A: 目前我們所沒考量到的是「可以用來搜某段時間完成的項目」這點,所以我們會將這部份的考量直接加進去,所以最後我們的設計將會變成:

  • complete_date => deadline
  • is_complete => complete_date
    比照回覆中所建議的方式去實現。

Q2: 找個商業規則的驗證工具試用看看吧。如果覺得沒有自己寫的好用,以後要用自己寫的也OK。但是就是先看看別人的成品。

A: 這部份我們會使用checkit來進行實做看看。

Q3: 「關鍵字篩選」、「分頁」 這邊,所以沒有cookie或localstorage,就不能前端做了?

A:

  • 「關鍵字篩選」、「分頁」:
    • 可以透過GET method將資料回傳來前端,之後再做資料的後處理。

後續問過專門做前端的夥伴後,得知說暫存memory的方式,也能得到跟cookie及local-storage一樣的效果。

若這兩個部份的功能都交由前端來做,也會提高網頁讀取的時間。

最後,Q1及Q2的修改,我們會在下一題完成前修改好。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants