今天有人對(duì)我現(xiàn)在進(jìn)行項(xiàng)目的幾個(gè)方面提出了疑問(wèn),認(rèn)為是幾點(diǎn)值得考慮的風(fēng)險(xiǎn),自己在仔細(xì)考慮后覺得確實(shí)值得反思:
1、為什么要采用hibernate,采用OO設(shè)計(jì)取代傳統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)?
      覺得這個(gè)問(wèn)題對(duì)我而言沒什么可值得仔細(xì)思考的部分,采用hibernate利大于弊,這點(diǎn)對(duì)我而言毫無(wú)疑問(wèn),一是因?yàn)榧词共徊捎胔ibernate,在代碼中仍然要對(duì)獲取的resultset做轉(zhuǎn)化為對(duì)象的步驟,二是hibernate對(duì)通用CRUD的良好支持,三是數(shù)據(jù)庫(kù)無(wú)關(guān)性,四是對(duì)象關(guān)聯(lián)的支持。
      但以提問(wèn)的人的觀點(diǎn)來(lái)看,一是他個(gè)人對(duì)于hibernate并不熟,認(rèn)為他無(wú)法掌控,這就是風(fēng)險(xiǎn),二是他認(rèn)為采用hibernate反而增加了項(xiàng)目的實(shí)現(xiàn)難度。
      綜合自己的觀點(diǎn)和提問(wèn)人的觀點(diǎn)來(lái)看,覺得在項(xiàng)目中采用什么樣的技術(shù)才是合適的技術(shù)確實(shí)是個(gè)值得思考的問(wèn)題,怎么樣從可滿足項(xiàng)目的多種技術(shù)實(shí)現(xiàn)方案中進(jìn)行選擇?
2、項(xiàng)目中采用XP是否合適?
      我采用XP被人置疑的地方竟然是項(xiàng)目成員的交流合作問(wèn)題...... 這點(diǎn)讓我挺震驚的,這點(diǎn)我都不知道到底是我做的不對(duì)還是被人誤解,至少我認(rèn)為我現(xiàn)在team的交流絕對(duì)比一般重型軟件過(guò)程的團(tuán)隊(duì)交流做的好很多很多,早會(huì)、迭代會(huì)議、不時(shí)的討論等等,這些交流我覺得應(yīng)該不會(huì)差吧,呵呵,不過(guò)被人疑問(wèn),我覺得至少就說(shuō)明自己做的仍然不夠好。
      另外竟然還被看成是不做設(shè)計(jì)直接編碼的行為,在這點(diǎn)上我真的是覺得讓別人誤解了,CRC設(shè)計(jì)難道不是設(shè)計(jì)???而且我覺得CRC設(shè)計(jì)絕對(duì)是超越傳統(tǒng)的那種做詳細(xì)設(shè)計(jì)的方法的。
 
總而言之,我覺得有人提出疑問(wèn)是好事,只有這樣才能真正仔細(xì)的去反思自己的很多做法。

另外,說(shuō)說(shuō)關(guān)于TDD,覺得自己現(xiàn)在才是真正的做TDD,今天在給一個(gè)同事講的時(shí)候真正的自己也去領(lǐng)悟TDD的好處,在寫一個(gè)對(duì)象的實(shí)現(xiàn)的時(shí)候,通常會(huì)在實(shí)現(xiàn)的過(guò)程漏掉一些邊緣性的檢測(cè)或別的問(wèn)題,更突出的就是在集成的時(shí)候才發(fā)現(xiàn)問(wèn)題,今天在實(shí)踐的時(shí)候突然覺得TDD的好處就在于迫使了開發(fā)人員在寫一個(gè)對(duì)象的實(shí)現(xiàn)之前仔細(xì)的考慮那個(gè)方法的功能、邊緣性的一些東西,這個(gè)時(shí)候通過(guò)編寫測(cè)試代碼就完全可以體現(xiàn)了,然后再去寫實(shí)現(xiàn)其實(shí)就比較簡(jiǎn)單了,把握針對(duì)測(cè)試寫實(shí)現(xiàn)的原則,更不用說(shuō)對(duì)于集成測(cè)試的好處了,呵呵,這樣才能發(fā)揮XP的很多優(yōu)點(diǎn),比如簡(jiǎn)單設(shè)計(jì)、重構(gòu)、持續(xù)集成等等。