幾年前,我就迷上了喬治·馬丁的《冰與火之歌》,先是看了HBO拍攝的電視劇,被其中宏大的場面以及演員們精彩的表演所吸引。接下來又買了陸續出版的幾套書,甚至還收藏了發售的五套一共十五枚徽章,前幾天還和女兒一塊兒,給你們在微信的朋友圈裏面秀了一下。程序員
前幾天,突然以爲,咱們的軟件編寫出來也應該是一首冰與火之歌。微信
有人必定會說,是否是要給最終用戶冰火兩重天的感受啊?在編寫以前,把將要實現的東西說的天花亂墜,十全十美,差一點兒就要把它說成是超越什麼微軟、IBM等等大公司編寫的軟件的曠世之做,讓用戶對其充滿了期待,那簡直就是他的救命稻草,有了新的系統軟件,工做效率提高不在話下,大量工做能夠在一瞬間完成。但作好了交給用戶以後,卻讓人大失所望,迫不得已地說出一句話:「這東西不是我想要的啊!」這仍是好的,還有一些系統,隨便點擊幾下,崩潰了,報錯了,彈出一大堆用戶看不懂的天書文字,就像是一大堆冰塊兒,砸在用戶的頭上,頭暈目眩,鮮血狂噴……設計
Stop!我所說的冰與火可不能是上面的那個樣子,若是都那樣的話,廣大的程序員朋友們一定會繼續處在水深火熱之中了。產品
那麼賣了半天關子,咱們的冰與火之軟件到底應該是什麼樣子的呢?效率
先來講冰,我想說的是咱們編寫的軟件應該像是冰山同樣。冰山的特色就是在水面之上的部分只佔整個冰山的一小部分,而更多的內容都隱藏在水面之下。咱們的軟件也應該這樣,暴露給用戶使用的只是很簡單的界面和操做,甚至說應該是傻瓜級別的,用戶甚至不須要說明書就能夠直接使用,並且操做也很是少,甚至只是須要點點按鈕,全部的工做就完成了。這並不意味着咱們這些程序員沒有作有價值的工做,而是說咱們作的更多工做都在「水面之下」,比方說:當進入一個界面的時候,咱們能夠根據當前的時間、所處地點、環境等等因素,推測出用戶可能輸入的內容,用戶在進入以後,若是可以說:「哇,這個系統好聰明啊!」(或者好智能啊,好體貼啊之類的話),那麼就說明你已經成功創造了一個比較傻瓜級的系統界面了。再比方說,用戶在沒有系統以前,可能須要作不少重複、機械化的工做來處理一件工做,而處理這類工做正是軟件系統的擅長之處啊!因此咱們能夠把那些工做都寫到程序之中,用戶只須要倒一杯茶,而後清閒地打開軟件,點擊按鈕,只聽到計算機的硬盤「吱吱」地轉上一陣,咱們彷佛看到CPU發出了一道閃光,而後結果就出來了,用戶的那杯茶剛喝了一口。古有關公溫酒斬華雄,現有咱們的程序在用戶茶還沒喝完一口的時間內,就完成了原本可能須要一個小時纔可以搞定的工做,豈不是一件很讓人快樂的事情嗎?軟件
再來講火,以前一談到計算機、程序、系統什麼的,都會給人一種冷冰冰的感受。就連早期科幻小說裏面的機器人也是同樣啊,方方的腦殼,方方的身體,方方的胳膊腿,還有帶有奇怪音調的發音,一看、一聽,就知道是一個機器人。而在近期的科幻小說或者科幻影視中,機器人再也不是那樣了,比方說最近看的《機器之心》裏面,機器人不只僅和人長得沒有什麼區別(電視劇裏面的人可以區分真人和機器人,但是我根本就沒看出兩者之間有什麼區別),並且還具有了人的情感,這實在是太厲害了。程序
咱們的程序也是同樣,以前,用戶一提到軟件系統,就會想到一大堆專業術語,讓人摸不着頭腦,找不到手腳,什麼菜單,什麼按鈕,什麼奇奇怪怪的列表框,說出來的話(提示信息)也只有專業的IT人員纔可以看懂,比方說:您的數據插入失敗,請與管理員聯繫。因而,用戶就明白了,在這個系統背後,有一個管理員,咱們什麼問題均可以去找他。等找了以後才發現,這個管理員根本就不知道在哪裏,就算找到了,也會和你說上半個小時,而後把你搞暈以後,問題仍是沒有解決。數據
那麼,咱們應該爲本身編寫的程序作些什麼呢?Apple公司的電子產品都考慮到了用戶的情感,你們看到設計的樣子,再使用iOS系統,一會兒就會喜歡上它,由於它讓人能夠感受到方便。咱們的系統也同樣,其實大能夠不去賣弄本身學過的專業知識,而把提示信息改爲與用戶現實工做相關的話,給用戶看到的內容不只僅是有用,並且很是像是一我的所說的話,那麼使用系統的用戶必定會有徹底不一樣的感覺。若是說咱們可讓系統瞭解到用戶操做的心情,而後在合適的時候,作出「熱情如火」的響應,那麼用戶必定會喜歡上這個系統。top
其實,做爲讀者的你必定也看明白了,我在這裏所說的冰與火併非要先給用戶一盆火,再潑一盆冰水(那樣弄很差會讓用戶熱脹冷縮碎掉的),而是要在設計上既像冰山同樣把更多的工做悄悄地幫用戶作好,還要在和用戶交互的時候有火同樣的熱情,這纔是冰與火之軟件。計算機