軟工學習隨筆

記得就紀錄一下

R4 Cheng
3 min readSep 7, 2021

問題/需求處理

  • 工程師不能只單純的接受需求,而是應該要透過提出問題,釐清需求者實際想要解決的是什麼問題以及背後得原因,以討論出有效的解決方案
  • 小心 X-Y 問題

X-Y 問題:看起來可以用 Y 方法解,實際上最佳解是 Z

  • Spec 很有可能是動態的,有一份易閱讀易更新的文件非常重要

我喜歡在文件上加上 timestamp

好文

Clean Code

JS

  • 在Project 中,冗餘的 methods 或者 functions 的處理順位是很低的,因為只會讓 compile 的速度慢個幾毫秒,因該優先考慮架構、分資料夾等問題 (2021.9)

找 Bug

JS

  • Object 中原本該存在的 property or value 消失了,高機率可能是因為被意外換掉了

E.g.

const a = {
b: '123',
}
// accident happened
a.b = 456
// a.b 的值被意外換掉,可以用 ".b =" 關鍵字下去找 bug

Material-UI

  • 過長的 value 可能會造成 Grid Component 變形

Backend

Structure and Data Flow

Handle request
- routing
- find handler/controller (input/output)
1. Parse input
2. Validate input
- If not valid, return 4xx
3. business logic
- Change db or call other services (email/sms/queue)
4. Format output
5. Return output
- services (inside business logic)
- Database CRUD
- Or call other services (internal or external)
- router/controller
- helper
- services (internal/external)
- helper
- database model
- helper

encrypt/decrypt had better get done in controller layer

`npm`

  • if the package has existed in the other dependency, do we still install it? => Yes, in order to control version ourself

Tips for beginners

CSS

  • Browers 的開發人員工具裡面的 elements 可以直接更改以利檢查 CSS

--

--

R4 Cheng
R4 Cheng

Written by R4 Cheng

「0」が過去で「1」が未来「今」は何処にもない

No responses yet