tsungtingdu / heymd

0 stars 0 forks source link

Daily report and Meeting note #6

Open tsungtingdu opened 4 years ago

tsungtingdu commented 4 years ago

2020.09.08 Meeting

Questions:

Discussions:

  1. Reducer 裡面應該不能使用 async/await,需要確認一下
  2. Redux 好處是可以將資料集中管理,但會產生以下問題
    • 集中整個 app 的資料可能會太龐大,不太方便在 Redux Devtool Extenstion 裡面查看
    • 在使用者切換頁面的過程中,會先拿 Redux 當中存在的舊資料,之後才會再 fetch 資料,這會導致畫面跳動,使用者體驗可能不佳
    • 可以用原本 React 的 context 來將集中的資料拆分,但這樣最後是不是只要用 context 就好了?
  3. Redux toolkit 可以產出 template,可以參考使用
  4. Slice and immutable 可以參考使用
  5. 客製化 Material UI 可以參考 這裡
  6. HackMD 沒有存檔按鈕,用 DevTool 觀察過後,推測是使用 socket 完成。如果目前專案暫時不用 socket 實作的話,可能解法有
    • onChange 事件觸發後就發出 API request 存檔。request 頻率會太高
    • 透過 debounce 方法降低上述 API request 頻率
    • 透過 setInterval 定時發出 API request 存檔
    • 在偵測到使用者離開頁面前,打 API 存檔。這是應該是最低限度的作法
  7. 討論到關於 Redux pattern 與 Context API 取捨,在 Vue 當中沒有類似的問題,因為 Vue 只有 Vuex 可以用,而沒有類似 context API 的替代作法
tsungtingdu commented 4 years ago

2020.09.09 Daily report

Progress

Questions/Ideas/Thoughts

tsungtingdu commented 4 years ago

2020.09.10 Daily report

Progress

Questions/Ideas/Thoughts

Screenshot 2020-09-10 at 23 01 28 (2)

Screenshot 2020-09-10 at 23 02 42 (2)

Screenshot 2020-09-10 at 23 04 22 (2)

pjchender commented 4 years ago

2020.09.10 Daily Comments

  1. 前天要跟你說雖然 action 裡面可以直接用 data 屬性來接資料,但一般習慣上會用 payload 這個字,主要是因為 Redux 是根據 Flux 的概念加以實作,而 Flux 對於 Action 有建議撰寫的規範,不需要完全一樣,不過可以再參考看看:

Flux Standard Action

{
  type: 'ADD_TODO',
  payload: {
    text: 'Do something.'  
  }
}
  1. 從 reducer 中,你會慢慢發現,不管什麼 type 進來,你做的事都一樣,就是把新的資料覆蓋掉就有的資料:
const postReducer = (state = {}, action) => {
// ...
    case 'CREATE_POST_SUCCESS':
      return {
        ...state,
        ...action.data,
      }
    case 'SAVE_POST_SUCCESS':
      return {
        ...state,
        ...action.data,
      }
// ...
}

有些時候,會直接定義一個 type 為 UPDATE 的 action,然後是該資料要更新就直接 dispatch 它,像是這樣:

const postReducer = (state = {}, action) => {
// ...
    case 'UPDATE':
      return {
        ...state,
        ...action.data,
      }
// ...
}

至於這樣好不好 debug 則見仁見智。另外,還有一種做法是,不要直接使用 ...action.data,而是把需要用的資料先取出來,再給進去,這麼做的好處是可以知道每次到底更新的什麼:

const postReducer = (state = {}, action) => {
// ...
    case 'CREATE_POST_SUCCESS':
      const {foo, bar} = action.data
      return {
        ...state,
        foo,
        bar
      }
// ...
}
  1. 錯誤處理的地方未來可以再考慮使用套件產生 alert 來跳出提示
  2. 確認一下編輯器有無裝任何 linter 的工具,幫助程式碼的 coding style 統一(例如,單、雙引號),這邊是打算使用 standardJS 的 coding style 嗎?
  3. components 資料夾名稱拼錯了喔 conponents
  4. 「使用 React route 跳轉頁面的時候,可以讀取 store 資訊,但是如果使用者自行輸入 URL,會找不到 store」指的是使用者重新整理後,store 會被清空的意思嗎?
tsungtingdu commented 4 years ago

2020.09.11 Daily report

Progress

Questions/Ideas/Thoughts

Screenshot 2020-09-11 at 16 28 43
tsungtingdu commented 4 years ago

2020.09.12 Daily report

Progress

Questions/Ideas/Thoughts

Screenshot 2020-09-13 at 02 16 04 (2)

tsungtingdu commented 4 years ago

2020.09.13 Daily report

Progress:

Questions/Ideas/Thoughts

Screenshot 2020-09-13 at 19 15 53 (2)

tsungtingdu commented 4 years ago

2020.09.13 Daily report

Progress:

Questions/Ideas/Thoughts


Screenshot 2020-09-14 at 22 14 00 (2)

tsungtingdu commented 4 years ago

2020.09.15 Meeting

Questions

Discussions:

tsungtingdu commented 4 years ago

2020.09.15 Daily report

Progress

Questions/Ideas/Thoughts

Screenshot 2020-09-16 at 00 16 00
tsungtingdu commented 4 years ago

2020.09.16 Daily report

Progress

Questions/Ideas/Thoughts

Screenshot 2020-09-16 at 21 31 53
tsungtingdu commented 4 years ago

2020.09.21 Daily report

Progress

Questions/Ideas/Thoughts

tsungtingdu commented 4 years ago

2020.09.22 Daily report

Progress

Questions/Ideas/Thoughts

2020-09-22 at 15 24

tsungtingdu commented 4 years ago

2020.09.23 Daily report

Progress

完成 socket 架構

Questions/Ideas/Thoughts


21:30 Update

多人編輯測試資料: user1@gmail.com / 12345678 -> My Notes -> Hello socket! user2@gmail.com / 12345678 -> Collaborative Notes -> Hello socket!

tsungtingdu commented 4 years ago

2020.09.24 Daily report

Progress

Screenshot 2020-09-25 at 03 00 09
tsungtingdu commented 4 years ago

2020.09.25 Daily report

Progress

Questions/Ideas/Thoughts

Screenshot 2020-09-25 at 15 28 47
tsungtingdu commented 4 years ago

2020.09.27 Meeting

Questions:

Discussions:

tsungtingdu commented 4 years ago

2020.09.28 Daily report

Progress

Questions/Ideas/Thoughts


[Left] owner view / [Right] collaborator view

Screenshot 2020-09-28 at 20 37 28

[Left] editing page for signed in user / [Right] public page for non-login user

Screenshot 2020-09-28 at 21 47 33
tsungtingdu commented 4 years ago

2020.09.29 Daily report

Progress

Screenshot 2020-09-29 at 15 42 55 (2)

tsungtingdu commented 4 years ago

2020.09.30 Daily report

Progress

Questions/Ideas/Thoughts

2020-09-30 at 18 15

tsungtingdu commented 4 years ago

2020.10.01 Meeting

--

14:10 Update

tsungtingdu commented 4 years ago

2020.10.03 Daily report

Progress

Backend

Frontend

Questions/Ideas/Thoughts