程序員如何做到代碼零缺陷

來源:公眾號敏捷力 ID:min_jie_li

作為一名程序員疾宏,我渴望我加入的應該要是一支“30%的時間在寫代碼宵蕉,而70%的時間在喝著咖啡討論著如何將產品做好”的團隊室抽。我覺得軟件工作應該成為一項技術和藝術融合的高智力活動览祖,我們的項目經理應該是一個高度理解質量、范圍和進度客觀規(guī)律的明白人扭仁,“高效工作垮衷,快樂生活”才應該是我們的座右銘。
可現實情況卻是乖坠,團隊在一邊超負荷的做著需求搀突,一邊改著沒完沒了的Bug。過點前夕熊泵,項目經理熬著通紅通紅的眼睛盯著我們整晚整晚的加班仰迁,質量專員一遍一遍的催促質量數據還不夠甸昏,軟件工作已經無可挽回的淪落成了體力勞動,別說快樂生活徐许,生活都沒了施蜜。
好吧,以上可能都對雌隅,項目經理和質量專員是一個不懂客觀規(guī)律并且毫無同情之心的大魔頭翻默,讓我們程序員們毫無尊嚴卑賤的活著。
只是恰起,有句話憋了很久了:“醒醒吧修械,所有的這些,都是因為你的代碼寫的太爛检盼,你制造了太多的Bug肯污!”。你可能會抱怨這分明是需求變更太快梯皿,領導計劃太緊導致的仇箱。嗯,聽著挺有道理东羹,但是要知道需求變更本身就是軟件的客觀規(guī)律剂桥,而領導要求進度,呵呵属提,你也可以認為是客觀規(guī)律权逗。
這不是一篇證明誰導致程序員加班太多的論證文,也不想給大家灌雞湯冤议,讓大家一夜之間都變成編程高手斟薇,但是至少說一些實實在在的經驗和方法∷∷幔總之讓大家多看一點就多獲得一點實際的價值堪滨。

01 不要一上來就開始寫代碼
你可能性子急,也可能早已按耐不住躍躍欲試昨天剛學會的一個編程小技巧蕊温,我想要告訴你的是袱箱,不急,收起你那磨刀霍霍的表情义矛,在你拿到需求準備寫出你第一行代碼之前還有更重要的事情要做发笔。我想怎么強調這件事情的重要性都不為過,在我以前寫的自己非常滿意的代碼經歷中凉翻,我都采用了這個方法了讨,它能消滅原來可能會被測試提的90%的Bug單,甚至做到零缺陷,當然做到這點可能需要一個過程前计。
拿到需求之后你首先要問下自己對需求是不是已經充分理解了胞谭,得到肯定的回答之后,我們就可以開始了:
1)先在你忙碌的工作中残炮,找出你能完全掌控的一個小時時間段韭赘,這一個小時完全屬于你自己,保證這一個小時不會有任何打擾势就,或者任何能影響到你執(zhí)行不下去這個方法的打擾。要記住這一個小時非常重要脉漏,比你后面要執(zhí)行的所有活動的時間都重要苞冯,它絕對值得。
2)在第一張白紙的上方寫下“該需求特性的正常流程和影響范圍”侧巨,然后在白紙下方逐條開始寫下該需求特性正常流程包含的內容舅锄,大概會使用到哪些庫函數,會提供出哪些接口司忱,是否會影響版本升級皇忿,是否影響資源文件,是否影響原有的接口等等坦仍。
3)在第二張白紙上方寫下“該需求特性所有的異常場景和本人以往經常會犯的一些錯誤點”鳍烁,然后在白紙下方一條一條的開始往下寫。
4)不斷重復第2)繁扎、3)步幔荒。
你可能會覺得這不就跟寫的需求澄清材料差不多嗎,我要告訴你的是這是兩回事梳玫,它不是一項質量專員要求你做的質量過程活動爹梁,這是你自己和自己之間的一次深層次對話,這不需要告訴任何人提澎,不需要向其他領域輸出任何交付物姚垃,這是對自己要寫出優(yōu)秀代碼的一次自我驅動。
一開始你可能會覺得很難盼忌,寫幾條就寫不出來了积糯,或者閃過“這玩意兒是不是真的有用”的念頭,不用著急碴犬,起身去窗戶邊呼吸一口新鮮空氣或者去打杯水喝絮宁,總之不要中斷,除非辦公室著火了不要去干讓這件事繼續(xù)不下去的事情服协。當你慢慢往下寫到第20或者第30條答案的時候绍昂,你可能突然會有一種“這么隱晦的一個異常點都被我發(fā)現了,簡直太牛了!”的情感涌出窘游,這個時候你會暗暗驚呼有點難以抑制自己的興奮唠椭,這說明你快要接近成功完成了,后面每寫出來的一條都會讓自己感動忍饰。記住贪嫂,中間不要放棄,你堅持下去的決定會將這一個小時變成你整個需求實現當中最重要的一個小時艾蓝。

02 忘掉后面還有該死的質量活動
所有編碼之外的質量活動力崇,都是基于公司對于你寫代碼水平的不信任產生的。也就是說公司花了大量的錢招來質量專員赢织、網元測試亮靴、解決方案測試這些人都是因為你沒把代碼寫好造成的浪費。
常見一些開發(fā)人員于置,剛來的時候對質量專員安排的質量活動頗有微詞茧吊,“我以前公司做項目根本不需要做這些東西還不是一樣能把項目做完”,“這些質量活動八毯,簡直就是對編碼時間的侵占”搓侄。說這些都沒問題,但是你一邊說著這些一邊寫完代碼后Bug就烏泱烏泱上來话速,是不是有點不要臉讶踪?質量專員設計的這些活動,就是為了不讓你的爛代碼一瀉千里的沖到客戶面前設計的一個個檢查站尿孔,當你對于“寫出好代碼”什么事都沒做俊柔,只想著取消這些質量活動的話,就只能理解為耍流氓了活合。
那么雏婶,做好質量活動就能“寫出好代碼”嗎? 答案是不能。質量活動只是質量專員的監(jiān)管手段白指,它既不是目標甚至也不是方法留晚,你寫代碼的目標不是要滿足質量活動標準,而是要追求零缺陷告嘲,也不會因為你Wbit測試做的好就能寫出好代碼错维。你要做的一個是“不要一上來就開始寫代碼”,另外一個就是掌握盡量多的重構方法,重構思維方式橄唬,掌握重構并不一定是要對原來代碼的重構赋焕,而是下筆之前就知道好代碼該怎么寫。
我讓大家忘記質量活動仰楚,不是讓大家不聽質量專員的話隆判,而是大家在寫代碼的時候要心中存有敬畏犬庇,代碼寫完之后所有的活動都是你造成的浪費,你要為消除這些浪費而竭盡全力侨嘀。

03 記住臭挽,你寫的代碼是給人看的
我之前聽一位同事講他上一家公司的一件聽來十分驚悚的故事,他原來公司的一位同事離職了咬腕,留下的是一堆十分復雜欢峰,看了會讓人神經錯亂的C++代碼,他走了之后涨共,發(fā)現整個項目組的人沒有一個人能接手得了他的模塊纽帖,項目經理不得不高價加請客吃飯的方式讓他過來給全項目組的人講兩天他的代碼。 這個家伙大有“看吧举反,只有我才能搞定”的“衣錦還鄉(xiāng)”姿態(tài)抛计。我好奇的是這個項目經理為什么沒有盡早的開除他,簡直就應該報警啊照筑。
好的代碼是讓人看來賞心悅目的,任何能力不夠或者炫技成分的增加人的閱讀障礙的行為都需要被改進瘦陈,你能不能三兩句話就能說清楚你自己寫出來的代碼的脈絡凝危,當然這同樣涉及到你要掌握盡量多的重構方法和重構思維方式。
另外還有一個自我評判的標準晨逝,就是你捫心自問一下蛾默,“你寫了這么多代碼,你曾經為之動心過嗎捉貌?”你是否寫完之后會忍不住的反復閱讀自己寫完的代碼支鸡,并連連暗暗驚嘆代碼之美?
作為一名程序員趁窃,希望在你某天離開公司后回想起的若干個開心時刻中牧挣,有一個會是因為你面對自己剛剛出爐了一份讓自己心動的代碼的那份感動,而不要成為上面提到的那個“離開后醒陆,公司才知道他有多么重要”的家伙瀑构。

04 現在開始,刻意練習
你是否發(fā)現自己長期維持著“剛剛好能完成story”的代碼水平刨摩,寫了好幾年代碼仍然會被測試人員追著屁股提單寺晌?種種疑惑是因為代碼能力的提高跟你寫了多少年代碼沒有直接關系爷恳,你需要做的是刻意練習综膀。
比如把我前面提到的01、02叼丑、03中提到的方法反復練習罢浇,或者把你自己琢磨出來的方法分解成一項項的環(huán)節(jié)陆赋,刻意的去練習沐祷,從測試那里得到反饋,然后不斷加以改進奏甫,慢慢你就會從一個整天被測試人員追著跑的人戈轿,變成發(fā)現自己很容易就能達到質量過程標準的人,再慢慢就會發(fā)現你寫出來的代碼測試人員越來越難發(fā)現問題阵子,最后只要你狀態(tài)好點就能經常性的寫出零缺陷的代碼思杯。
其實有些道理我們貌似都知道,但是我覺得離真正懂得還差了兩步挠进,第一就是你需要親身去經歷色乾、踐行這些道理和方法,第二就是你要能夠轉述并讓其他人也能夠明白领突。所以最好的學習方式就是親身經歷暖璧,然后寫下來分享給大家,這樣才能讓你真正懂得那些你原來認為懂得了其實未必懂得的道理君旦。
稿源: 敏捷力微信公眾號

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末澎办,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子金砍,更是在濱河造成了極大的恐慌局蚀,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恕稠,死亡現場離奇詭異琅绅,居然都是意外死亡,警方通過查閱死者的電腦和手機鹅巍,發(fā)現死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門千扶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骆捧,你說我怎么就攤上這事澎羞。” “怎么了凑懂?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵煤痕,是天一觀的道長。 經常有香客問我接谨,道長摆碉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任脓豪,我火速辦了婚禮巷帝,結果婚禮上,老公的妹妹穿的比我還像新娘扫夜。我一直安慰自己楞泼,他們只是感情好驰徊,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著堕阔,像睡著了一般棍厂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上超陆,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天牺弹,我揣著相機與錄音,去河邊找鬼时呀。 笑死张漂,一個胖子當著我的面吹牛,可吹牛的內容都是我干的谨娜。 我是一名探鬼主播航攒,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼趴梢!你這毒婦竟也來了漠畜?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤坞靶,失蹤者是張志新(化名)和其女友劉穎盆驹,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體滩愁,經...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年辫封,在試婚紗的時候發(fā)現自己被綠了硝枉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡倦微,死狀恐怖妻味,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情欣福,我是刑警寧澤责球,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站拓劝,受9級特大地震影響雏逾,放射性物質發(fā)生泄漏。R本人自食惡果不足惜郑临,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一栖博、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧厢洞,春花似錦仇让、人聲如沸典奉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卫玖。三九已至,卻和暖如春踊淳,著一層夾襖步出監(jiān)牢的瞬間假瞬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工嚣崭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留笨触,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓雹舀,卻偏偏與公主長得像芦劣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子说榆,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內容