• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

              C++博客 :: 首頁 :: 聯系 ::  :: 管理
              163 Posts :: 4 Stories :: 350 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(48)

            我參與的團隊

            搜索

            •  

            積分與排名

            • 積分 - 398977
            • 排名 - 59

            最新評論

            閱讀排行榜

            評論排行榜

             軟件質量是被大多數程序員掛在嘴上而不是放在心上的東西!
                 除了完全外行和真正的編程高手外,初讀本書,你最先的感受將是驚慌:“哇!我
            以前捏造的C++/C 程序怎么會有那么多的毛?。?#8221;
                 別難過,作者只不過比你早幾年、多幾次驚慌而已。
                 請花一兩個小時認真閱讀這本百頁經書,你將會獲益匪淺,這是前面N-1 個讀者的
            建議。

                                       一、編程老手與高手的誤區

                 自從計算機問世以來,程序設計就成了令人羨慕的職業,程序員在受人寵愛之后容
            易發展成為毛病特多卻常能自我臭美的群體。
                如今在Internet 上流傳的“真正”的程序員據說是這樣的:
            (1)  真正的程序員沒有進度表,只有討好領導的馬屁精才有進度表,真正的程序員會讓
                領導提心吊膽。
            (2)  真正的程序員不寫使用說明書,用戶應當自己去猜想程序的功能。
            (3)  真正的程序員幾乎不寫代碼的注釋,如果注釋很難寫,它理所當然也很難讀。
            (4)  真正的程序員不畫流程圖,原始人和文盲才會干這事。
            (5)  真正的程序員不看參考手冊,新手和膽小鬼才會看。
            (6)  真正的程序員不寫文檔也不需要文檔,只有看不懂程序的笨蛋才用文檔。
            (7)  真正的程序員認為自己比用戶更明白用戶需要什么。
            (8)  真正的程序員不接受團隊開發的理念,除非他自己是頭頭。
            (9)  真正的程序員的程序不會在第一次就正確運行,但是他們愿意守著機器進行若干個
                30 小時的調試改錯。
            (10) 真正的程序員不會在上午9:00 到下午5:00 之間工作,如果你看到他在上午9:00 工
                作,這表明他從昨晚一直干到現在。

            ……

                具備上述特征越多,越顯得水平高,資格老。所以別奇怪,程序員的很多缺點竟然
            可以被當作優點來欣賞。就象在武俠小說中,那些獨來獨往、不受約束且帶點邪氣的高
            手最令人崇拜。我曾經也這樣信奉,并且希望自己成為那樣的“真正”的程序員,結果
            沒有得到好下場。

                 我從讀大學到博士畢業十年來一直勤奮好學,累計編寫了數十萬行C++/C 代碼。有
            這樣的苦勞和疲勞,我應該稱得上是編程老手了吧?
                 我開發的軟件都與科研相關(集成電路CAD 和3D  圖形學領域),動輒數萬行程序,
            技術復雜,難度頗高。這些軟件頻頻獲獎,有一個軟件獲得首屆中國大學生電腦大賽軟
            件展示一等獎。在1995 年開發的一套圖形軟件庫到2000 年還有人買。羅列出這些“業
            績”,可以說明我算得上是編程高手了吧?
                 可惜這種個人感覺不等于事實。

                 讀博期間我曾用一年時間開發了一個近10 萬行C++代碼的3D  圖形軟件產品,我內
            心得意表面謙虛地向一位真正的軟件高手請教。他雖然從未涉足過3D               圖形領域,卻在
            幾十分鐘內指出該軟件多處重大設計錯誤。讓人感覺那套軟件是用紙糊的華麗衣服,扯
            一下掉一塊,戳一下破個洞。我目瞪口呆地意識到這套軟件毫無實用價值,一年的心血
            白化了,并且害死了自己的軟件公司。

                 人的頓悟通常發生在最心痛的時刻,在沮喪和心痛之后,我作了深刻反省,“面壁”
            半年,重新溫習軟件設計的基礎知識。補修“內功”之后,又覺得腰板硬了起來。博士
            畢業前半年,我曾到微軟中國研究院找工作,接受微軟公司一位資深軟件工程師的面試。
            他讓我寫函數strcpy 的代碼。
                 太容易了吧?
                 錯!
                 這么一個小不點的函數,他從三個方面考查:
                 (1)編程風格;
                 (2 )出錯處理;
                 (3 )算法復雜度分析(用于提高性能)。
                 在大學里從來沒有人如此嚴格地考查過我的程序。我花了半個小時,修改了數次,
            他還不盡滿意,讓我回家好好琢磨。我精神抖擻地進“考場”,大汗淋漓地出“考場”。
            這“高手”當得也太窩囊了。我又好好地反省了一次。

                 我把反省后的心得體會寫成文章放在網上傳閱,引起了不少軟件開發人員的共鳴。
            我因此有幸和國產大型IT  企業如華為、上海貝爾、中興等公司的同志們廣泛交流。大
            家認為提高質量與生產率是軟件工程要解決的核心問題。高質量程序設計是非常重要的
            環節,畢竟軟件是靠編程來實現的。
                 我們心目中的老手們和高手們能否編寫出高質量的程序來?
                 不見得都能!

                 就我的經歷與閱歷來看,國內大學的計算機教育壓根就沒有灌輸高質量程序設計的
            觀念,教師們和學生們也很少自覺關心軟件的質量。勤奮好學的程序員長期在低質量的
            程序堆中滾爬,吃盡苦頭之后才有一些心得體會,長進極慢,我就是一例。
                 現在國內 IT   企業擁有學士、碩士、博士文憑的軟件開發人員比比皆是,但他們在
            接受大學教育時就“先天不足”,豈能一到企業就突然實現質的飛躍。試問有多少軟件
            開發人員對正確性、健壯性、可靠性、效率、易用性、可讀性(可理解性)、可擴展性、
            可復用性、兼容性、可移植性等質量屬性了如指掌?并且能在實踐中運用自如?。“高
            質量”可不是干活小心點就能實現的! 
             我們有充分的理由疑慮:
             (1)編程老手可能會長期用隱含錯誤的方式編程(習慣成自然),發現毛病后都不愿相
            信那是真的!
             (2 )編程高手可以在某一領域寫出極有水平的代碼,但未必能從全局把握軟件質量的
            方方面面。

                 事實證明如此。我到上海貝爾工作一年來,陸續面試或測試過近百名“新”“老”
            程序員的編程技能,質量合格率大約是10%。很少有人能夠寫出完全符合質量要求的if
            語句,很多程序員對指針、內存管理一知半解,……。
                 領導們不敢相信這是真的。我做過現場試驗:有一次部門新進 14              名碩士生,在開
            歡迎會之前對他們進行“C++/C 編程技能”摸底考試。我問大家試題難不難?所有的人
            都回答不難。結果沒有一個人及格,有半數人得零分。競爭對手公司的朋友們也做過試
            驗,同樣一敗涂地。

                 真的不是我“心狠手辣”或者要求過高,而是很多軟件開發人員對自己的要求不夠
            高。
                 要知道華為、上海貝爾、中興等公司的員工素質在國內 IT             企業中是比較前列的,
            倘若他們的編程質量都如此差的話,我們怎么敢期望中小公司拿出高質量的軟件呢?連
            程序都編不好,還談什么振興民族軟件產業,豈不胡扯。

                 我打算定義編程老手和編程高手,請您別見笑。
                 定義1:能長期穩定地編寫出高質量程序的程序員稱為編程老手。
                 定義2 :能長期穩定地編寫出高難度、高質量程序的程序員稱為編程高手。
                 根據上述定義,馬上得到第一推論:我既不是高手也算不上是老手。

                 在寫此書前,我閱讀了不少程序設計方面的英文著作,越看越羞慚。因為發現自己
            連編程基本技能都未能全面掌握,頂多算是二流水平,還好意思談什么老手和高手。希
            望和我一樣在國內土生土長的程序員朋友們能夠做到:
             (1)知錯就改;
             (2 )經常溫故而知新;
             (3 )堅持學習,天天向上。
                                             二、本書導讀

                 首先請做附錄B 的C++/C 試題(不要看答案),考查自己的編程質量究竟如何。然
            后參照答案嚴格打分。
             (1)如果你只得了幾十分,請不要聲張,也不要太難過。編程質量差往往是由于不良
            習慣造成的,與人的智力、能力沒有多大關系,還是有藥可救的。成績越差,可以進步
            的空間就越大,中國不就是在落后中趕超發達資本主義國家嗎?只要你能下決心改掉不
            良的編程習慣,第二次考試就能及格了。
             (2)如果你考及格了,表明你的技術基礎不錯,希望你能虛心學習、不斷進步。如果
            你還沒有找到合適的工作單位,不妨到上海貝爾試一試。
             (3)如果你考出85 分以上的好成績,你有義務和資格為你所在的團隊作“C++/C 編程”
            培訓。希望你能和我們多多交流、相互促進。半年前我曾經發現一顆好苗子,就把他挖
            到我們小組來。
             (4)如果你在沒有任何提示的情況下考了滿分,希望你能收我做你的徒弟。

                 編程考試結束后,請閱讀本書的正文。
                 本書第一章至第六章主要論述C++/C 編程風格。難度不高,但是細節比較多。別小
            看了,提高質量就是要從這些點點滴滴做起。世上不存在最好的編程風格,一切因需求
            而定。團隊開發講究風格一致,如果制定了大家認可的編程風格,那么所有組員都要遵
            守。如果讀者覺得本書的編程風格比較合你的工作,那么就采用它,不要只看不做。人
            在小時候說話發音不準,寫字潦草,如果不改正,總有后悔的時候。編程也是同樣道理。
                 第七章至第十一章是專題論述,技術難度比較高,看書時要積極思考。特別是第七
            章“內存管理”,讀了并不表示懂了,懂了并不表示就能正確使用。有一位同事看了第
            七章后覺得“野指針”寫得不錯,與我切磋了一把。可是過了兩周,他告訴我,他忙了
            兩天追查出一個Bug,想不到又是“野指針”出問題,只好重讀第七章。
                 光看本書對提高編程質量是有限的,建議大家閱讀本書的參考文獻,那些都是經典
            名著。

               如果你的編程質量已經過關了,不要就此滿足。如果你想成為優秀的軟件開發人員,
            建議你閱讀并按照 CMMI        規范做事,讓自己的綜合水平上升一個臺階。上海貝爾的員
            工可以向網絡應用事業部軟件工程研究小組索取CMMI 有關資料,最好能參加培訓。


            posted on 2007-12-14 21:00 sdfasdf 閱讀(498) 評論(0)  編輯 收藏 引用 所屬分類: C++
            亚洲国产成人久久综合野外| 久久777国产线看观看精品| 久久久久久毛片免费看| 狠狠色丁香久久婷婷综合图片 | 国产精品九九九久久九九| 99久久免费国产特黄| 久久久久18| av午夜福利一片免费看久久| 99久久国产亚洲高清观看2024| 97香蕉久久夜色精品国产| 99久久99久久精品国产片果冻 | 无码精品久久久久久人妻中字| 久久久久久国产精品无码超碰| 久久99精品免费一区二区| 漂亮人妻被黑人久久精品| 久久精品国产亚洲一区二区三区| 日产精品久久久久久久| 久久免费观看视频| AAA级久久久精品无码区| 久久综合亚洲欧美成人| 久久精品国产99久久久古代 | 久久66热人妻偷产精品9| 日韩精品久久久久久久电影| 国产国产成人久久精品| 7国产欧美日韩综合天堂中文久久久久| 99久久精品免费看国产一区二区三区| 久久精品国产第一区二区| 久久99热狠狠色精品一区| 人妻精品久久久久中文字幕69| 欧洲国产伦久久久久久久 | 老司机国内精品久久久久| 国产精品9999久久久久| 国内精品伊人久久久久AV影院| 午夜不卡久久精品无码免费| 中文字幕无码av激情不卡久久| 色老头网站久久网| 亚洲伊人久久精品影院| 久久棈精品久久久久久噜噜| 狠狠88综合久久久久综合网| 国产精品毛片久久久久久久| 久久国产精品久久久|