四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

擁抱變化—— 可擴(kuò)展性雜談

  作為軟件開(kāi)發(fā)人員最擔(dān)心的就是變化,因?yàn)橐坏┳兓馕吨约旱拈_(kāi)發(fā)任務(wù)加重, 輕則修改代碼,重則修改框架,如果不用做任何修改,則皆大歡喜,現(xiàn)實(shí)告訴我們,這是小概率事件,但比買彩票中大獎(jiǎng)的概率還是大很多。于是各種討論開(kāi)始,開(kāi)發(fā)人員開(kāi)始講述修改如何的大,進(jìn)度如何緊張,架構(gòu)師也在一旁不停的嘮叨這個(gè)修改點(diǎn)的重要性,以及對(duì)整個(gè)系統(tǒng)帶來(lái)的好處。

  在業(yè)界曾經(jīng)有一句很經(jīng)典的話:“在軟件開(kāi)發(fā)領(lǐng)域中,唯一的不變就是變化” 。一旦變化,就有人遭殃,不是開(kāi)發(fā)人員,就是設(shè)計(jì)師或架構(gòu)師。無(wú)論誰(shuí)遭殃,都不得不擁抱變化。

  擁抱變化是極限編程(eXtreme Programming)里面一個(gè)非常重要的概念,代表了敏捷陣營(yíng)對(duì)于變化的一種態(tài)度,那就是不拒絕,而且還主動(dòng)求變。本文不想探討敏捷方面的知識(shí),如何去擁抱變化,而是想要探討程序的可擴(kuò)展性,如何在編碼過(guò)程中,以最小的代價(jià)來(lái)應(yīng)對(duì)程序未來(lái)的變化。

  關(guān)于可擴(kuò)展性, 其本身就是一個(gè)多方面的概念集合。有人說(shuō)程序的可擴(kuò)展性必須建立在對(duì)未來(lái)需求的準(zhǔn)確把握上,也有人說(shuō)程序的可擴(kuò)展性必須建立在能夠?qū)π枨笞兓焖夙憫?yīng)上。不論孰是孰非,其最終目的都是要求,能在需求發(fā)生變化的時(shí)候以最小的代價(jià)去應(yīng)付變化。

  可以從兩個(gè)緯度對(duì)可擴(kuò)展性進(jìn)行討論,一是設(shè)計(jì)可擴(kuò)展性,二是編碼可擴(kuò)展性,前者從宏觀上考慮,后者從微觀上考慮,當(dāng)然編碼也是一種設(shè)計(jì)活動(dòng)。本文重點(diǎn)論述編碼的可擴(kuò)展性,對(duì)于設(shè)計(jì)可擴(kuò)展性,是一個(gè)系統(tǒng)性工程,由于作者還沒(méi)有達(dá)到那個(gè)高度和境界,所以不敢瞎寫(xiě),本文基本上不做介紹。

  《UNIX 編程藝術(shù)》一書(shū)中有一條關(guān)于擴(kuò)展原則的描述:設(shè)計(jì)要著眼于未來(lái),未來(lái)總比預(yù)想快。 關(guān)于設(shè)計(jì)可擴(kuò)展性, 對(duì)于系統(tǒng)架構(gòu)師或者系統(tǒng)工程師不僅僅要考慮在實(shí)現(xiàn)用戶需求的基礎(chǔ)上如何構(gòu)建系統(tǒng),還要考慮計(jì)算資源的可擴(kuò)展、應(yīng)用規(guī)模的可擴(kuò)展,以及對(duì)技術(shù)換代的可擴(kuò)展和性能等。

  近期發(fā)生的干旱和水災(zāi),每次都能找到人為的因素。本文開(kāi)頭提到的場(chǎng)景,如果進(jìn)行代碼回溯,也能找到一些人為的因素。如果當(dāng)時(shí)的編碼者在寫(xiě)代碼時(shí)充分考慮了代碼可擴(kuò)展性,在一定條件下,可以達(dá)到用最小的代價(jià)去應(yīng)對(duì)變化。如果當(dāng)時(shí)只是為了完成任務(wù),交差,后續(xù)的維護(hù)者可能面對(duì)的不是擁抱變化,而是擁抱痛苦!

  場(chǎng)景一:在某嵌入式電信級(jí)設(shè)備整框分布式環(huán)境中,有NEMI板(管理板),SWF板(業(yè)務(wù)板),STU板(業(yè)務(wù)板)和LC板(業(yè)務(wù)板),每塊板上都有CPU,運(yùn)行著各自的程序。目前的架構(gòu)僅僅對(duì)NEMI/SWF/STU板支持了HA(HighAvailable)功能,在SWF卡上運(yùn)行的某個(gè)業(yè)務(wù),需要關(guān)注SWF卡的主備倒換事件。 運(yùn)行在SWF卡上的程序可以收到來(lái)自NEMI和SWF卡的主備倒換事件,于是進(jìn)行了如下編碼:

void processSwitchEvent(GenMsg *pMsg)  
{
一些合法性判斷語(yǔ)句
if(NEMI_SWITCH_EVENT == pMsg->getSwitchEventGrp())
{
MSG_INFO(“Received NEMI Switch Event……”);
return ;

//process SWF Switch Event
業(yè)務(wù)處理代碼
}

it知識(shí)庫(kù)擁抱變化—— 可擴(kuò)展性雜談,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 朱莉安妮全集高清免费| 第一财经今日股市直播间在线直播 | 陈程玉| 看香谱二十四法图解| 马子俊| 王源个人资料简介身高| 浪客剑心星霜篇| 阿芮尔·温特| 邓伦是石家庄哪里的| 电影百鸟朝凤免费完整版| 宙斯的12个儿子都是谁| 古风少女换装纸娃娃| 永远的牧歌简谱| 礼佛三拜正确动作视频| 轨迹地图| 我家来了个怪男人| 澳门风云2演员表| 厕所英雄| 汽水音乐官网| 哈林教父| 生物选择性必修三| 小妖怪的夏天| 四 电影| 郑柔美个人简介| 探究事物的本质的读后感想| 台湾李丽萍十部必看电影| 彭丹丹最惊艳的电影| 第一财经在线直播电视| 蛇花| xiazai| 王子文个人资料| 小泽电影| jjdd| 李子京| 熊竹英| 谍影 电视剧| 北风那个吹在线观看免费完整版| 暴雪将至电影| qq经典声音| 卜冠今| 打男生军人光屁股的网站视频|