偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

軟件開(kāi)發(fā)前期設(shè)計(jì)時(shí)的注意事項(xiàng)

開(kāi)發(fā) 項(xiàng)目管理
我們將談到的是什么樣的方案才是好的設(shè)計(jì)方案?如何才能設(shè)計(jì)出一個(gè)好的設(shè)計(jì)方案?這些問(wèn)題其實(shí)就是軟件開(kāi)發(fā)前期設(shè)計(jì)時(shí)應(yīng)該注意的相關(guān)事項(xiàng)。

說(shuō)起軟件設(shè)計(jì),我們可能每個(gè)人都做過(guò),但是什么樣的方案才是好的設(shè)計(jì)方案?如何才能設(shè)計(jì)出一個(gè)好的設(shè)計(jì)方案?在設(shè)計(jì)過(guò)程中需要注意哪些呢?不要總是說(shuō):低耦合、可維護(hù)性、可擴(kuò)展性、簡(jiǎn)易性、可重用性等,本文試圖另一個(gè)角度出發(fā),帶著前面的這些問(wèn)題,使大家能明白那些問(wèn)題的答案,并與大家一起探討。

什么樣的方案才是好的設(shè)計(jì)方案?

當(dāng)我們完成了一個(gè)良好的設(shè)計(jì)方案后,我們回頭再仔細(xì)分析是什么因素影響了我們的思路,使我們最終完成(確切的說(shuō)是選擇了)了這個(gè)設(shè)計(jì)方案(而不是另一個(gè)),我們會(huì)發(fā)現(xiàn)這些因素是:用戶功能性的需求、技術(shù)性能上的要求和研發(fā)成本(或能力)的制約,當(dāng)然其實(shí)還有一些其它因素如:客戶主觀上的要求、審美或商務(wù)因素、向前兼容性要求等,不過(guò)這些因素多半是一些非技術(shù)性因素,我們?cè)诖瞬蛔鲞^(guò)多討論;能否很好的滿足這些因素就決定了一個(gè)設(shè)計(jì)方案是否是一個(gè)好的設(shè)計(jì)方案,所以我們?cè)谠O(shè)計(jì)之初就必須對(duì)這些因素加以充分的考慮。

如何才能設(shè)計(jì)出一個(gè)好的設(shè)計(jì)方案?

但事實(shí)上,基本上沒(méi)有一個(gè)方案是可以每個(gè)因素都能***滿足的,一個(gè)好的設(shè)計(jì)方案,往往是一個(gè)平衡的結(jié)果,這也是為什么我們?cè)谟懻撛O(shè)計(jì)方案是總是可能爭(zhēng)論不休的原因,因?yàn)椴煌娜藦牟煌慕嵌瘸霭l(fā)都可以得到他認(rèn)為好的一個(gè)方案,人們總是會(huì)有各自的理由,而且那些理由都是有道理的,但請(qǐng)大家記?。阂粋€(gè)好的設(shè)計(jì)方案,往往是一個(gè)平衡的結(jié)果。從某種意義上說(shuō)能否做好平衡是決定一個(gè)方案是否是好的方案的關(guān)鍵,尤其是對(duì)那些復(fù)雜的大的設(shè)計(jì)方案。

平衡的藝術(shù)

但怎樣才能做好平衡呢? 答案顯然不是:“ 一碗水要端平 ” 。有一個(gè)著名的原理叫 28 原理,它同樣也適合我們軟件開(kāi)發(fā)的規(guī)律,我們的百分之 80 的精力設(shè)計(jì)和開(kāi)發(fā)的部分只給我們帶來(lái)了百分之 20 的回報(bào),或者說(shuō),我們百分之 80 的回報(bào)只是我們的百分之 20 的努力得來(lái)的,這個(gè)原理告訴我們,我們?cè)谄胶鈺r(shí)要抓住重點(diǎn),那些非重點(diǎn)的部分,如果必要可以舍棄,舍棄它們可能會(huì)帶來(lái)更大的價(jià)值。下面我們先分析一下前面提到的幾個(gè)關(guān)鍵因素來(lái)仔細(xì)討論下平衡的藝術(shù)。

用戶功能性的需求

毫無(wú)疑問(wèn),我們的軟件最終的目的就是為了要滿足用戶的需求,由于我們要設(shè)計(jì)的是一個(gè)產(chǎn)品型的軟件,這就決定了我們的需求不是很好明確,面可能比較廣,甚至有些需求可能還是我們自己想象出來(lái)的,但正因?yàn)槿绱宋覀儾庞衅胶獾谋匾囅肴绻覀冏龅氖且粋€(gè)項(xiàng)目,那只需要按照甲方的要求完成即可,合同上甚至很明確要求了,此時(shí)也沒(méi)有多少需要平衡的了。一個(gè)產(chǎn)品型的軟件,要把百分之80 以上用戶都用的功能進(jìn)行良好的設(shè)計(jì)做到易用好用性能出眾并投入大量人力研發(fā),而那些 50% 用戶會(huì)用到的需求就可以少投入些人力與時(shí)間,那些百分之 5 用戶才可能會(huì)用的功能且需要耗費(fèi)大量人力時(shí)間的甚至可以舍棄不做。

但平衡也不僅僅是在與選擇做與不做某個(gè)功能,更在于怎么做某個(gè)功能,一般對(duì)于用戶的需求我們會(huì)有下面幾個(gè)實(shí)現(xiàn)方式:

1  實(shí)現(xiàn)一個(gè)簡(jiǎn)單易用、設(shè)計(jì)良好、100% 滿足用戶需求的界面或功能

2  通過(guò)一些界面上的選項(xiàng)設(shè)置來(lái)實(shí)現(xiàn)用戶的需求

3  通過(guò)手工修改一些配置文件來(lái)實(shí)現(xiàn)用戶的需求(這種實(shí)現(xiàn)方式可能需要的研發(fā)資源只占***種實(shí)現(xiàn)方式的1% )

4  通過(guò)腳本來(lái)實(shí)現(xiàn)用戶的需求

5  通過(guò)插件或定制開(kāi)發(fā)來(lái)實(shí)現(xiàn)用戶的需求(后2 種方式其實(shí)就是說(shuō)現(xiàn)在不考慮這個(gè)需求,以后就算有了我們能支持即可)

不同的實(shí)現(xiàn)方式需要投入不同的量級(jí)的研發(fā)資源,從上至下占用研發(fā)資源越來(lái)越少,這就是我們需要做平衡的地方。

技術(shù)性能上的要求

用戶總希望在軟件界面上執(zhí)行任何操作都能立即得到結(jié)果、希望系統(tǒng)能支持越來(lái)越多的在線并發(fā)、希望系統(tǒng)能全年不停機(jī)運(yùn)行不出任何錯(cuò)誤,希望系統(tǒng)能兼容各種平臺(tái)…… ,所以對(duì)我們的系統(tǒng)有很多性能上的要求,要求我們必須支持集群、各種高速緩存、多語(yǔ)言、支持事務(wù)操作等,有些性能要求是必須在設(shè)計(jì)之初加以認(rèn)真考慮的,因?yàn)閺囊酝慕?jīng)驗(yàn)來(lái)看,如果出于研發(fā)成本的考慮,系統(tǒng)一開(kāi)始沒(méi)有考慮集群、多語(yǔ)言、事務(wù),而在以后系統(tǒng)成型后再予以考慮,那會(huì)往往付出更大的代價(jià),這種代價(jià)有時(shí)是傷筋動(dòng)骨的。

同樣是滿足用戶功能上的需要,一個(gè)實(shí)現(xiàn)需要投入大量研發(fā)資源,但程序效率很高,而另一個(gè)只需要少量的研發(fā)資源,但程序效率稍差,此時(shí)該如何平衡呢?相信大多數(shù)人都能做出正確的選擇,要綜合考慮:目前可用的人力資源數(shù)量、需要投入的研發(fā)資源的差異,模塊的使用頻度的因素;我經(jīng)常說(shuō),對(duì)于客戶端應(yīng)用來(lái)說(shuō)在用戶的一次界面操作中只執(zhí)行一次的函數(shù)就可以少花點(diǎn)時(shí)間實(shí)現(xiàn),因?yàn)?ms 完成一個(gè)操作的執(zhí)行和 300ms 完成一個(gè)菜單的執(zhí)行其實(shí)對(duì)用戶來(lái)講是差別不大的,但這個(gè)并不適用與服務(wù)器端應(yīng)用,服務(wù)器端應(yīng)用還需要考慮到在線人數(shù),如果能 3ms 完成就能支持更多的在線用戶。

研發(fā)成本(或能力)的制約

這個(gè)因素往往是我們最應(yīng)該多考慮,但是經(jīng)常缺忽視的一個(gè)因素。

以一個(gè)工程師一年開(kāi)發(fā)3 個(gè)模塊和一年讓他開(kāi)發(fā) 10 個(gè)模塊來(lái)做個(gè)比較,只開(kāi)發(fā) 3 個(gè)模塊時(shí),他基本上可以做到讓每個(gè)模塊完成到 90 分以上,包括代碼質(zhì)量、測(cè)試單元、文檔等,還能有些時(shí)間學(xué)習(xí)和研究些新技術(shù),并能保持一個(gè)愉快的心情高效率的工作下去;但是如果一年讓他開(kāi)發(fā) 10 個(gè)模塊,他可能只能勉強(qiáng)做到讓每個(gè)模塊完成 60 分以上,代碼可能有考慮不周全留下隱患、測(cè)試覆蓋率不高、文檔欠缺,終日忙于趕進(jìn)度沒(méi)時(shí)間充電,工作疲憊效率低下。

多半的研發(fā)工程師是樂(lè)觀的,在開(kāi)始的時(shí)候自信滿滿,過(guò)低的估計(jì)了研發(fā)需要的時(shí)間,我經(jīng)常說(shuō),要把一個(gè)模塊完成到60 分可能 1 個(gè)人月,要完成到 80 分可能就要 3 個(gè)人月,要完成到 90 分以上可能需要 8 個(gè)人月,這個(gè)增長(zhǎng)的比例并不是直線性的而是拋物線形的,所以研發(fā)周期往往難以估計(jì),我們必須為將來(lái)準(zhǔn)備足夠的緩沖時(shí)間,某種意義說(shuō),越多越好。

所以這也正是在上面的一些平衡過(guò)程中,有一些因素要讓位于研發(fā)資源的投入的重要原因,一個(gè)為將來(lái)的研發(fā)困難做好了充分準(zhǔn)備的設(shè)計(jì)方案才能算是一個(gè)好的方案。

在設(shè)計(jì)過(guò)程中需要注意哪些呢?

從需求出發(fā)

從用戶角度理解的需求出發(fā)考慮總是沒(méi)錯(cuò)的,最忌設(shè)計(jì)時(shí)只考慮技術(shù)方面的問(wèn)題,當(dāng)然技術(shù)方面的問(wèn)題也必須予以考慮,但前提是必須對(duì)需求***充分的了解和分析,從需求出發(fā)并不是說(shuō)需求***,需求有時(shí)也必須讓位于其他的一些因素,要做好平衡。

從一開(kāi)始就考慮那些影響面很廣的技術(shù)要求

這些因素很可能嚴(yán)重的影響設(shè)計(jì),必須提前予以研究,這種研究可以是脫離需求的零散的,有時(shí)甚至可以寫(xiě)一些測(cè)試代碼,但最終必須還是從需求出發(fā),在充分的了解了各種技術(shù)點(diǎn)之后,再?zèng)Q定自己的最終設(shè)計(jì)

充分考慮研發(fā)資源成本

再好的設(shè)計(jì)沒(méi)有付諸實(shí)施的資本也不行,所以還是那句話,要做好平衡。

【編輯推薦】

  1. 軟件項(xiàng)目管理總體流程設(shè)計(jì)
  2. 軟件開(kāi)發(fā)中項(xiàng)目管理的注意事項(xiàng)
  3. 如何在項(xiàng)目管理中減少團(tuán)隊(duì)的啟動(dòng)時(shí)間
責(zé)任編輯:彭凡 來(lái)源: Javaeye
相關(guān)推薦

2023-01-14 09:49:11

2009-06-25 14:41:06

JavaBean

2009-06-11 17:52:08

JavaBean

2015-08-27 17:08:32

綜合布線

2009-12-15 10:10:38

VS 2008開(kāi)發(fā)

2011-05-26 11:22:04

SEO

2009-12-16 16:02:30

Visual Stud

2024-11-15 10:00:00

Python爬蟲(chóng)開(kāi)發(fā)

2011-03-04 16:09:48

數(shù)據(jù)庫(kù)優(yōu)化設(shè)計(jì)注意事項(xiàng)

2011-07-25 17:48:10

iPhone 內(nèi)存

2012-12-17 09:58:56

視頻網(wǎng)絡(luò)解決方案

2023-11-08 17:19:21

平臺(tái)工程架構(gòu)設(shè)計(jì)

2009-12-15 17:47:17

VSIP

2011-05-11 17:09:03

jsp

2017-09-22 07:30:58

IDC機(jī)房綜合布線

2011-07-21 15:40:24

iPhone 內(nèi)存管理 對(duì)象

2011-08-01 12:53:25

iPhone 多線程 線程

2021-11-16 10:35:59

云計(jì)算云計(jì)算環(huán)境云應(yīng)用

2010-11-26 16:27:01

MySQL使用變量

2011-09-26 11:02:10

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)