隱私權政策

搜尋此網誌

技術提供:Blogger.

關於我自己

我的相片
目前從事軟體相關行業,喜歡閱讀、健身、喝調酒。習慣把遇到的問題記下來,每天做一些整理方便自己以後查。 Python、Rust、Kotlin等程式語言皆為自學,目前比較著重在Rust語言,歡迎一起討論。

2024年7月25日 星期四

【讀後心得】Don't Let Me Think - 不要讓使用者有思考的機會


Don't Let Me Think

  最近看了一本有趣的書:Don't Let Me Think,如同字面上所講的,不要讓我思考。當使用者在瀏覽頁面的時候要預設使用者甚麼都不會,並且工程師的責任就是讓他們看到一些圖表按鈕就該會使用網站。當使用者按下超過三個按鈕才可以找到自己想要的頁面的時候,那他們會有很高的機率直接離開這個網頁。不要預設使用者甚麼都會,預設所有使用者都是傻子,並且確保自己設計出來的東西可以讓傻子馬上學會。


  其實這本書主要是在講網站要怎麼製作才比較好,雖然我主要不是做前端的,但我覺得很多觀念後端都可以用到。之前我在做測試的時候,就有說過使用者無奇不有,最好把使用者都當作甚麼都不會的電腦新手,所有東西都該是老嫗能解。最近再讀Clean Code和Don't Let Me Think就有很深的體悟,只是一個在講後端另一個在講前端。


與後端相似之處

  根據這本書,我大致上有幾個結論,因本身是後端工程師,看到許多地方總會覺得在後端也該這樣做。

1. 我們通常不會一個字一個字看網頁,是掃過去的。

一般人看一個網頁都是快速地掃過去,為了最準確地找到想要的資訊。如同程式碼一樣,不可能一個字一個字看,一定是根據結構、函式等等快速的瞭解這段程式碼在座甚麼。

2. 大部分情況下,我們不會選擇最佳選項,而是選擇最合理選項

我們不是消防員、不是棋手,並不需要無時無刻選擇最好的選項,而是要讓使用者滿意。對使用者來說,他們是非常忙碌,對他們來說只要獲得想要的資訊就好,其他的他們根本不在乎。況且再做最佳選擇的時候總會一而再再而三修改,但這非常沒意義而且耗時。以後端來說,我自己會認為比起效能,讓別人看懂程式碼更重要。很多時候為了拚一點點效能而花了好幾天,最後結果還不易維護,如果不是極端狀況,不如讓程式碼簡潔易懂。

3. 不要輕易改變習以為常的事情

傳統是你的夥伴。有些大家已經習以為常的事情,例如LOGO就該放在畫面左上角。想創新是每個人都有的想法,但不要輕易改變使用者已經習慣的行為,除非這個東西的學習曲線很簡單,否則只會造成大家的麻煩。

4. 假定有罪原則

對網頁要假設他混亂、讓人無法看懂,並且我自己會習慣假設使用者都是電腦新手完全看不懂。我自己在寫後端程式也是這樣想,我想要盡可能讓新手也可以看懂我的程式碼。通常最常看程式碼的人還是自己,寫得越容易讓人看懂也是對自己好。

5. 一定要測試

不管是打程式還是做網頁,一定要有測試,只要有測試都比完全不測試好。測試應該是要邊做邊測試,而不是所有東西做完才一次測試,如同單元測試一樣,寫完一個function就盡量有一個相對應的單元測試。


前端技巧

1. 要吸引使用者注意

常見有幾個方法

  • 使用多個標題(h1 h2 h3)
  • 短句子,沒人會去看長得要命的說明
  • 要有清單
  • 確保使用者得到的資訊
  • 確保使用者注意到(?)

2. 不該出現快樂談話以及教學

快樂談話指得是歡迎頁面或者是網站的歷史,我根本不需要一個歡迎我的畫面,我只想要馬上開始使用網頁,網站歷史也是,如果非必要真的不會有人想看,要多思考哪些頁面事使用者會馬上用到的,而不是把網站寫大造成讀取困難。
教學則是另一個大忌,網站應該馬上讓人看懂,而不是還要另外做一個教學。就像後端工程師有些人很喜歡寫一大堆註解,但那些東西要看懂真的得花很多時間,不如做得簡潔一點讓人馬上了解。

3. 要有搜尋功能。

網站總會越做越大,有搜尋功能會對使用者方便很多。

4. 應該要明確標出使用者目前位置

意思是使用者得要確切的知道自己目前在哪個頁面,常見的像是蝦皮會用類似 "衣服>男士>短袖" 這種東西表示。

5. 要有一些不太大眾化的小標語,讓人馬上知道在做甚麼

取一個好的口號比較容易讓人記住。

6. 要有手機電腦頁面切換功能

通常做網頁都會預設使用者是用電腦瀏覽,但當有空閒時間也會想到使用者可能會使用手機,因此製作出手機的頁面。但通常電腦的頁面還是做得更好,以防萬一要給使用者有切換的按鈕。


小結論

  
  這本書的內容講了很多前端的東西,我覺得有在做前端或是曾經嘗試做前端都建議可以看一下。之前我有曾經想要做一個網頁,但做起來總覺得很不像平常瀏覽頁面的感覺,也說不出哪裡奇怪。看了這本書才知道很多小地方我沒有做好,才會讓使用者的體驗那麼糟糕。有些事情有可能是大家本能的會知道,但沒有整理成一個明確文字,就這幾點來說Don't let me think是可以考慮讀的。


0 comments:

張貼留言