<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vikings

    一個(gè)程序員的一生(ZT)

    google了一下
    已經(jīng)被廣泛ZT了:)

    一個(gè)程序員的一生
    ----------------------------------------------------

    作者:佚名

    我在程序員的時(shí)候,我一開始追逐這個(gè)API怎么用,數(shù)據(jù)庫(kù)SQL怎么寫更優(yōu)化,Dcom技術(shù)的細(xì)節(jié),然后我發(fā)現(xiàn)我寫出來的產(chǎn)品為了符合客戶需求必須要大量修改,但是我的代碼卻粘在了一起,
    第一個(gè)感覺就是一個(gè)函數(shù)太長(zhǎng),一看就頭痛,而且一個(gè)函數(shù)干了好多事。這些事本來可以一段一段的,每段寫上注釋,然后有意義命名,自己管理錯(cuò)誤和內(nèi)存,然后把這些函數(shù)連在一起,
    然后我作了這些:

    1、小函數(shù);
    2、寫上注釋;
    3、有意義命名;
    4、自己管理錯(cuò)誤和內(nèi)存;
    5、流程函數(shù);

    最后我發(fā)現(xiàn)我這些函數(shù)可以組合成各種各樣的流程,我的程序終于好修改了,我很高興。但是我又發(fā)現(xiàn),我的界面和我的流程混在了一起,另一個(gè)程序也想使用我的函數(shù),但是我的函數(shù)中有對(duì)我的特定界面關(guān)聯(lián)的代碼,我不能連界面一起都給他,因?yàn)樗兴慕缑妫鞯氖挛乙呀?jīng)實(shí)現(xiàn)了,于是我把功能函數(shù)和界面控制分開了

    我就作了這些,我的代碼很容易理解,即使新員工,只要他看完業(yè)務(wù)手冊(cè)和數(shù)據(jù)結(jié)構(gòu),他就明白我代碼為什么這么寫。而且我的函數(shù)由于都是自己負(fù)責(zé)輸入?yún)?shù)和輸出參數(shù)的校驗(yàn),有明確和統(tǒng)一的報(bào)錯(cuò)信息,所以很容易找到錯(cuò)誤進(jìn)行BUG修復(fù)。由于我的程序都是小函數(shù)組成的,都有明確報(bào)錯(cuò),所以錯(cuò)誤很容易找到,經(jīng)過測(cè)試組的專業(yè)測(cè)試后,我的代碼很穩(wěn)定,即使出錯(cuò),也擴(kuò)散不大,都是小bug,對(duì)系統(tǒng)整體沒有大影響

    雖然我在前進(jìn)的過程中也經(jīng)歷過困惑,一心鉆在OOP和設(shè)計(jì)模式中。但是有可能是功力不夠,不得其解。看著Delphi的源碼,應(yīng)用了很多的OOP和模式,并且他的類庫(kù)多年發(fā)展也沒有多大的改變,所以深信OO和模式的威力,而對(duì)自己的能力很灰心。但是代碼還得繼續(xù)寫,還想進(jìn)一步提高,于是才摸索出現(xiàn)在的一套做法。既實(shí)用又簡(jiǎn)單應(yīng)用,每個(gè)人都能辦到。

    我認(rèn)為我的代碼方法已經(jīng)可以滿足現(xiàn)在的產(chǎn)品制造,并且在軟件性能調(diào)整上也積累了一些珍貴的經(jīng)驗(yàn)。我發(fā)現(xiàn)性能最容易提高也效果最明顯的就是用SQL profilter,優(yōu)化SQL。優(yōu)化代碼,因?yàn)樯婕暗綐I(yè)務(wù),很不好著手。優(yōu)化數(shù)據(jù)庫(kù)結(jié)構(gòu),由于代碼都是構(gòu)建在特定數(shù)據(jù)表之上,所以這是最難改的地方,但是我高興了沒多久,我又遇到問題了。因?yàn)槲业某绦蚣词乖俸酶模强蛻舻男枨笳媸乔姘俟郑颐刻煸诮勇犛脩舻碾娫挘⑶倚薷挠脩羟姘俟值膯栴}。我很煩。于是我作了實(shí)施員。我想真正看看客戶到底怎么回事。于是我理解了很多。我明白了很多的事情不是技術(shù)和軟件所能解決的,而是現(xiàn)實(shí)環(huán)境的弊病。但是這個(gè)弊病還不是一個(gè)工程就能解決的,這是一個(gè)復(fù)雜的網(wǎng)。所以這些問題我就說服用戶不要用軟件來處理,因?yàn)檐浖撬赖模说淖龇ㄊ庆`活的。而且我發(fā)現(xiàn)用戶雖然提了很多需求,但是有的需求他一個(gè)月用不了一次,但是修改起來卻不容易。有的需求修改完,在實(shí)際應(yīng)用中卻發(fā)現(xiàn)不可行,那個(gè)需求只是客戶想解決過去的問題而想的一個(gè)辦法根本沒有經(jīng)過實(shí)際的校驗(yàn)。有的需求修改來修改去都是表面問題,在實(shí)際應(yīng)用中才發(fā)現(xiàn)重點(diǎn)問題沒有提需求所以上線又?jǐn)R下了,我作了總結(jié):

    1、軟件擅長(zhǎng)大數(shù)據(jù)量計(jì)算和查詢,還有數(shù)據(jù)聯(lián)網(wǎng)共享,如果需求不能發(fā)揮軟件特點(diǎn),就不讓軟件實(shí)現(xiàn)。這樣我少修改了一些;
    2、有的需求都是表面需求,修改了也用處不大,反而耽誤了重點(diǎn)需求的提出和修改,所以告訴用戶只修改核心功能。但是用戶提了很多需求,不修改完不上線。后來發(fā)現(xiàn),由于他們沒有深刻理解我們系統(tǒng)的整體思想,所以沒有上線實(shí)際用,根本不知道新改的功能是否好用。用戶只是脫離了整體,單獨(dú)思考想怎么就怎么,沒上線根本他不知道后果,怎么說也不行,就得讓他看見教訓(xùn)他才反悔,但是已經(jīng)修改了。往往出現(xiàn)這樣的情況。最后得出一個(gè)結(jié)論:一次只提三個(gè)需求,并且用書面提出,免的說了不算算了不說。核心功能的需求修改可以滿足80%的日常使用就上線。這樣我少修改了很多;
    3、并且我在實(shí)際做工程中,積累了大量的經(jīng)驗(yàn),寫成FAQ,各種成功案例,讓用戶在沒有提需求之前先看看自己到底有多少老軟件實(shí)在不能解決而才買新軟件幫助的事。新軟件就是解決你過去解決不了的事。如果你沒有解決不了的事,提什么需求;

    我的產(chǎn)品終于可以很快完成上線,所以可以大規(guī)模推廣市場(chǎng)了,但是我們的產(chǎn)品制造又出問題了。因?yàn)榭蛻粼絹碓蕉啵蛻舻男枨笤絹碓蕉唷N覀冃枰_發(fā)更多的系統(tǒng),但是我們的時(shí)間有限,我們的人手有限,而且我們的人手大多是新手。怎么辦。我們遇到了災(zāi)難。我們的代碼質(zhì)量因人而異。我們的版本管理混亂。我們的文檔沒有人編寫,大家都被分配到用戶處去上線。怎么準(zhǔn)備數(shù)據(jù)字典,怎么切換系統(tǒng),怎么記錄客戶需求,怎么管理系統(tǒng),怎么修改代碼,我們沒有任何記錄。現(xiàn)場(chǎng)不能離開程序員一步,一離開用戶出事了就不知怎么辦,沒有任何可查的資料。于是我又做了項(xiàng)目管理,我們?nèi)鄙俸芏嘁?guī)范。事有千萬,先從緊處來。寫文檔費(fèi)時(shí)間,就開會(huì)給大家講做事的經(jīng)驗(yàn)。實(shí)施和代碼修改需要什么必要規(guī)范就制定什么規(guī)范。在這期間最容易犯的錯(cuò)就是中央集權(quán),什么事都必須自己做主。下屬不管大事小事都請(qǐng)示你。我被搞的什么都干不了,都成了救火隊(duì)員。我的團(tuán)隊(duì)陷入了混亂之中,因?yàn)槲覠﹣y之中作了很多飲鴆止渴的決定。我于是又犯了一個(gè)錯(cuò)誤,我說你們能決定的事盡量自己決定,不要問我,我權(quán)利下放。結(jié)果是:各自作各自的事,互相不通知。有的事沒人管,有的事多人修改,各有一套。

    我終于明白了,我作了以下總結(jié):
    1、項(xiàng)目經(jīng)理是找到得力的人,指導(dǎo)他們做事的方向。如果下屬不知如何作時(shí),及時(shí)提供給下屬做事方法;
    2、制定規(guī)范,其實(shí)也就是做事方法;
    3、制定計(jì)劃,分配人力去作。檢查結(jié)果;
    4、有緊急事務(wù)立刻做出果斷解決,繼續(xù)前進(jìn);

    我的團(tuán)隊(duì)終于平靜了下來,但是大家都很疲憊。大家干的很累,但是由于實(shí)施和修改消耗了大量的錢,我們沒有賺錢,大家什么都沒有得到。團(tuán)隊(duì)很灰心,也很失望。我下了計(jì)劃,我自己都很灰心,大家認(rèn)為再努力也不會(huì)再有結(jié)果,所以拖拖拉拉,進(jìn)度和成本已成不可再提的事情。人,缺少了精氣神,就什么都沒有了。我們就是缺少了這些。我就開始重新建立團(tuán)隊(duì)的精神。我發(fā)現(xiàn)有人為了跳槽開始學(xué)習(xí)新的技術(shù),而這種技術(shù)是公司現(xiàn)有產(chǎn)品不需要的,但是他們卻在上班時(shí)間作。我先從此下手。我講了技術(shù)的方向,讓他們認(rèn)清他們現(xiàn)在所學(xué)將會(huì)很快淘汰。我又講了現(xiàn)在市場(chǎng)的實(shí)況,讓他們認(rèn)清外面公司也不好過。我還講了我們所從事的行業(yè)多有潛力,我們公司將有新的舉措。人心又開始一點(diǎn)一點(diǎn)收回了。

    但是我們?nèi)匀恍枰瓿赡切┪词瘴驳墓ぷ鳎匀恍枰ケ几靶碌目蛻羰袌?chǎng)。雖然員工很疲憊,雖然我們剛從飄搖中過來,但是我們不能止步,因?yàn)槲覀優(yōu)橛嬖冢覀儎e無選擇。我能夠?qū)⒋a寫的很好,性能很高,產(chǎn)品制造很有計(jì)劃和成本控制,團(tuán)隊(duì)很有戰(zhàn)斗力。但是我發(fā)現(xiàn)了一個(gè)問題,我們的產(chǎn)品市場(chǎng)不再擴(kuò)大了。市場(chǎng)份額大規(guī)模開拓已很艱難,因?yàn)樾庐a(chǎn)品的新鮮感已經(jīng)過去了。我們?cè)趧?dòng)蕩的日子作的項(xiàng)目給公司帶來了陰影,公司一直沒有大賺錢,投資方很生氣。我明白了。公司畢竟是為利潤(rùn)而存在的。公司不是為產(chǎn)品制造而存在,不是為了解決別人的問題而存在。賺錢是第一位。不賺錢即使你在媒體上作的很風(fēng)光也一文不值。有人靠手賺錢,有人靠嘴賺錢,有人靠腦子賺錢,有人靠身體賺錢,不管黑貓白貓,只要抓住老鼠就是好貓。成在營(yíng)銷,敗在管理。我開始關(guān)注資本運(yùn)作,聯(lián)盟伙伴建設(shè),市場(chǎng)營(yíng)銷,客戶關(guān)系營(yíng)運(yùn)。

    我知道,生活才剛剛開始。

    posted on 2005-05-04 02:07 Vikings 閱讀(229) 評(píng)論(0)  編輯  收藏 所屬分類: 程序哲學(xué)

    主站蜘蛛池模板: 亚洲av一综合av一区| 亚洲综合激情另类专区| 亚洲一级毛片在线播放| 在免费jizzjizz在线播| 久久亚洲AV成人无码| 91热成人精品国产免费| 亚洲AV无码精品蜜桃| 国产福利在线观看免费第一福利| 国产精品亚洲午夜一区二区三区| 大学生一级毛片免费看| 亚洲爆乳成av人在线视菜奈实 | 日韩电影免费在线观看网址| 猫咪www免费人成网站| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 亚洲免费人成视频观看| 国产亚洲精品VA片在线播放| 国产做床爱无遮挡免费视频| 一个人看的在线免费视频| 亚洲大成色www永久网站| 亚洲精品视频免费看| 四虎亚洲精品高清在线观看| 免费jjzz在线播放国产| 999zyz**站免费毛片| 亚洲色图在线观看| 青青青青青青久久久免费观看| 本道天堂成在人线av无码免费| 亚洲国产二区三区久久| 在线播放免费人成视频在线观看 | 日韩欧美亚洲国产精品字幕久久久| 永久在线观看www免费视频| 亚洲综合欧美色五月俺也去| 免费又黄又爽的视频| 日韩精品无码一区二区三区免费| 亚洲色成人四虎在线观看| 色噜噜亚洲精品中文字幕| 永久在线观看www免费视频| 美女免费精品高清毛片在线视| 亚洲va无码专区国产乱码| 在线观看成人免费| 黄页免费在线观看 | 亚洲国产二区三区久久|