專案回顧心得

從3月14號就開始推專案的第一個commit,到昨天我切完預訂設計提供的psd,算是完成了一個很大的里程碑,算上今天剛好4個月。中間切了30多個頁面,自幹了多少個元件,踩了很多css的雷(技術債活該lol),來回顧一下這幾個月的心得。

設計過於平面

設計在處理320的版型,是爲了小版特別更改版型,在640之後採用統一版型。而在321到639的版型直接套用320版型,則元件的比例就會變得又扁又瘦長。另外,在320被組合在一起的元件,到了1200就要被分開,要花很多時間和css調整。再者在1200的版型上,提供了非常多資訊,但在320卻一併塞進來,造成畫面太擁擠。

320的版型在639會很奇怪

See the Pen component strange in 639px by Nereus Eng Wei Xian (@nereuseng) on CodePen.

下面的按鈕在因爲小版型,而在中版型必須用position absolute固定,被迫與原本的結構分開

See the Pen Layout forced to restructured by Nereus Eng Wei Xian (@nereuseng) on CodePen.

雖然最後有達到設計的要求,但是卻花了太多心力和時間完全不划算。應在提供設計的時候,在討論的時候就要想想做的複雜度,並和設計師討論修改的方向。

Api格式不統一

整個專案到後期發現,很多時候元件都長得一樣,邏輯處理也一樣,但因爲api欄位名字不一樣,要寫一模一樣又長又臭的code,在這次的專案至少有四個這樣的頁面(能想像有什麼東西要改,就要做四次嗎?)。在開發之前,應要向後端統一格式,要不然後患無窮,後患無窮啊!!!

設計師溝通——Zeplin!

對工程師來說,Photoshop上的抓顏色測量工具太弱,無法很快抓取,尤其是在RWD版型之間測量,甚至產生量到天荒地老的錯覺。在前期和設計師溝通,但開發時間一長,難免還是會忘記,因此需要一些ui標註和溝通工具,像是Zeplin。只要點區塊,他就會顯示字體顏色、大小、行高,和別的元素區塊的間距等訊息,超省時間的!

Zeplin也有註記功能,能讓設計師在標註一些注意事項。他也有和Slack整合(雖然同事不愛用就對了

專案前要注意的地方

  • RWD之間的過渡版面
  • 在設計開工前溝通(使用工具,設計準則
  • RWD的內容是否能共用,而不是需要Display none或者position absolute(圖片儘量不要裁切
  • UX的互動方式(是否有動畫
  • User使用功能的流程(每一步的邏輯

設計基本準則

因爲當初CSS的方式是每一個元件獨立(Vue style scoped),一開始寫是非常美好,幾乎沒有什麼問題,也不會有CSS污染的問題。但後來發現一個很崩潰的事情:

兩三個禮拜前切的版有Button,於是我在那個Component的CSS中,定義他在RWD的各種大小顏色邊框動畫,但是卻發現現在切的Component也有一樣的Button,於是我又在那個Component裏面,寫了一模一樣的大小顏色邊框動畫。再來同個Component還有新的Button,hover之後邊框要有動畫
多兩個禮拜後,我又在新的設計圖看到這個按鈕。我知道他重複,想要提取出來,同時Button都要加上Border radius,但是我卻不知道他在哪裏了…

一直到我在FEDC聽到Atomic Design這個概念

1
We’re not designing pages, we’re designing systems of components.—Stephen Hay

他的概念是先從最抽象的地方,比方說顏色,字體,Hover顏色等開始設計,把這些抽象的東西組合起來變成一個小的元件,再各種小元件組合成大元件,就就能統一設計語言,也能減少重複css的問題,維護的時候就不會陷入痛苦。

之後可以嘗試和設計師溝通,確定一些小Component的顏色大小Hover動畫,並以這個爲基準來切版。

結論(與前面無關

這次的專案,做到讓人心力交瘁,好像身體某部分死掉了。但是也知道自己的精力,是一種開發資源,如果在開發資源有限的情況下,最有效率的做出最完美的網頁,變成是我下個案子的重點。聽同事說還蠻推薦我下個案子開始使用Grid和css variables,ie 11變成是最後才要解決的問題,這樣的想法讓我頓時豁然開朗。希望下次的專案讓我人生變得更美好XD

參考連接:

  1. http://bradfrost.com/blog/post/atomic-web-design/
  2. https://zeplin.io/