成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

以人為本的程序的設計

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

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

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

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

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

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

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

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

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

其實,自從有了面向對象語言,實現代碼的繁而不亂已經非常的 Easy 了。不光 Easy,而且還顯得是那么的優雅。

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

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

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

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

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

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

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

基于這個思想,現實中的一切都可以使用面向對象的思想來武裝。

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

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

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

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

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

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

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

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

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

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

注:由于規定,文章內容個別用詞已經更改。

原文鏈接: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

盛業以人為本招聘

2012-05-16 14:30:42

高效、便捷

2015-10-26 10:08:21

互聯網+智慧醫療

2022-04-14 10:33:21

盛業人力資源供應鏈

2021-08-10 15:40:13

用友YonBIP人力

2020-02-27 12:20:20

RSAC騰訊安全

2021-07-07 10:47:46

物聯網區塊鏈安全硬件

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

云計算架構師峰會
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91成人在线| 精品真实国产乱文在线 | 亚洲精品国产偷自在线观看 | 日日人人 | 99热在线播放 | 亚洲精品久久久久久久久久久久久 | 四虎网站在线观看 | 国产一区中文字幕 | 久久久久久亚洲精品不卡 | 一区二区三区在线观看视频 | 欧日韩在线 | 成人国产精品一级毛片视频毛片 | 亚洲视频在线免费观看 | a级在线免费观看 | 天堂一区 | 亚洲一二三区精品 | 久久综合av | 黄色大片免费网站 | 久久国产欧美一区二区三区精品 | 国产9999精品 | 国产精品1区2区 | 国产成人精品高清久久 | 成人小视频在线免费观看 | 自拍视频国产 | 日韩在线欧美 | 欧美日韩精品亚洲 | 91精品国产91久久久久久吃药 | 中文字幕日韩专区 | 午夜精品久久久久99蜜 | 亚洲天堂中文字幕 | 亚洲国产精品99久久久久久久久 | 国产成人亚洲精品 | 国产激情视频在线观看 | 国产精品伦理一区二区三区 | 久久99精品久久久水蜜桃 | 在线观看国产www | 欧美日韩专区 | 一区二区三区欧美 | 欧美电影免费观看高清 | 国产亚洲一区二区精品 | 欧美xxxx色视频在线观看免费 |