昨天剛好有提到,Rive 跟 FP 都做了一個優雅華麗的轉身,把髒東西包一包拋給上一層再說自己依然是很 pure 很 finite 的。當然 Rive 能做到省成本這件事,本身也是有點把刻動畫這件事拋給設計師處理的味道在。再次向每一位設計師大大們致敬,現在設計師真的跟 711 店員一樣什麼都要會。
如果對 Rive 有基本的認識的話,可能也有聽過說,Rive 雖然讓設計師自己刻動畫,那工程師寫程式時會遇到的問題,設計師也會遇到。不過就算有聽過,可能也只是有個印象而已。剛好也趁這個機會,站在省下更多成本,發揮更多效益的角度,來討論這件事。
一些前端工程師在寫程式時踩過的坑,版本啊衝突啊改 A 壞 B 啊元件邊界不知道怎麼抓啊上帝物件啊過度抽象啊商業邏輯 UI 邏輯不分啊全域變數亂飛啊,甚至是那種 Git 檔名大小寫啊這種小小的坑,設計師一定,再說一次,設,計,師,一,定,會踩過不只一次。到這裡還好解決,就當作在帶 Junior 前端工程師就好。比較麻煩的點是,設計師們看事情的角度都非常……有大局觀。
我的意思是說,工程師面對程式碼或需求,習慣把它盡量分點分項分層拆細一點,divide and conquer,所以才會有抽象、邊界、商業邏輯、業務邏輯之類的概念,也因此上帝物件或全域變數才是壞的。但對設計師(或對其他所有正常的人類)來說,這些概念很怪,他們看事情是一個整體,一張圖片,一整面的,他們也不是不能拆分邏輯,但他們就是先天上覺得這樣看事情很莫名其妙。
在這個前提下,上帝物件或全域變數其實是好的,或者說他們本來就應該這樣,東西全部放在同一個地方很好改很直覺啊,改 A 本來就要改到 B 啊,他們都是同一份 Rive 檔啊,都要放在同一個 app 啊,為什麼不能改,這很正常啊。
例如一個紅色的按鈕,按下去要播一個跳動的動畫,跳完要變成灰色、文字變成 done。對工程師來說,直覺上可以抽象成按鈕顏色、按鈕動畫、按鈕文字,各自可以自由操作排列組合。但對設計師來說,他們直覺上就會一氣呵成做出整串「紅色 → 跳動 → 灰色 → done 的動畫」,然後把視覺做的非常漂亮,中間的轉場或是特效都做得很滿。你問說如果今天按鈕要是黃色或文字要變成 activated 怎麼辦,他們會說那就再做另一個。不是說設計師做不到 component 或是 design system,而是說他們本能上就會排斥這件事,覺得為什麼你們工程師就要把事情弄的這麼複雜。

因此 Rive 省下來的溝通成本,有很多都被消耗在這邊,我們也是花了非常久才意識到這件事。
即便如此,就跟股票槓桿不要開太大一樣,問題的解決方法是一回事,在解決問題時不要被波動洗出去又是一回事。台股遲早破五萬,納指遲早破千,比特幣……應該會再破十萬啦,應該吧 🥹 但不代表大家就要歐印正二或 TQQQ。就算沒有爆倉的風險,就算不考慮波動率耗損,每天上沖下洗也不太舒服,就算只有心理壓力也還是很大的,晚上能好好睡覺也很重要。
解決問題時,行有餘力的話,盡量考慮到波動與情緒會更好,code review 的時候,我們有時候會稍微不那麼嚴格,這無論對工程師還是設計師都適用。以上這些碎碎念,可能在其他 Rive 的文章也聽過,但是他的影響比想像中大非常多,特別是現在有 AI。
如果 Rive 對動畫來說是正二,那 Rive 加上 AI 至少是正五吧,生產力跟波動還有情緒都被放大非常多,當然產出或收益有沒有被等比放大就再仔細評估。無論如何,因為這些東西都被放大了,所以至少就我們目前的經驗來說,更有耐心更包容的去溝通,應該還是更划算的選擇,就好像如果真的買了正五(aka 新青安),抱著後長期下來,通常還是會賺錢一樣。