自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

以人為本的程序的設計

開發(fā) 架構
軟件要越來越人性化,就要代替人干很多事情。軟件干的事情越多,程序設計就越來越復雜。程序越來越復雜,Programer 就有義務使程序盡可能的 Simple。

軟件要越來越人性化,就要代替人干很多事情。軟件干的事情越多,程序設計就越來越復雜。程序越來越復雜,Programer 就有義務使程序盡可能的 Simple。

當然,這個 Simple 并不是簡化需求來使代碼量減少,而是運用智慧,使代碼達到“繁而不亂”的效果。

對,繁而不亂,這是藝術!

為什么要求代碼“繁而不亂”?這要從代碼的使用角度說起。

代碼,說白了,是一種人與計算機交互的語言,它的使用對象有兩個:計算機,和人。

語言的作用是傳遞信息,而語言最根本的原則就是便于理解。

做為計算機語言,特別是現(xiàn)在流行的這些高級計算機語言,能不能被計算機閱讀和理解,強大的開發(fā)工具隨時都會告訴你。而這些語言能不能被活生生的人類理解,這就是人們自己的事兒了。

有些人堅定的認為,代碼寫出來就是給計算機執(zhí)行的,其它問題一概不管。這倒干脆,不過這是非常危險的。因為代碼不只是給計算機運行的,還有一個重要的作用就是給人閱讀的。至少,你寫完代碼需要自己 Debug 一下吧……

其實,自從有了面向?qū)ο笳Z言,實現(xiàn)代碼的繁而不亂已經(jīng)非常的 Easy 了。不光 Easy,而且還顯得是那么的優(yōu)雅。

語言都是相通的,設計者們在設計計算機語言的時候賦予了它太多人類語言的特征。所以,設計一個優(yōu)秀的程序,只需要好好理解我們平時所講的話,直接用計算機語言表達出來,就絕對是非常棒的程序。

怎么把人類語言翻譯成計算機語言?簡單來講,注意以下兩點就行了:

  1.  所有名詞(代詞),翻譯成屬性
  2.  所有動詞,翻譯成方法

舉個簡單的例子,拿我們平時最常說的一句話,來翻譯一下:“我看你妹”。簡單的四個字,三個稱謂(代詞),一個動詞。翻譯成計算機語言,就是:

  1. 我.看(你.妹)  I.See(You.Sister) 

I 的行為 See,對象是 You 這個對象的 Sister 屬性。我不管 You 的 Sister 屬性是誰,叫什么。當然,如果 You 的 Sister 屬性為空,即你沒有妹妹,那么 See 這個方法就沒法執(zhí)行了,應該直接跳出。(**8.26 9:49添加該段**)

怎么樣?是不是對整個業(yè)務邏輯一目了然?

基于這個思想,現(xiàn)實中的一切都可以使用面向?qū)ο蟮乃枷雭砦溲b。

屬性的設計比較簡單,許多人往往會糾結于程序中的方法的設計,比如代碼過長的大方法,還有邏輯過于復雜的笨方法。下面拿一個稍復雜一點的業(yè)務來實現(xiàn)一下以人為本的方法設計。

比如,今天早上我一覺醒來,睜開眼,開始計劃今天的安排?;谌祟惖淖匀皇姑?,和我個人的社會責任感,今天我可能要干很多事情。首先我要起床、洗漱、吃早點、上班、工作、吃飯、工作、下班、吃飯,可能我還要下班回家的路上去一趟超市買點東西,晚上吃完飯再嗨一會兒(可以打打牌,上上網(wǎng),看看電視),最后睡覺。這樣,今天就結束了。所以,我的大腦里立刻就會出現(xiàn)下面這樣一份“今日計劃”清單:

  1. 起床
  2. 洗漱  
  3. 吃飯  
  4. 上班  
  5. 工作  
  6. 吃飯  
  7. 工作  
  8. 下班  
  9. 買東西  
  10. 吃飯
  11. 休閑  
  12. 睡覺

如果,我把我今天的計劃設計成一個程序,“今日計劃”的執(zhí)行方法里只寫這 12 行代碼,無論誰來看,都能一目了然的知道我今天都要干些什么事情了。至于你起床時是把被子用手掀開還是用腳蹬掉,起床穿衣服時是先穿褲子還是先穿內(nèi)褲,這是你做“今日計劃”的時候不去考慮的問題,也是跟本不用你詳細考慮的問題,也是閱讀你代碼的人不會直接關心的問題,這些都屬于“起床”這個子業(yè)務的任務,或者是“起床”這個業(yè)務的子業(yè)務。比如,我的“起床”方法就這樣設計:  

  1. 伸個懶腰
  2. 掀開被子
  3. 坐起來
  4. 穿衣服
  5. 坐到床邊上
  6. 穿鞋子
  7. 下床

同樣,如果誰想了解我起床的過程,看這幾行代碼,還是一目了然。同樣,穿衣服的過程都設計到“穿衣服”方法里,有條有理。

另外,至于吃完晚飯的休息時間,我可能打牌,可能上網(wǎng),可能看電視,具體的決定,是看到時我具體的心情,所以我做計劃時安排的是一個“休閑”時間,在這個休閑時間里,可以獲取我的心情狀態(tài),根據(jù)不同的狀態(tài),來執(zhí)行不同的休閑方式。

不過,具體的打牌、上網(wǎng)、看電視,它們不是“休閑”方法的邏輯,所以也會單獨的封裝成一個方法來處理。

以這種方式來分的話,整個程序邏輯清楚,結構分明。更重要的是,讓讀者易于理解。根本不會存在難理解的“大方法”和業(yè)務復雜的“笨方法”。

最后,我極力的不贊成使用數(shù)字來限制程序,非常不喜歡有些人拿出一些所謂的“科學”數(shù)字來做為編碼準則。例如:人類同時關注的事情不超過三個,人類同能夠同時處理的信息不超過七個,以及過于濫用的二八原則,還有頁面大小25行等等。人類的腦袋差別太大了,這世界上的特殊情況太多了,以及各個開發(fā)人員顯示器分辯率也差別太大了,所以任何用固定數(shù)字來做為行為準則的,都有些失之偏頗了。真的完全不建議。(除非你是項目經(jīng)理,在制定項目規(guī)范)

注:由于規(guī)定,文章內(nèi)容個別用詞已經(jīng)更改。

原文鏈接:http://www.cnblogs.com/zhhh/archive/2012/08/26/2657088.html

責任編輯:林師授 來源: 博客園
相關推薦

2009-03-04 15:04:52

IT

2022-12-05 10:14:44

CIO以人為本

2025-03-20 13:48:14

2011-05-20 09:41:15

2012-08-27 13:06:36

2011-07-06 13:42:42

Scrum

2022-12-05 17:21:50

以人為本IT管理CIO

2022-10-12 16:55:32

盛業(yè)以人為本招聘

2012-05-16 14:30:42

高效、便捷

2022-04-14 10:33:21

盛業(yè)人力資源供應鏈

2015-10-26 10:08:21

互聯(lián)網(wǎng)+智慧醫(yī)療

2020-02-27 12:20:20

RSAC騰訊安全

2021-08-10 15:40:13

用友YonBIP人力

2021-07-07 10:47:46

物聯(lián)網(wǎng)區(qū)塊鏈安全硬件

2021-04-14 17:34:35

辦公

2014-06-03 10:21:00

2023-02-28 11:21:38

CISOCIO

2012-10-25 11:06:06

云計算架構師峰會

2011-07-19 10:32:22

云計算信息化
點贊
收藏

51CTO技術棧公眾號