Re: [請益] 寫UI到底難在哪裡
※ 引述《scan33scan33 (亨利喵)》之銘言:
: 身為一個曾經搞過一點Project裡面UI Design的小小弱雞來回一下。
: 首先我覺得「UI非常容易變動,因此程式要寫得很活,才動得了」很有道理。
: 一些經驗
: 1. 很多人拖拉按鈕畫圖最喜歡hardcode座標,也不寫個相對位置。
: 很多時候我們發現有人hardcode一個800*600的顯示,現在我們要再加一個圖。
: 把他原來的UI推上去,才發現他UI全部都要重改。
: 2. 寫2D座標系統的visulization程式。我們都知道要保有彈性。不過當客戶第一個月
: 說要zoom in/zoom out。第二個月說要可以轉來轉去。弟三個月就跟你說:我們來做
: 3D的好了。這如果當時code沒有寫好,沒一次改幾乎都是重新寫。
: 3. 說到跨語系偏好設定,我一定要講一個大家可能都欲過得問題。我們做數學運算的程式
: 常常要parse小數點之類的。我之前在某知名德國公司intern。有一天老闆就過來跟我講
: 說,有很多人complain說我們一個toolkit不能用。後來我們發現是一堆歐洲人不能用
: ,結果就知道原來歐洲小數點是逗號。結果因此最後我們來改了不少code...
: 我覺得UI簡單的地方是,他技術上實在沒有什麼技巧性。
講到這個我就要忍不住要跳下來說酸血淚了
逗號跟小數點反過來的 (印象中是法國跟部份歐洲國家)當然是碰過。
月曆的月也會隨著各個語言縮寫可能會有一點不一樣。
更不用說曆法了,板上有人知道今年是佛教年的哪一年嗎?
http://zh.wikipedia.org/wiki/%E4%BD%9B%E6%9B%86
光是一個簡單的 calendar 就可以搞死一堆人。
然後 Decimal 跟 Date 最可怕的地方是 format ,
yyyymmdd KK:mm:ss aa
(btw 有人知道k/H K/h 者這兩個date format的差異嗎? )
兩個一加成上去這個複雜度直接爆表。
用別人的 api 是很輕鬆,自己做...呵呵呵
UI 技術上是有技巧性的,它的複雜度在「狀態」的設計/保存與切換。
以 textbox 簡單的文字輸入框為例。
今天使用者點擊是 focusing ,是一個狀態,
使用者打字時是另一個狀態(tpying),
打完點旁邊之後會變成另一個狀態(onChange),
打完點enter 又是一個狀態(submit)
你設計 UI 時要從這些狀態中挑出你想要的,去進行設計。
然後其中又可能會再加成出新的狀態,
比方說 tpying 完之後如果是空的,顯示浮水印說明文字(empty)。
這會增加focusing的難度,(如果是浮水印,要把他清掉)。
我們先假設UI元件都已經做好了,我們只是做 api 調用好了,
你都必須要思考以上幾種狀態哪些你需要,你該怎麼組合。
(事實上元件已經做好這假設通常不會完全成立,
特別是在 web 上, UI通常是需要高度客製化的東西。)
單一元件本身的狀態數就是一個乘積了,
搭配到多個元件之間的互動,複雜度會再疊上一個乘積。
然後你必須再加上資料層所需要的對應 data provider 的設計。
這數字非常可怕。
yes 你很容易拿到一個看起來還算正常的東西,
但要窮盡所有可能性的做全面測試,並不容易。
隨著元件越多,事情就越難。
當然這只是 UI 設計的其中一個範圍而已,
這話題說下去還長得很......
--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.138.25.251
推
05/07 13:48, , 1F
05/07 13:48, 1F
→
05/07 13:51, , 2F
05/07 13:51, 2F
→
05/07 14:04, , 3F
05/07 14:04, 3F
→
05/07 14:05, , 4F
05/07 14:05, 4F
→
05/07 14:07, , 5F
05/07 14:07, 5F
→
05/07 14:07, , 6F
05/07 14:07, 6F
→
05/07 14:10, , 7F
05/07 14:10, 7F
→
05/07 14:11, , 8F
05/07 14:11, 8F
→
05/07 14:11, , 9F
05/07 14:11, 9F
→
05/07 14:12, , 10F
05/07 14:12, 10F
→
05/07 14:13, , 11F
05/07 14:13, 11F
→
05/07 15:46, , 12F
05/07 15:46, 12F
推
05/07 15:57, , 13F
05/07 15:57, 13F
→
05/07 16:17, , 14F
05/07 16:17, 14F
推
05/07 19:49, , 15F
05/07 19:49, 15F
推
05/07 19:58, , 16F
05/07 19:58, 16F
→
05/07 22:44, , 17F
05/07 22:44, 17F
推
05/07 22:58, , 18F
05/07 22:58, 18F
→
05/07 23:05, , 19F
05/07 23:05, 19F
→
05/07 23:06, , 20F
05/07 23:06, 20F
→
05/07 23:06, , 21F
05/07 23:06, 21F
→
05/07 23:08, , 22F
05/07 23:08, 22F
→
05/07 23:09, , 23F
05/07 23:09, 23F
→
05/07 23:09, , 24F
05/07 23:09, 24F
→
05/07 23:27, , 25F
05/07 23:27, 25F
推
05/07 23:58, , 26F
05/07 23:58, 26F
推
05/08 00:16, , 27F
05/08 00:16, 27F
→
05/08 00:18, , 28F
05/08 00:18, 28F
→
05/08 00:19, , 29F
05/08 00:19, 29F
→
05/08 00:19, , 30F
05/08 00:19, 30F
→
05/08 00:30, , 31F
05/08 00:30, 31F
推
05/08 01:23, , 32F
05/08 01:23, 32F
推
05/08 01:39, , 33F
05/08 01:39, 33F
推
05/08 06:34, , 34F
05/08 06:34, 34F
推
05/08 11:27, , 35F
05/08 11:27, 35F
推
05/08 11:29, , 36F
05/08 11:29, 36F
→
05/08 11:29, , 37F
05/08 11:29, 37F
推
05/08 14:04, , 38F
05/08 14:04, 38F
→
05/10 08:17, , 39F
05/10 08:17, 39F
討論串 (同標題文章)