• <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>
            隨筆-48  評論-259  文章-1  trackbacks-0

            高質(zhì)量自然是程序員的技術(shù)追求,也是職業(yè)道德的要求。

            寧可進(jìn)度慢些,也要保證每個環(huán)節(jié)的質(zhì)量,以圖長遠(yuǎn)利益。

            人員管理,項目管理,可行性與需求分析,系統(tǒng)設(shè)計,程序設(shè)計,測試。

            軟件開發(fā)中的三種基本策略:“復(fù)用”、“分而治之”、“優(yōu)化——折衷”。

            進(jìn)步是應(yīng)該的,但不進(jìn)步則是可恥的。

            在一個新系統(tǒng)中,大部分的內(nèi)容是成熟的,只有小部分內(nèi)容是創(chuàng)新的。

            面向?qū)ο螅∣bject Oriented)學(xué)者的口頭禪就是“請不要再發(fā)明相同的車輪子了” 。

            將具有一定集成度并可以重復(fù)使用的軟件組成單元稱為軟構(gòu)件(Software Component)。

            分而治之是指把一個復(fù)雜的問題分解成若干個簡單的問題,然后逐個解決。

            優(yōu)化工作不是可有可無的事情,而是必須要做的事情。當(dāng)優(yōu)化工作成為一種責(zé)任時,程序員才會不斷改進(jìn)軟件中的算法,數(shù)據(jù)結(jié)構(gòu)和程序組織,從而提高軟件質(zhì)量。


             一些不正確的觀念:
            觀念之一:我們擁有一套講述如何開發(fā)軟件的書籍,書中充滿了標(biāo)準(zhǔn)與示例,可以幫助我們解決軟件開發(fā)中遇到的任何問題。
            客觀情況:好的參考書無疑能指導(dǎo)我們的工作。充分利用書籍中的方法、技術(shù)和技巧,可以有效地解決軟件開發(fā)中大量常見的問題。但實踐者并不能因此依賴于書籍,這是因為:(1)現(xiàn)實的工作中,由于條件千差萬別,即使是相當(dāng)成熟的軟件工程規(guī)范,常常也無法套用。(2)軟件技術(shù)日新月異,沒有哪一種軟件標(biāo)準(zhǔn)能長盛不衰。祖?zhèn)髅胤皆谀承╊I(lǐng)域很吃香,而在軟件領(lǐng)域則意味著落后。

            觀念之二:我們擁有最好的開發(fā)工具、最好的計算機(jī),一定能做出優(yōu)秀的軟件。
            客觀情況:良好的開發(fā)環(huán)境只是產(chǎn)出成果的必要條件,而不是充分條件。如果擁有好環(huán)境的是一群庸人,難保他們不干出南轅北轍的事情。

            觀念之三:如果我們落后于計劃,可以增加更多的程序員來解決。
            客觀情況:軟件開發(fā)不同于傳統(tǒng)的農(nóng)業(yè)生產(chǎn),人多不見得力量大。如果給落后于計劃的項目增添新手,可能會更加延誤項目。因為:(1)新手會產(chǎn)生很多新的錯誤,使項目混亂。(2)老手向新手解釋工作以及交流思想都要花費時間,使實際開發(fā)時間更少。所以科學(xué)的項目計劃很重要,不在乎計劃能提前多少,重在恰如其分。如果用“大躍進(jìn)”的方式奔向共產(chǎn)主義,只會產(chǎn)生倒退的后果。

            觀念之四:既然需求分析很困難,不管三七二十一先把軟件做了再說,反正軟件是靈活的,隨時可以修改。
            客觀情況:對需求把握得越準(zhǔn)確,軟件的修修補(bǔ)補(bǔ)就越少。有些需求在一開始時很難確定,在開發(fā)過程中要不斷地加以改正。軟件修改越早代價越少,修改越晚代價越大,就跟治病一樣道理。


            程序設(shè)計是自由與快樂的事情,不要發(fā)誓忠于某某主義而自尋煩惱。

            失敗的技巧通常是技倆.


            開發(fā)人員應(yīng)該意識到:所有的錯誤都是嚴(yán)重的,不存在微不足道的錯誤。這樣才能少犯錯誤。


            管理的目的是讓大家一起把工作做好,并且讓各人獲得各自的快樂和滿足。當(dāng)一個組織被出色地領(lǐng)導(dǎo)時,雇員甚至不知道他們已被領(lǐng)導(dǎo)。在項目完成時,他們會自豪地說:“看看我們通過努力取得的成績吧”。所以管理者不能老惦記著自己是一個官,而應(yīng)時刻意識到自己是責(zé)任的主要承擔(dān)者。

             

            真正的程序員都有如下秉性:
            一、誠實
            程序員在學(xué)習(xí)與工作期間幾乎天天與機(jī)器打交道,壓根就沒有受欺騙或欺騙人的機(jī)會。勤奮的程序員在調(diào)試無窮多的程序Bug時,已經(jīng)深深地接受了“誠實”的教育。不誠實的人,他肯定不想做、也做不好程序員。
            二、簡單——實用主義
            目前即使最先進(jìn)的計算機(jī)也不具備智能,程序員的基本工作就是把復(fù)雜的問題轉(zhuǎn)化為計算機(jī)能處理的簡單的程序。如果一個問題復(fù)雜到連程序員自己都不能理解,他就無法編出程序讓更笨的計算機(jī)來處理。所以程序員信奉“簡單——實用”主義。
            三、愛憎分明
            程序員大都喜歡技術(shù)挑戰(zhàn),不喜歡搞測試與維護(hù)。高水平的程序員喜歡與高水平的程序員一起工作,因為他們怕“與臭棋佬下棋,棋越下越臭”。程序員大都厭惡拉幫結(jié)派、耍政治手腕。不信,數(shù)一數(shù)你認(rèn)識的程序員,有幾個是黨派人士?
            四、工作單調(diào)但不乏味
            有人問編程大師:“程序設(shè)計的真正含義是什么 ?”
            大師回答說:“餓了的時候就吃,困的時候就睡,只要時機(jī)恰當(dāng)就進(jìn)行程序設(shè)計。”
            其實程序員的生活和工作已融為一體,盡管單調(diào)卻不乏味,還能獨享孤獨。有詩為證:
                                          我編程三日
                                          兩耳不聞人聲
                                          只有硬盤在歌唱

            結(jié)論:優(yōu)秀的程序員沒有理由不讓人喜歡,他們遠(yuǎn)比怪僻來得可愛。

             

            微軟公司在選擇經(jīng)理人員時,總是把他們的技術(shù)知識和運用技術(shù)去賺錢的能力放在首位。

            比蓋曾這樣描述聰明:人聰明人一定反應(yīng)敏捷,善于接受新事物。他能迅速進(jìn)入一個新領(lǐng)域,給你一個頭頭是道的解釋。他提出的問題往往一針見血、擊中要害。他能及時掌握所學(xué)知識,并且博聞強(qiáng)記,他能把本來認(rèn)為互不相干的領(lǐng)域聯(lián)系在一起使問題得到解決。他富有創(chuàng)新精神與合作精神……


            好的程序經(jīng)理應(yīng)該具備以下幾個條件:
            一、技術(shù)水平是程序員隊伍中的最高級別
            每個程序員骨子里頭都有一股傲氣,如果你不能技壓群雄,他們就不會聽你指揮。一個技術(shù)水平較差的人被任命為程序經(jīng)理真是個悲劇,就象一個略有權(quán)勢的太監(jiān),表面上有人對他點頭哈腰,背后卻被人鄙視。
            二、能做最多且最難的工作
            程序經(jīng)理編程要快且好。別人要干一天的活,他半天就能做完,這樣才會有精力去搞管理。程序經(jīng)理應(yīng)負(fù)責(zé)系統(tǒng)分析、系統(tǒng)設(shè)計這類最難的開發(fā)工作,并指導(dǎo)不同水平的程序員把各自的工作做好。如果人手不夠,程序經(jīng)理要能同時干幾個人的活。
            三、有人格魅力
            軟件開發(fā)是智力創(chuàng)作過程,你不能指望僅通過執(zhí)行規(guī)章制度來產(chǎn)生好的作品。很多軟件公司的程序經(jīng)理都不是管理專業(yè)出身的,他們也不可能為了搞好管理而成天玩弄心機(jī)。技術(shù)出色的程序經(jīng)理一般少有心術(shù)不正的,所以管理的重點應(yīng)是“以身作則”、“公正待人”。如果程序經(jīng)理在上班時趴在桌上睡覺,其他程序員也會這樣干。如果程序經(jīng)理發(fā)現(xiàn)有兩個程序員趴在機(jī)器旁睡覺,不能只對其中一個大聲吼叫:“你一編程就想睡覺,看看人家,在睡覺時都想著編程。”
            如果管理者沒有人格魅力,就沒有人信服你,團(tuán)隊就不會有凝聚力,烏合之眾不可能開發(fā)出優(yōu)秀的軟件。
            結(jié)論:一個有活力的軟件公司的各級經(jīng)理都不會這樣感嘆,“因為我啥也不會干,所以只好當(dāng)領(lǐng)導(dǎo)。”


            在軟件領(lǐng)域,技術(shù)的力量是無窮的,一天之內(nèi)就可使整個產(chǎn)業(yè)發(fā)生巨變。


            好兵好將都不是天生的,是后天練出來的;既要學(xué)會冷靜地分析問題,又要充滿激情地去工作。


            等級制度并不限制自由和民主,它能讓自以為聰明絕頂、誰也不服的人們懂得如何合作與奮斗。就象有了一架梯子,每個人才有機(jī)會爬上墻頭摘下那向往已久的野花。當(dāng)梯子散成一堆木棍時,只可能造就幾個賣炭翁。

             

            把技術(shù)水平分為四級,第一級最低,第四級最高。第一級技術(shù)水平的程序員主要考核編程基本功,要求質(zhì)量合格(他們主要來自剛畢業(yè)的大學(xué)生)。第二級技術(shù)水平的程序員編程質(zhì)量要高,做過幾個軟件項目,有數(shù)年的工作經(jīng)驗,并能指導(dǎo)新手的工作。第三級技術(shù)水平的程序員主要考核系統(tǒng)分析與系統(tǒng)設(shè)計的能力,要求其技術(shù)有足夠的深度和廣度。第四級技術(shù)水平的程序員是成功的軟件產(chǎn)品的設(shè)計師,他不僅技術(shù)超群,并且能使技術(shù)轉(zhuǎn)化為有價值的商品。
            把管理(這里僅指軟件業(yè)務(wù)的管理,不考慮行政事務(wù))水平也分成四級。第零級最低,第三級最高。第零級管理水平的人沒有管理職務(wù),就是普通員工。第一級管理水平的人是開發(fā)小組的組長,可帶領(lǐng)幾名程序員工作。第二級管理水平的人是項目經(jīng)理。第三級管理水平的人決定某些產(chǎn)品是否要開發(fā),以及如何去占領(lǐng)市場。


            當(dāng)我們在工作中碰到挫折時,先要冷靜地分析問題(事出有因哪),找出問題的內(nèi)因與外因。內(nèi)因是最主要的,應(yīng)該予以最先解決。


            “迷信”是傻子碰到騙子的結(jié)果。


            為了不讓自己“傻”,善良的人們應(yīng)該用腦子去多學(xué)一些知識,努力讓自己來把握命運,不要急著把一生托給某個人或某個組織。

            上天不可能賦于一個人太多的優(yōu)點,以致于他沒有表示謙虛的余地。


            我們在求學(xué)時可能太功利太挑剔,導(dǎo)致知識結(jié)構(gòu)非常單薄,只怕到了晚年也成不了大器。當(dāng)程序員擅長技術(shù)時,還要時刻留意彌補(bǔ)自己并不擅長的非技術(shù)才能。揚長補(bǔ)短才能提高綜合素質(zhì)。

            人是最有價值的資源。

            進(jìn)度安排并不見得一定要符合邏輯順序。應(yīng)盡可能地先做技術(shù)難度高的事,后做難度低的事。也就是辛苦在前,輕松在后。

            里程碑就象心靈的燈塔,使忙碌的人群不混亂,不迷失方向。

            人在做一件事情時,由于存在很多不確定的因素,一般不可能100% 地達(dá)到目標(biāo)。假設(shè)平常人做事能完成目標(biāo)的80%。如果某個人的目標(biāo)是100分,那么他最終成績可達(dá)80分。如果某個人的目標(biāo)只是60分,那么他最終成績只有48分。

            如果沒有高目標(biāo),人的墮落就很快。如果沒有“零缺陷”的質(zhì)量目標(biāo),也許缺陷就會成堆。

            軟件是如此的靈活,如果沒有規(guī)范來制約,就容易因無序的喜好而導(dǎo)致混沌;但規(guī)范如果太嚴(yán)密了,就會扼殺程序員生機(jī)勃勃的創(chuàng)造力。

            簡潔是一種美!

            每當(dāng)我們沉迷于短期利益不思進(jìn)取時,應(yīng)該好好回憶童年時代那些偉大的抱負(fù),給自己一些激勵。

            “人分四類——人物,人才,人手,人渣。”

            我曾得到很多炫目的榮譽,但學(xué)生時代的榮譽只是一種鼓勵,并不是對我才能和事業(yè)的確認(rèn)。

            “當(dāng)你沒法扶一個人上馬時,也許應(yīng)該拉他下馬”------李敖


            為什么軟件系統(tǒng)分析員的工資要比普通程序員高?就是因為需求分析困難嘛。

            如果您學(xué)會了客觀、科學(xué)的可行性分析,在作決策時就要果斷。

            系統(tǒng)設(shè)計的優(yōu)劣在根本上決定了軟件系統(tǒng)的質(zhì)量。

            文學(xué)中有科學(xué),音樂中有數(shù)學(xué),漫畫中有現(xiàn)代數(shù)學(xué)的拓?fù)鋵W(xué)。漫畫家可以“幾筆”就把一個人畫出來,不管怎么美化或丑化,就是活像。為什么?因為那“幾筆”不是別的,而是拓?fù)鋵W(xué)中的特征不變量,這是事物最本質(zhì)的東西。               -------楊叔子

            體系結(jié)構(gòu)是軟件系統(tǒng)中最本質(zhì)的東西。

              內(nèi)聚(Cohesion)是一個模塊內(nèi)部各成分之間相關(guān)聯(lián)程度的度量。耦合(Coupling)是模塊之間依賴程度的度量。

            技術(shù)進(jìn)步最快也快不過人們欲望的增長。

            對象(Object)是類(Class)的一個實例(Instance)。


            醫(yī)生可以把他的錯誤埋葬在地下了事,但程序員不能。我們必須要學(xué)會測試與改錯,并且把測試與改錯工作做好。

            測試并不僅是個技術(shù)問題,更是個職業(yè)道德問題。

            測試只能證明缺陷存在,而不能證明缺陷不存在。

            改錯是個大悲大喜的過程,一天之內(nèi)可以讓人在悲傷的低谷和喜悅的顛峰之間跌蕩起伏。

            程序中的錯誤只有開發(fā)者自己才能找出并改掉。如果因畏懼而拖延,會讓你終日心情不定,食無味,睡不香。所以長痛不如短痛,要集中精力對付錯誤。

            編程大師曾說:“哪怕程序只有三行長,總有一天你也不得不對它維護(hù)。”

            posted on 2007-06-09 22:19 星夢情緣 閱讀(2267) 評論(1)  編輯 收藏 引用 所屬分類: 關(guān)于編程

            評論:
            # re: 程序員進(jìn)階必看 2007-06-11 13:03 | cuglulixue
            一口氣看完了這篇文章,感覺句句在理。
            繼續(xù)學(xué)習(xí)中...  回復(fù)  更多評論
              
            亚洲欧美成人久久综合中文网| 亚洲综合熟女久久久30p| 国产精品99久久99久久久| 精品国产99久久久久久麻豆| 无码人妻少妇久久中文字幕蜜桃 | 一本伊大人香蕉久久网手机| 亚洲午夜久久久精品影院 | 香蕉久久夜色精品国产尤物| 久久久这里有精品| 久久精品人人做人人妻人人玩| 久久香蕉国产线看观看99| 久久综合久久鬼色| 久久久久亚洲av无码专区导航| aaa级精品久久久国产片| 欧美国产成人久久精品| 99精品久久精品一区二区| 久久久久久国产精品无码下载 | 亚洲AV无码成人网站久久精品大| 久久精品国产99久久无毒不卡| 99久久99久久精品国产片| 久久人人爽人人爽人人av东京热 | 久久99精品久久久久久噜噜| 久久中文字幕人妻熟av女| 久久99久久99小草精品免视看| 久久中文字幕人妻熟av女| 国产69精品久久久久99| 久久精品免费一区二区| 国产午夜电影久久| 欧美黑人激情性久久| 伊人久久大香线蕉精品不卡| 国产999精品久久久久久| 国产精品一区二区久久国产| 久久99这里只有精品国产| 久久精品国产一区二区| 99久久精品免费看国产| 国产午夜久久影院| 99精品久久精品| 成人资源影音先锋久久资源网| 久久男人Av资源网站无码软件| 少妇久久久久久被弄到高潮| 久久久精品人妻无码专区不卡|