開發觀念基礎
前端在看什麼
前端是人看得到、點得到的那一層。它很會演示,也很會把不該它決定的事攬走。
畫面、狀態、事件
畫面是小安眼睛看到的:訂單編號的格子、查詢按鈕、結論那一行字。狀態是這一刻畫面記著的暫時情況:格子裡打到一半的編號、按鈕轉圈、上一筆結論還留在螢幕上。事件是發生了一件事:她按了按鈕、編號改了一個字、結果回來了。
這三個詞夠你跟工程師說話,不必先背框架的名字。你要問的是:這個狀態只活在這一次操作裡,還是活完就要變成大家共用的事實?只活一次的,可以留在瀏覽器。要被別人明天查到的,不能只留在小安的分頁裡。
什麼該留在瀏覽器
打到一半的草稿、查詢中的轉圈、她剛剛選過但還沒送出的原因分類,這些留在前端很合理。關掉分頁就消失,也沒關係,因為它們還沒成為決定。前端還負責把後端回來的句子排好,讓人讀得下去。
不該留在瀏覽器的,是「這張單可退」這個結論的權威、別的系統的鑰匙、以及其他顧客的訂單。瀏覽器在顧客和員工的電腦上,你管不到那台電腦今晚還開著什麼。把結論的決定權放在那裡,等於把規則交到一個你下班後碰不到的地方。
演示很漂亮的時候要多問一句
原型最容易贏得掌聲的是前端。按鈕會動、句子很順、顏色也很乖。客戶點頭之後,你要補問:如果小安不經過這個畫面,改從客服系統的另一個入口把同一張單送進來,規則還在嗎?如果她把畫面上的「可退」兩個字改掉再送出,後端會不會照單全收?
這兩問不是在找工程師麻煩。它們是在確認前端的工作停在「讓人看得懂、把輸入送出去」,而不是「自己當法官」。法官的工作在下一課。
範例 · 退貨畫面裡,什麼是暫時的
小安打開退貨頁,畫面上有四樣東西。
- 留在前端:編號還沒打完、按鈕轉圈、她勾了又取消的「未拆封」。
- 不留在前端:這張單到底能不能退、訂單的原始日期、呼叫訂單系統用的鑰匙。
- 畫面可以顯示結論,但結論的句子是後端給的,不是畫面自己算出來的。
練習
拿一個你做過的畫面,列出三個狀態。標哪一個關掉分頁可以消失,哪一個必須被別人查得到。
若三個都標成「可以消失」,再問一次:明天值日生怎麼知道昨天發生過這件事?
完成的時候
- 你能用畫面、狀態、事件描述退貨頁,而不需要講任何框架名字。
- 你舉得出一件「看起來像畫面問題、其實不該由瀏覽器決定」的事。