披著盛裝的稻草人-- 編程中的隨筆
1 不是使用了spring ,hibernate 等企業(yè)級產(chǎn)品的框架,我們就是企業(yè)級產(chǎn)品了。不是我們采用了新瓶裝舊酒的web 2.0 我們就走在技術(shù)的前沿了。我門所需要的是一個高性能的,健壯的 產(chǎn)品,是一個可以降低我們實施成本,一個可以樹立我們企業(yè)品牌的產(chǎn)品。在這里我不得不對我們產(chǎn)品的所謂的架構(gòu)們產(chǎn)品疑問,Archetectures,what are you doing?
2 在實現(xiàn)框架代碼的時候,當(dāng)你對采用那種實現(xiàn)方式猶豫不決的時,換個角度,想一想如果你是程序員,喜歡怎么這些框架。在實現(xiàn)框架的時候一定要考慮程序員是否能夠理解你寫框架的思路,除非萬不得已不要用一些自以為很高明很巧妙,然而卻很晦澀難懂的方法,那樣的框架,程序員至少合格的程序員是不愿意使用的。我想程序員和編碼工人最大的區(qū)別就是程序員不僅要知其然,還要知其所以然。
3 只有在不斷實踐中,才能激發(fā)你不斷的求知欲。只有把學(xué)到的知識不斷的應(yīng)用道實踐中,你才能在學(xué)習(xí)中得到滿足。不要為了學(xué)習(xí)而學(xué)習(xí)(學(xué)院派,不好聽點就是紙上談兵),而是要從實際問題出發(fā),在解決問題的過程中不斷深入,不斷總結(jié),所以說,當(dāng)你離開了編程的第一線,你將失去學(xué)習(xí)編程知識的欲望。當(dāng)然如果你愿意,在別的領(lǐng)域還有更廣闊的天空,但是請不要總是說自己原來編程怎么怎么,其實你已經(jīng)被三振出局了。
4 想外行一樣思考,想專家一樣實踐,一本書的名字,雖然書沒有看過,但她的名子就已經(jīng)非常有意思了。這豈不就是我們作需求,和作架構(gòu)時的座右銘嗎?既能象“外行”一樣的站在客戶的角度思考問題,又能象“專家”一樣參與到整個產(chǎn)品的開發(fā)和實施當(dāng)中,在實踐中不斷提高自我。然而,不幸的是許許多多的所謂的架構(gòu)師,系統(tǒng)分析員們卻正向著相反的方向邁進(jìn)?!罢嬲钡淖龅搅?,象“專家”一樣思考,象“外行”一樣實踐,可悲呀可悲。
5設(shè)計做到什么樣才叫做到位呢。我想只有真正的開發(fā)者才有權(quán)利發(fā)言。只有有它們才是設(shè)計的真正使用者和受害者。因為就我所知和所見,絕大多數(shù)設(shè)計都是設(shè)計者自己的游戲(當(dāng)然,我可能是井底之蛙了沒有見過什么好的設(shè)計),程序員所開發(fā)往往還是對著原形自己再進(jìn)行一遍設(shè)計,且不說額外增加了多少工作量,浪費了多少時間,就工作質(zhì)量而言,也是差強(qiáng)人意。畢竟大多數(shù)情況下,設(shè)計者或稱為架構(gòu)師的在技術(shù)方面的經(jīng)驗都更為豐富,對業(yè)務(wù)的理解也更為深入,另外由一個人進(jìn)行設(shè)計在功能復(fù)用,和整體性能方面的考慮也更完整一些。但怎么做才能熊掌和魚兼得呢?下面我發(fā)表一下我個人的看法:
? 1 代碼就是最好的設(shè)計,這句話不是我說的,是 xp開發(fā)屆 中的一位大牛說的。之所以在這里引用別人的觀點,并不是自己是一個xp 的fans,也并不時完全贊同xp 的理論,我只是覺得這句話得太對了,對程序員來說什么設(shè)計比代碼讀起來更親切呢?。其實設(shè)計無非是向開發(fā)所著傳達(dá)設(shè)計者的思想,告訴開發(fā)者系統(tǒng)需要開什么個對象,具有什么屬性和行為,它們之間的調(diào)用關(guān)系又如何。我們在設(shè)計文檔中經(jīng)常使用的方法就是有class 圖,協(xié)作圖,和順序圖對上面所提到的進(jìn)行描述。然而結(jié)果呢,面對這大量的令人畏懼的抽象圖表,開發(fā)者可選擇的也只有是“重整江河待后生了”。想想,這樣的設(shè)計和代碼能夠同步嗎,這樣的設(shè)計文檔還有什么用呢?所以說與其是這樣還不如把設(shè)計變成代碼,如對象屬性可以這直接在代碼中體現(xiàn),方法可以只定義接口,實現(xiàn)方式可以作為代碼的注釋,向?qū)懶枨蠓治鲇美频膩硪徊揭徊秸f明程序是需要怎樣調(diào)用。當(dāng)客戶要求設(shè)文檔的時候,只需要提出javadoc就可以了,而其保證和代碼同步。而開發(fā)者呢,在開發(fā)前需要閱讀用例,了解需求,然后在設(shè)計者已經(jīng)搭好的代碼框架中進(jìn)行開發(fā)就可以了。如果需要修改的話,不用在去設(shè)計文檔中更改,只需要修改一下代碼注釋就可以了,(程序員是比較懶的,不怎么愿意寫寫文檔的)。當(dāng)然了,讓懶惰的程序員能夠自覺地寫好文檔也不是一件容易事,下面也許能給你提供一個好的方法
? 2 交差開發(fā)能夠幫助完成最好的設(shè)計文檔。
? 3 設(shè)計者在開發(fā)階段還作什么呢??????????????????
待續(xù)???????????????????????????????????????????????????????????????
posted on 2006-10-11 14:36 康文 閱讀(244) 評論(0) 編輯 收藏 所屬分類: 軟件工程