剛進(jìn)公司的那會(huì),導(dǎo)師出差了,就跟著一個(gè)公司號(hào)稱很牛的人一起開(kāi)發(fā)一個(gè)工具。那哥們整天喜歡搞一些很神奇的技巧,簡(jiǎn)簡(jiǎn)單單的一個(gè)邏輯檢查工具搞什么多線程,多線程就不說(shuō)了,確實(shí)是有必要的,可惜他開(kāi)發(fā)出來(lái)的框架,讓我們這些寫(xiě)具體實(shí)現(xiàn)的小嘍啰學(xué)習(xí)了將近一個(gè)多星期也沒(méi)有整明白,不但沒(méi)有設(shè)計(jì)文檔,代碼里面一切注釋欠奉,別人去問(wèn)他怎么搞,總是說(shuō)你去看代碼就知道了哦,當(dāng)時(shí)作為新人確實(shí)是比較郁悶哦,想說(shuō)也不敢說(shuō)哦,記得當(dāng)時(shí)實(shí)在是受不了跑去向該牛人請(qǐng)教一下他提供的接口該怎么用的時(shí)候,聽(tīng)到了一句俺一生都記得住的話:程序員之間是靠代碼交流的,你去看我的代碼!
狗屁哦!如果我有一天是老板了,我手下的員工要是敢說(shuō)出這樣的話,立馬叫他滾蛋哦,真是shit!一份沒(méi)有提供對(duì)外接口詳細(xì)實(shí)現(xiàn)的文檔的代碼就不能接受了,如果加上在關(guān)鍵實(shí)現(xiàn)的地方?jīng)]有注釋的代碼那就更不能原諒了,最可惡的要是負(fù)責(zé)提供公共方法的程序員居然神神道道的說(shuō)讓別人去看什么文檔注釋都欠奉的代碼來(lái)了解公共接口怎么用,這樣的員工不是浪費(fèi)大家的時(shí)間嗎,每個(gè)程序員編程的風(fēng)格都是不一樣的,實(shí)現(xiàn)同一個(gè)問(wèn)題的思路也是不同的,你讓別人去看你的代碼,那要你實(shí)現(xiàn)公共方法有什么用哦,還不如讓別人自己都來(lái)寫(xiě)方法算了哦!
記得這個(gè)事情曾經(jīng)和現(xiàn)在的老大在外面抽煙的時(shí)候聊過(guò),他的分析我就覺(jué)得很有道理哦,公司招人來(lái)編程是要效率的,每天的程序員的工資也是不便宜的,你讓別人做一些重復(fù)的不必要的工作就是在浪費(fèi)公司的資源,浪費(fèi)公司的資源那就降低了效率,降低了效率那就是害群之馬哦! 現(xiàn)在編程說(shuō)是技術(shù)又能有多大的門(mén)檻,找?guī)讉€(gè)中人之資的人基本上是可以抵得上一個(gè)在技術(shù)上比較牛的人了,什么技術(shù)找?guī)讉€(gè)人每個(gè)人專門(mén)搞這玩意的一個(gè)方面,總是能趕得上一個(gè)牛人的。那你作為牛人一個(gè)人搞定了一件事,可是這件事情只有你一個(gè)人知道怎么做,不告訴其他的同事怎么去做,大家作為一個(gè)團(tuán)隊(duì),整體的效率其實(shí)是低下的。
想想也是哦,當(dāng)時(shí)我們小組的七個(gè)人寫(xiě)實(shí)現(xiàn),花了一個(gè)多星期才弄明白那哥們寫(xiě)的框架是怎么搞的,這個(gè)框架整明白了,還要整他提供的公共接口又花了好幾天的時(shí)間。呵呵,算起來(lái)也抵得上一個(gè)人搞兩個(gè)月了哦,那工具讓我一個(gè)寫(xiě),我現(xiàn)在想起來(lái)以我當(dāng)時(shí)一個(gè)對(duì)業(yè)務(wù)邏輯完全不熟悉的人估計(jì)一個(gè)月也能整出來(lái)哦,這樣來(lái)算減法其實(shí)是浪費(fèi)了不少時(shí)間的哦。再說(shuō)啦,那所謂牛人寫(xiě)的工具的框架也不怎么樣哦,整的是多線程可是深究下去其實(shí)還是單線程的設(shè)計(jì)思想,基本上沒(méi)有體現(xiàn)多線程的優(yōu)點(diǎn),什么都往內(nèi)存里面搞,跑起來(lái)隨隨便便就4G的內(nèi)存消耗,線程之間的調(diào)度也是垃圾的要死,到這哥們離職的時(shí)候工具還動(dòng)不動(dòng)就掛掉了哦,早聽(tīng)我的在后臺(tái)建立一個(gè)監(jiān)控線程來(lái)調(diào)度各個(gè)線程也不用通宵調(diào)bug也找不來(lái)為什么了哦,呵呵幸虧中途離開(kāi)了那個(gè)小組,導(dǎo)師回來(lái)的真是時(shí)候哦,要不然接手了那個(gè)爛攤子不把自己搞死哦,順便為接受爛攤子的難友默哀一下!
呵呵,廢話這么多 終于引出第一篇Blog的主題,沒(méi)有文檔的代碼就是垃圾,我覺(jué)得一個(gè)項(xiàng)目開(kāi)始開(kāi)發(fā)的時(shí)候做的第一件事就是編碼風(fēng)格的確定,編碼風(fēng)格包括很多啦,不過(guò)其中的重點(diǎn)就是公共接口的規(guī)范化命名,注釋的寫(xiě)法,文檔的規(guī)范,這些東西允許有不同意見(jiàn),可以在小組會(huì)議上提出來(lái),大家經(jīng)過(guò)討論,哪怕是相互爭(zhēng)吵,只要是有道理的就應(yīng)該采納。不過(guò),不管怎么樣只要確定了編碼風(fēng)格一定要強(qiáng)制執(zhí)行,如果組員寫(xiě)出了不符合規(guī)范的代碼,一定要讓其重寫(xiě),這樣對(duì)以后的開(kāi)發(fā)是大有好處哦!還有就是設(shè)計(jì)文檔一定要同步于代碼哦,俺們公司雖然是過(guò)了CMMI 3可這最基本的一點(diǎn)都做的不好啊,不過(guò)我們項(xiàng)目做的還是不錯(cuò)的啦。