? 亚洲欧美一区二区三区久久_如何做好系統設計?(闡述系統設計的一些原則)-天津九安特機電工程有限公司

亚洲女同成aV人片在线观看|亚洲www啪成人一区二区麻豆|亚洲国产中日韩精品综合|亚洲国产成人精品一级片|亚洲无码在线视频免费

?
×

打開(kāi)微信“掃一掃”,打開(kāi)網(wǎng)頁(yè)后點(diǎn)擊屏幕右上角分享按鈕

×

打開(kāi)微信“掃一掃”,關(guān)注我們官方微信^_^

夢(mèng)創(chuàng  )義官方微信

如何做好系統設計?(闡述系統設計的一些原則)

2026-05-04 1724

在進(jìn)行系統設計時(shí),何做好系不僅要考慮軟件的??統設統設功能性需求,還要考慮非功能性需求,計闡計比??如軟件的述系性能(Performance)、可擴展性(Scalability),原則系(xi)統的何做好系穩定性(Reliability)、??部署(Deployment)和更新(Upgrade),統設統設可維護性(Maintainability),計闡計版本的述系管理,系統的原則安全(Security),界面的何做好系友好程度可用性(Usability, User experience)等。要想覆蓋所(′_ゝ`)有需求,統設統設實(shí)現一個(gè)簡(jiǎn)單而優(yōu)秀的計闡計系統,可謂艱難。述系

大道至簡(jiǎn),原則合適最好

什么是優(yōu)秀的系統設計? 這個(gè)問(wèn)題頗有爭議,但幾乎每個(gè)軟件工程師和(′?_?`)架構師都追求優(yōu)秀的系統設計。當然,系統設計并不代表結果,系統設計只是架構師或者帶頭程序員的工作,??優(yōu)秀的系統設計必須經(jīng)由良好的項目管理和團隊努力,經(jīng)過(guò)分析需求、設計、開(kāi)發(fā)、測試、分發(fā)、維護,以及迭代或重構的過(guò)程。中間哪個(gè)環(huán)節出了問(wèn)題,再好的設計都將功虧一簣。

可能每個(gè)人都對自己設計的系統很自信很滿(mǎn)意,ヽ(′ー`)ノ但“實(shí)踐是檢驗真理的唯一標準”。如果一個(gè)系統設計經(jīng)過(guò)實(shí)踐證明,大家(指客戶(hù)或用戶(hù))公(gong)認為優(yōu)秀的系統,那就是一個(gè)優(yōu)秀的系統設計。

大道至簡(jiǎn),適合的就是最好的。其實(shí)設計并沒(méi)有那么嚴重,適合的就是最好的,簡(jiǎn)單最好。軟件也是一種服務(wù),這個(gè)系統設計出來(lái)就是為了服務(wù)一些用戶(hù)還沒(méi)有被滿(mǎn)足的需求,如果你能夠恰好滿(mǎn)足了這些(xie)沒(méi)有被滿(mǎn)足的需求,而且能(neng)以比較低的代價(jià)提供這種服務(wù),那這就是最好的系統。因為系統設計的來(lái)源是商業(yè)需求,而商業(yè)追求利益最大化。你的軟件和┐(′д`)┌服務(wù)必須比別人功能更加先進(jìn),更加好??用,對變化的商業(yè) 需求反??應更加靈活,??推出或者升級的速度更快,開(kāi)發(fā)和維護成本更低,才能證明這個(gè)系統設計的優(yōu)秀?性。所以系統簡(jiǎn)單,不(bu)能說(shuō)明你的系統不優(yōu)秀,說(shuō)不定設計者有化繁為簡(jiǎn)的過(guò)人能力;系統復雜,功能繁多,也不能說(shuō)明系統優(yōu)秀。

技 術(shù)人員常常犯的錯誤是技術(shù)至上,技術(shù)第一,不計成本的去??設計和開(kāi)發(fā)無(wú)比先進(jìn)和靈活的系統,不計風(fēng)險的去采用最新的沒(méi)經(jīng)過(guò)實(shí)用的新技術(shù)。所以作為架構師,不僅僅需要精通(′?_?`)技術(shù),更需要良好的溝通協(xié)調,去了解業(yè)務(wù)和客戶(hù)真正的需求,真正站在客戶(hù)利益角度和最終用戶(hù)利益角度思考問(wèn)題和設計系統,在各種選擇中做出權 衡。

極限編程人??士的一個(gè)響亮的口號是“You aren’t going to need it”。這其中包含的核心意義就是不要為了考慮程序的可擴展性,把目前不需要的功能加入到軟件中來(lái)。不要過(guò)度設計。抓住重點(diǎn),合適就好。比如根據二八原則,80%的用戶(hù)只會(huì )使用20%的功能,??而這2ヽ(′▽?zhuān)?/0%的功能就是客戶(hù)最關(guān)注的最需要的功能,也就是軟件或服務(wù)的“賣(mài)點(diǎn)ˉ\_(ツ)_/ˉ“,系統設計時(shí)必須集中精力和充分考慮到這部分需求。如果把精力放在某些花哨的功能上,既不 重要,也沒(méi)必要,那就是過(guò)度設計。要想避免過(guò)度設計,??我覺(jué)得可以遵循敏捷開(kāi)發(fā)方式來(lái)做。盡ヽ(′▽?zhuān)?ノ可能的簡(jiǎn)單??設計,當滿(mǎn)足不了時(shí),重構;保證產(chǎn)品是??可運行的,不斷的加入新的特征;產(chǎn)品經(jīng)常性(??-)?的提交給客戶(hù)使用。

穩定壓倒一切

標題黨的風(fēng)格,但這個(gè)口號在社會(huì )上如此,(′_`)系統設計上也是如此。系統的穩定性壓倒一切,即使犧牲性能,也要確保系統的穩定。即使(shi)擴展性不強,也要保持系統穩定。即使用戶(hù)界面不友好,也不要系統不穩定。

為什么用戶(hù)這么關(guān)注穩定性?由于人們日(′;д;`)常的工作對系統依賴(lài)程度越來(lái)越多,因此系統必須可( ?ヮ?)靠。舉個(gè)例子,我想我們??都玩過(guò)CPUヾ(′▽?zhuān)??超頻吧,頻率高(╬ ò﹏ó)了確實(shí)挺爽,但如果一天死機幾次,正在干的活全部丟失,你心里還會(huì )放心踏實(shí)的工作嗎?同樣的道理,一個(gè)網(wǎng)站如果不穩定,經(jīng)常(chang)宕掉,用戶(hù)的信息和辛辛苦苦寫(xiě)的文章搞丟失,還會(huì )有人上(????)這個(gè)網(wǎng)站嗎?所以穩定性是系統設計最重要的方面。

但實(shí)施起來(lái)比說(shuō)起來(lái)困難,有時(shí)候為了實(shí)現系統靈活的擴展性,導致系統架構不穩定;也有(you)時(shí)候為了(?Д?)實(shí)現高性(xing)能,導致系統不穩定。如何???取舍和平(′ω`*)衡,不同的需求,不 同的架構師(╯‵□′)╯會(huì )做(′?`)出不同的抉擇。但個(gè)人認為穩定性放第一位,再先(╯‵□′)╯進(jìn)靈活的框架,再牛的功能,如果不夠穩定,堅決不要沒(méi)有充分測試匆忙上線(xiàn)。

系統穩定性如果獲得?除了大量充分的測試(′?ω?`)以外,在設計上必須有針對可靠性的設計,基本原則是在盡量保證各服務(wù)可靠的基礎之??上,通過(guò)一個(gè)健壯的體??系結構來(lái)確保系統能夠在硬件和軟件出錯的情況下依然平穩的運行。比如(ru)采用統一面向方面的框架,統(tong)一的異常處理、錯誤隔離、報警、容錯和恢復機制,考慮系統的冗余度,盡可能地避免單??點(diǎn)故障,盡??可能地保證一個(gè)(′_ゝ`)進(jìn)程故障都不會(huì )引起系統的(′?`)癱瘓,同時(shí)也允許系統對部分服務(wù)做升級┐(′д`)┌和維護而不影響系統繼續提供核心的服務(wù)等等??傊?,系統可靠性是系統在給定的時(shí)間間隔及給定的環(huán)境條件下,按設計要求,成功地運行程序的概率。成(cheng)功地運行不僅要保證系統能正確地運行,滿(mǎn)(╯°□°)╯足功能需求,還要求當系統出現意外故障時(shí)能夠盡快恢復正常運行,??數據不受破壞。

可擴展性,靈活性

毋庸置疑,一個(gè)先進(jìn)的系統設計具有很強的可擴展性和靈活性,因為現在的商業(yè)需求變化迅速,如(ru)果每次小小變化都(dou)導致大量系統改動(dòng)的話(huà),(??ヮ?)?*:???這樣的體系結構無(wú)疑是失敗的。所以架構師必須去主動(dòng)迎接未來(lái)可??能的變化???,設計靈活的可擴展的架構。但具體系統的可擴展性做到哪個(gè)程度,以及和其(qi)他設計指標的權衡利弊如何取舍是個(gè)問(wèn)題。

比如具體靈活到哪個(gè)程度的問(wèn)題,是要實(shí)現對各個(gè)組件的無(wú)依賴(lài)性,是要實(shí)現對具體數據庫(File/XML/SQL Server/Oracle/DB2)的無(wú)依??賴(lài)性,還是要實(shí)現對具體操作系統(Windows, Linux, OS2, AIX)的無(wú)依賴(lài)性?靈活程度不一樣,設計要求和設計方法不一樣。

架構設計必須盡量封裝可能的變化,例如在業(yè)務(wù)流程??發(fā)生有限的變化時(shí)(比如每個(gè)業(yè)務(wù)模塊本身的業(yè)務(wù)邏輯沒(méi)有變的情況下),能夠比較??方便ヾ(′ω`)?地修改系統程序模塊或組件間的調用關(guān)系(xi)而實(shí)現新的需求;如果這種調用關(guān)系被設計成存儲在配置庫的數據字典里,則連程序代碼都不用修改,只需修改數據字典里的模塊或組件調用規則即可。這就是按需設計,不是過(guò)度設計。

設計指標的權?衡利弊如何取舍的問(wèn)題也很明顯,比如降低依賴(lài)性常用的方法是封裝變化(Wrapper),分層設計,但會(huì )帶來(lái)系統的性能下降,尤其是大數據量的情況下;引入緩存機制吧又會(huì )增加系統復雜性,降低系統穩定性等。因為過(guò)于復雜的設計既造成系統不穩定的隱患,又影響性能。

這方面的討論很多,個(gè)人認為可擴展性和靈活性設計是架構設計中非常重要的方面,但不能(⊙_⊙)過(guò)度。穩定性第一,接下來(lái)是靈活性第二,還是性能第二靈活性第三的問(wèn)題,要具體看需求的情況了。(??ヮ?)?*:???如果是一個(gè)實(shí)時(shí)大( ?° ?? ?°)數據量大用戶(hù)在線(xiàn)服務(wù)系統,應該在性能的前提下實(shí)現靈活;如果是一個(gè)其(qi)他的業(yè)務(wù)系統,靈活性?xún)?yōu)先于性能。具體情況要具體權衡利弊。

高性能

在進(jìn)行性能設計時(shí),首先要與客戶(hù)充分地溝通,了解客戶(hù)的性能需求,不管它是清晰的還是暗含的。不要等到項目后期才發(fā)現其實(shí)數據量是60萬(wàn)而不是10萬(wàn)。所以預先了解項目的性能指標,獲取與性能相關(guān)的數據,從而預先評估架構的性能指標非常重要。

可用性,用戶(hù)友好性

設計以人為本,到頭來(lái)還是給人用的。產(chǎn)品經(jīng)理、客戶(hù)和最終用戶(hù)很注重界面,他們不知道你的系統有多么先進(jìn),只看界面是不是美觀(guān),界面友好,標準,操作流暢,有良好的用戶(hù)體驗(User experience)。界面做好(hao)了,客戶(hù)滿(mǎn)意,你就成功了一半;否┐(′д`)┌則內(nei)部系統再先進(jìn),客戶(hù)都會(huì )認為這個(gè)系統非常糟糕,用戶(hù)體驗非常不好。因此,可用性設計在這個(gè)Web2.0的時(shí)代尤其重要。

針對可用性的設計應該由架構師、??用戶(hù)體驗設計師共同完成??捎眯栽O計不等于界面設計。界面設計是靜態(tài)的,而可用性設計是以用戶(hù)為中心的交互設計(Interaction Design),更關(guān)(guan)注用戶(hù)的行為和體驗。交互設計需要研究角色模型,用戶(hù)行為和上下(◎_◎;)文,數??據整合和呈現方式等(Per(′?ω?`)so??na,goal,scenario)。一個(gè)成功的可用性設計/用戶(hù)體驗設計需要一個(gè)或多個(gè)跨學(xué)科的設計師,傾聽(tīng)和收集用戶(hù)對系統使用的需求、體驗或不滿(mǎn),并進(jìn)行藝術(shù)化的設計。

例如一個(gè)失敗的網(wǎng)站,內容繁雜,讓客戶(hù)無(wú)所適從;搜索了一個(gè)內容,出來(lái)一堆東西,用戶(hù)想在這里面進(jìn)一步搜索,卻找不到這個(gè)功能。而良好的網(wǎng)站設計,用(yong)戶(hù)操作非常流暢,流程很容易讓用戶(hù)理解。簡(jiǎn)潔明了,沒(méi)有(′▽?zhuān)?)亂七八糟的東西干擾用戶(hù)。因為后者仔細研究過(guò)用戶(hù)交互模型,知道大多數用戶(hù)的操作習慣和困難,而網(wǎng)站內容是根據清晰的流程設計的。數據的呈現方式也是經(jīng)過(guò)整合的,不是所有數據都呈現給用戶(hù),而是呈現對用戶(hù)有用的數據。

可維護性,可管理性

可維護性包括代碼的可理解性,可測試性,可ヾ(′?`)?修改性和系統的可移植性。如果一個(gè)系統的可維護性??從最初沒(méi)(′?_?`)有得到很好的重視,當系統面臨重大的設計改動(dòng)時(shí),會(huì )發(fā)現幾乎無(wú)法入手,最簡(jiǎn)單的方法是徹底推翻重寫(xiě),于是造成大量的資源浪費。

具體來(lái)說(shuō),軟件系統可維護性差的原因有:

1.過(guò)于僵硬: 加入一個(gè)新性能,不僅僅意味著(zhù)建造一個(gè)獨立的模塊,而且因為這個(gè)新性能會(huì )波及(ji)很多其他的模塊,最好變成跨越幾個(gè)模塊的改動(dòng)。

2.過(guò)于脆弱: 對一個(gè)地方的修改,??往往會(huì )導致看上去沒(méi)什么關(guān)系的另外一個(gè)??地方發(fā)生故障。盡管在??修改之前,設計師會(huì )盡力預測可能的故障點(diǎn),當是修改完成之前(qian),系統的原始設計師們甚至都無(wú)法預測(′ω`*)到可能會(huì )波及的地方。

3.復用率低: 每當程序員發(fā)現一段(╯°□°)╯代碼、函數、模塊??所(suo)做的事情是可以在新的模塊、或者新系統中使用的是,他們總是發(fā)現,這些已有的代碼依賴(lài)于一堆其他的東西,以至于很難(′?_?`)將它們分開(kāi)。最好他們發(fā)現最好??的辦法就是不去“碰”這些已有的東西,而是重新(xin)寫(xiě)自己的(de)代碼。他們可能會(huì )使用(yong)源代碼拷貝的辦法,以最原始的復用方式,節省一些時(shí)(′?ω?`)間。

4.黏度過(guò)高: 有的時(shí)候,一個(gè)改動(dòng)可以以保存??原(′?`)始設計意圖和原始設計框架的方式進(jìn)行,也可以以破壞原始意圖和框架的方式進(jìn)行。一個(gè)系??統設計,如果總是使得第二種辦法比第一種辦法容易,就叫黏度過(guò)高。

5.系統過(guò)于復雜:系統過(guò)于復雜和龐大,結構不盡合理,設計文檔缺乏或沒(méi)有更新,系統年齡大時(shí)間久遠。

可維護性設計應該采用靈活架構,采用復用的設計(ji)方法,盡量減少相互之間的依賴(lài)項,盡量采用成熟的工業(yè)應用級的產(chǎn)品和框架,采用代碼審查機制等。傳統軟件工程用可理解性、可測試性和可修改性來(lái)衡量軟件的可維護性,CASE軟件工程則以考察可重用性來(lái)衡量可維護性??删S護性最直接的體現是良好的軟件結構和完整正確的文檔體系。維護應在文(°□°)檔級以上展開(kāi),應從軟件結構(O_O)出發(fā),即以重構(T_T)為核心??芍赜眯允强删S護性的基本屬性,最大限度地重用現存軟件是軟件維護方法學(xué)的重要思想??原則。

運行可管理性,包括運維對系統軟硬件各個(gè)部分的監控,以便于控制系統運行、監視系統狀態(tài)、錯誤處理。為了實(shí)現上述目標,系統應該盡量采用參數化的可配置的設計,模塊間通信應當盡可能簡(jiǎn)單,同時(shí)建立合理詳盡的系統運行日志,系統通過(guò)自動(dòng)審計運行日志和動(dòng)態(tài)跟蹤(dynamic tracing facility),了解系統運行狀態(tài)、監控資源的使(?????)用和配置、進(jìn)行有效的錯誤處理。

?

ABOUT US

網(wǎng)站建設詳細方案_杭州公寓網(wǎng)站建設方案_1
網(wǎng)站建設營(yíng)銷(xiāo)型_營(yíng)銷(xiāo)型網(wǎng)站建設核心工作
網(wǎng)站建設營(yíng)銷(xiāo)型_紅谷灘區個(gè)人網(wǎng)站搭建的特點(diǎn)
網(wǎng)站建設維護_遵義宣傳網(wǎng)站建設報價(jià)

Contact information

手機: 13910811300
電話(huà): 010-52661970
傳真: 010-82694569

網(wǎng)址:www.javn.cn
郵箱:[email protected]
朝陽(yáng)一部:朝陽(yáng)區紫芳路九號院廣順園2號樓2605A
海淀二部:回龍觀(guān)黃平路19號院泰華龍旗廣場(chǎng)E座1212室(距西三旗橋2公里,8號線(xiàn)育新站海淀昌平交界)

  • 友情鏈接
齊齊哈爾系清網(wǎng)絡(luò )科技有限公司
陸豐紐復網(wǎng)絡(luò )科技有限公司鐵法藍萊網(wǎng)絡(luò )科技有限公司蕪湖苛爍網(wǎng)絡(luò )科技有限公司九臺馳集網(wǎng)絡(luò )科技有限公司
云浮光皇網(wǎng)絡(luò )科技有限公司
亳州天旋網(wǎng)絡(luò )科技有限公司新疆烏魯木齊火斯網(wǎng)絡(luò )科技有限公司葫蘆島紐至網(wǎng)絡(luò )科技有限公司長(cháng)葛如偉網(wǎng)絡(luò )科技有限公司本溪子創(chuàng )網(wǎng)絡(luò )科技有限公司廣元惠月網(wǎng)絡(luò )科技有限公司西安海碼網(wǎng)絡(luò )科技有限公司
內蒙臨河智京網(wǎng)絡(luò )科技有限公司
郴州百越網(wǎng)絡(luò )科技有限公司五常歐光網(wǎng)絡(luò )科技有限公司海城雷能網(wǎng)絡(luò )科技有限公司商州盛碼網(wǎng)絡(luò )科技有限公司阿城苛爍網(wǎng)絡(luò )科技有限公司秦皇島識大網(wǎng)絡(luò )科技有限公司閬中益好網(wǎng)絡(luò )科技有限公司義馬帝識網(wǎng)絡(luò )科技有限公司通化絲名網(wǎng)絡(luò )科技有限公司衡陽(yáng)彤彤網(wǎng)絡(luò )科技有限公司鐵力清原網(wǎng)絡(luò )科技有限公司日照韋邁網(wǎng)絡(luò )科技有限公司駐馬店合大網(wǎng)絡(luò )科技有限公司海林光優(yōu)網(wǎng)絡(luò )科技有限公司海城潔潔網(wǎng)絡(luò )科技有限公司儋州皇洋網(wǎng)絡(luò )科技有限公司忻州木光網(wǎng)絡(luò )科技有限公司哈爾濱發(fā)至網(wǎng)絡(luò )科技有限公司武穴久超網(wǎng)絡(luò )科技有限公司??谥Z賽網(wǎng)絡(luò )科技有限公司津輝富網(wǎng)絡(luò )科技有限公司保山雙聚網(wǎng)絡(luò )科技有限公司遼源京振網(wǎng)絡(luò )科技有限公司長(cháng)治超頻網(wǎng)絡(luò )科技有限公司義烏用富網(wǎng)絡(luò )科技有限公司
阜新圓萬(wàn)網(wǎng)絡(luò )科技有限公司
北京夢(mèng)創(chuàng  )義網(wǎng)站建設logo

© 2025.Company name All rights reserved.網(wǎng)站地圖 天津九安特機電工程有限公司-More Templates 粵ICP備888888號

亚洲女同成aV人片在线观看|亚洲www啪成人一区二区麻豆|亚洲国产中日韩精品综合|亚洲国产成人精品一级片|亚洲无码在线视频免费 上饶市| 泽州县| 永泰县| 方正县| 城固县| 利津县| 读书| 曲阜市| 博客| 内江市| 乌拉特前旗| 阜平县| 阆中市| 唐海县| 泗水县| 德钦县| 孙吴县| 邓州市| 会理县| 交城县| 望江县| 彭州市| 普安县| 财经| 台北市| 三都| 富宁县| 油尖旺区| 藁城市| 三都| 永福县| 含山县| 沙河市| 武定县| 肥城市| 浑源县| 峨眉山市| 六安市| 乌鲁木齐市| 元氏县| 巨野县| http://444 http://444 http://444 http://444 http://444 http://444