我見過太多的**(我自己以前也是),只注重實現功能。國內絕大多數的程式設計師都以為實現了就成功了。在開始敲鍵盤之前,有多少人想過即將被建立的**會有多少的可維護性?是準備建立用完就扔的**,還是需要不斷公升級、改進的**?如果是需要長期被維護、改進的**,在最初的時候,如果只是注重實現,而忽略整體框架的設計,那麼最終等待程式設計師的只是無數的bug和災難。
其實,相對來說,實現是簡單的。你能夠實現的東西都是基於平台或者特定軟硬體環境的。你所實現的,只是因為平台提供給了你這樣的功能而已,這個實現並不是你創造出來的。而框架的設計就需要相當的經驗。沒有人可以一開始就完成乙個優秀的框架。
在一次工作中,要為delphi寫幾個簡單元件,元件類之間有繼承關係(很簡單,只有兩層而已)。對於這個非常微小的「框架」,在最初有了「想當然」的設計之後,就開始動手寫**了。完成父類層的元件後,在寫派生類的元件時,才發現當初的「設計」存在問題。那時我奇怪自己當初怎麼會有那麼奇怪的想法,構建這樣的框架。在寫到派生類元件時,才發現有些東西是那麼的理所當然,而在最初設計的時侯的想法卻與之相反!於是,重新構建這些**,幸好,**量不大,即使重寫,也沒有花費多少時間。
我想說的是,即使乙個那麼簡單的框架,我是在第三次重寫後,才將其確立下來。同時,獲取了寶貴的經驗。設計的難處在於,人的思維習慣是從下往上,逐步抽象的。但是,在類的框架設計中,去需要從上往下的設計,也就是逐步細化。而一旦在原始類(如:vcl的tobject)的設計上存在問題的話,那麼隨著類層次的展開,問題將會逐步放大,最後可能會導致整個框架的崩潰。這就要求設計者具有豐富的經驗!
我從不相信程式設計師的壽命只到35歲,也許35歲以後,實現能力(其實就是工匠能力)有下降的可能,而設計能力是隨著經驗的增加不降反公升的。這才是最寶貴的。
國外的軟體開發小組,一般的骨幹都是40歲上下的人,那些才是大師級的程式設計師,而所謂的過了35歲就不能當程式設計師的程式設計師根本沒有資格被稱為程式設計師。
而軟體工程是要將程式設計師變成編碼員,變成流水線上的一環,設計工作由專門的設計師完成(如框架設計師)。也許,分工細化是趨勢,但是,我們是滿足於做編碼員還是希望成長為設及師,取決於我們的眼光及努力。
放開眼光,而不是將自己侷限於、沉迷於「實現高手」。實現能力是基礎,有一定的實現能力才可能成長,但是,它只是必要條件,而不是充分的。否則,就象爬到山腰就以為自己到了山頂,停滯不前了。那麼,你只可能是編碼員,你的程式壽命也只到 35歲。
努力積累經驗,並且要學會積累經驗。有句話說得好,聰明人與笨人的區別並不在於其不犯錯誤。真正的區別在於,聰明人不會兩次犯同樣的錯誤。
本文**於東日nircosoft。
如何提高設計能力?
要提高設計能力首先需要對軟體設計有著精神上的追求,即在軟體開發的過程中追求設計的完美性。夢想之所以有可能成為現實,是因為我們會去 想 並為之努力,軟體設計能力的獲得也不例外。設計能力的獲得並不會因為不去追求而 不小心 獲得且水平很高。具備軟體設計追求的人,會在設計的第一時間積極思考以試圖找到更優實現...
資料庫設計 能力等級
乙個威客系統,要針對雇主與服務商設計能力等級,具體計算等級方式如下 總的來說就是按照公式查詢出資料然後顯示 為了便於管理,決定將資料存在資料庫中 有人可以是雇主也可以是服務商 所以等級資料可以是一張表 加上等級變更記錄,一共兩張表 等級表為表a,變更表為表b 在等級計算中,註冊時間於當前時間計算出使...
設計能力已得到世界認可
聯想是it產業的先導 企業 而聯想的設計部門是由首席設計師 副總經理姚映佳領軍。連續獲得世界產業設計大獎的膝上型電腦是他的作品,2008年北京 奧運聖火火炬的設計也來自他的團隊。聯想決定放棄投資17.5億美元購買並使用3年的國際 品牌。姚映佳表示 我相信,聯想有實力依靠自身的品牌占領市場。目前聯想設...