程序員效率指南

## 1. 區(qū)分需求的輕重緩急

新手程序員最大的問(wèn)題就是,在面對(duì)一堆需求的時(shí)候,不知道哪一個(gè)才是重要的,學(xué)會(huì)分辨重要的需求是需要一定的經(jīng)驗(yàn)的丸逸,這需要在實(shí)踐的過(guò)程中積累。于此同時(shí)剃袍,需求也有是否緊急的區(qū)分黄刚,合理安排順序有利于提高工作效率,減少自身壓力民效。

通常來(lái)說(shuō)憔维,關(guān)于需求輕重緩急的問(wèn)題也可以和需求方溝通侍芝,但是主要注意的是,需求方不一定真正理解自己所提出的需求埋同,也不一定能夠給出正確的安排。

## 2. 學(xué)會(huì)發(fā)現(xiàn)偽需求

并不是所有的需求都是有現(xiàn)實(shí)意義上的必要性的棵红,這種無(wú)意義的需求被稱為偽需求凶赁,但又總會(huì)有一些這樣的需求提上來(lái)。

例如逆甜,需求方要求你給一個(gè)列表做搜索功能虱肄,然而你發(fā)現(xiàn)這個(gè)列表的元素個(gè)數(shù)絕對(duì)不可能達(dá)到兩位數(shù),那么這用十個(gè)手指頭就能數(shù)過(guò)來(lái)的列表交煞,真的有必要做搜索功能咏窿?

對(duì)于偽需求,我們要做的就給出理由素征,并拒絕掉集嵌。

## 3. 深入理解需求意圖

很多需求方在提需求的時(shí)候,是不會(huì)明確的表達(dá)真實(shí)需求的御毅,而是把自己當(dāng)成了設(shè)計(jì)師根欧,自作主張的告訴開(kāi)發(fā)者要做什么,甚至怎么做端蛆。

? 這種需求都不是真實(shí)的需求凤粗,只是需求方從真實(shí)需求的基礎(chǔ)上,提出的自己對(duì)于這個(gè)問(wèn)題的理解今豆,以及解決方案嫌拣。因此在接受需求的時(shí)候,開(kāi)發(fā)者必須主動(dòng)弄清原始的需求是怎樣的呆躲。

? 這樣做至少我認(rèn)為有兩個(gè)好處异逐,一個(gè)是不會(huì)被需求方帶到坑里去,另外我們自身可以從原始需求上得到更多的信息歼秽,在設(shè)計(jì)層面留下足夠的擴(kuò)展性应役。


## 4. 提高項(xiàng)目決策效率

對(duì)于一些項(xiàng)目會(huì)議,容易出現(xiàn)冗長(zhǎng)的膠著的討論燥筷,大家對(duì)一些問(wèn)題看法不一箩祥,然后會(huì)議就沒(méi)有一個(gè)終結(jié)的時(shí)間。因此肆氓,對(duì)于一個(gè)團(tuán)隊(duì)袍祖,必須有一個(gè)決策人,在必要的時(shí)候終止討論谢揪,并給出結(jié)論蕉陋。

民主還是專制捐凭?在項(xiàng)目開(kāi)發(fā)上來(lái)看,讓一個(gè)優(yōu)秀的首領(lǐng)決斷凳鬓,比爭(zhēng)論不休更有意義茁肠。

## 5.? 不要重復(fù)造輪子

這是一個(gè)聊得挺多的話題,這里就一筆帶過(guò)缩举。

? 其實(shí)個(gè)人也不是說(shuō)不喜歡造輪子垦梆,平時(shí)練習(xí)造輪子挺好,項(xiàng)目開(kāi)發(fā)上來(lái)造輪子仅孩,百害而無(wú)一利(除非你能超越其他輪子)托猩。

## 6. 使用配置代替編碼

用配置代替編碼,有另外一個(gè)意思——用代碼來(lái)寫代碼辽慕。

其實(shí)這種思想非常常見(jiàn)京腥,例如很早之前的百度空間(現(xiàn)在已經(jīng)涼了),就給出了自定義模板的功能溅蛉,我們只需要拖動(dòng)一些界面元素公浪,就能配置出自己風(fēng)格的空間來(lái)。這里面就是用到了用配置代替編碼的思想船侧,開(kāi)發(fā)者并不需要為每一個(gè)博客樣式寫一遍代碼因悲,只需要提供配置的信息,即可生成對(duì)應(yīng)的博客樣式勺爱。

具體在實(shí)際項(xiàng)目開(kāi)發(fā)中晃琳,這種方式能大大減少代碼量,并且降低出bug的概率琐鲁。

## 7. 不要浪費(fèi)時(shí)間在修bug上

這句話的意思不是說(shuō)有bug不修卫旱,而是說(shuō)盡量不要讓代碼出bug,如果出現(xiàn)bug也能快速定位問(wèn)題围段。

? 《UNIX編程藝術(shù)》里面有強(qiáng)調(diào)一個(gè)KISS原則——Keep It Simple, Stupid顾翼,意思就是事情能夠簡(jiǎn)單辦好,就不要把它弄復(fù)雜奈泪。

? 對(duì)于一份代碼适贸,它可以是簡(jiǎn)單到明顯看不出問(wèn)題,也可以是復(fù)雜到看不出明顯的問(wèn)題涝桅。

? 日志系統(tǒng)有必須要對(duì)系統(tǒng)的運(yùn)行狀況進(jìn)行記錄拜姿,如果能直接從日志中就能定位問(wèn)題的話,減少了很多調(diào)試上的麻煩冯遂。

? 在代碼bug這個(gè)話題上蕊肥,有一個(gè)比較特別的類別,就是系統(tǒng)限制問(wèn)題引起的bug蛤肌。也就是說(shuō)壁却,你的代碼本身邏輯沒(méi)有問(wèn)題批狱,只是數(shù)據(jù)一直增長(zhǎng),導(dǎo)致達(dá)到了系統(tǒng)的限制展东,而導(dǎo)致代碼不能正常工作赔硫。

? 例如,騰訊QQ之前的用戶QQ號(hào)碼是用32位int類型存儲(chǔ)的盐肃,因此它會(huì)有一個(gè)上限卦停,在之后的一段時(shí)間內(nèi),騰訊不得不對(duì)數(shù)據(jù)庫(kù)進(jìn)行升級(jí)恼蓬,使用64位int來(lái)存儲(chǔ)。

? 為了減少系統(tǒng)限制類的bug僵芹,開(kāi)發(fā)者有必要做出一些努力处硬,例如良好的內(nèi)存管理,以及對(duì)系統(tǒng)規(guī)模的恰當(dāng)估算等

? 不過(guò)現(xiàn)在計(jì)算機(jī)基本上都是64位了拇派,在大部分情況下荷辕,各位完全不用糾結(jié)是用int32還是int64的問(wèn)題,用int64就好了件豌。

## 8. 擴(kuò)展性問(wèn)題

由于需求總是容易變化的疮方,因此面對(duì)變化的需求,程序員也需要做一些預(yù)案茧彤。

? 例如骡显,參數(shù)能做成可配置的,就不要寫死曾掂。如果一個(gè)變量可能存在多個(gè)惫谤,但是需求暫時(shí)只描述了單個(gè),那么還是用數(shù)組珠洗,說(shuō)不定哪天就需要支持多個(gè)了溜歪,現(xiàn)在就支持多個(gè)并不會(huì)增加太多成本。

? 擴(kuò)展性問(wèn)題需要緊緊跟隨真實(shí)需求许蓖,程序員也需要有一些產(chǎn)品思維蝴猪,在設(shè)計(jì)上預(yù)留出可能的方向,不要在變化來(lái)臨時(shí)手忙腳亂膊爪。


## 9. 性能問(wèn)題

性能問(wèn)題是程序員都喜歡討論的一個(gè)問(wèn)題自阱,也是一個(gè)學(xué)術(shù)意義上非常重要的問(wèn)題,但是米酬,在項(xiàng)目開(kāi)發(fā)中动壤,卻通常是一個(gè)不用太在意的問(wèn)題。

項(xiàng)目的開(kāi)發(fā)淮逻,是成本導(dǎo)向的琼懊,我們需要用低成本來(lái)滿足項(xiàng)目需求阁簸。

項(xiàng)目上線之后,首先要看效果哼丈,效果不行的話启妹,自然沒(méi)什么用戶,因此也沒(méi)性能優(yōu)化什么事醉旦。

性能優(yōu)化的時(shí)機(jī)饶米,不是在項(xiàng)目開(kāi)發(fā),而是在項(xiàng)目維護(hù)车胡。等哪天用戶量上來(lái)了檬输,系統(tǒng)負(fù)載越來(lái)越高,先加機(jī)器匈棘,再花點(diǎn)時(shí)間研究下性能問(wèn)題丧慈,豈不美哉——至少又做成了一個(gè)項(xiàng)目。

性能優(yōu)化有時(shí)候會(huì)帶來(lái)一些負(fù)面效果主卫,最常見(jiàn)的就是破壞代碼結(jié)構(gòu)逃默,所以如果不是必須,就別去做性能優(yōu)化簇搅。

另外有一種情況完域,就是代碼寫得太渣拖慢了速度,修改這類代碼不叫性能優(yōu)化瘩将,而是叫修bug吟税。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市姿现,隨后出現(xiàn)的幾起案子乌妙,更是在濱河造成了極大的恐慌,老刑警劉巖建钥,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件藤韵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡熊经,警方通過(guò)查閱死者的電腦和手機(jī)泽艘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)镐依,“玉大人匹涮,你說(shuō)我怎么就攤上這事』笨牵” “怎么了然低?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我雳攘,道長(zhǎng)带兜,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任吨灭,我火速辦了婚禮刚照,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喧兄。我一直安慰自己无畔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布吠冤。 她就那樣靜靜地躺著浑彰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拯辙。 梳的紋絲不亂的頭發(fā)上郭变,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音薄风,去河邊找鬼。 笑死拍嵌,一個(gè)胖子當(dāng)著我的面吹牛遭赂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播横辆,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼撇他,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了狈蚤?” 一聲冷哼從身側(cè)響起困肩,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脆侮,沒(méi)想到半個(gè)月后锌畸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡靖避,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年潭枣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幻捏。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盆犁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出篡九,到底是詐尸還是另有隱情谐岁,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站伊佃,受9級(jí)特大地震影響窜司,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锭魔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一例证、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迷捧,春花似錦织咧、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至庆锦,卻和暖如春捅位,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搂抒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工艇搀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人求晶。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓焰雕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親芳杏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子矩屁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356