天天看點

成為專業程式員的 6 個技巧—兄弟連IT教育

成為專業程式員的 6 個技巧—兄弟連IT教育

1.在你責怪别人之前,先檢查自己的代碼

先想一想自己的假設和其他人的假設。來自不同供應商的工具可能内置不同的假設,即便是相同的供應商對于不同的工具,其假設也可能不同。

當其他人正在報告一個你不能重複的問題的時候,去看看他們在做什麼。他們可能會做一些你從來沒有想到過的事情,或者他們的做事順序與你的截然不同。

我個人的原則是,如果我有一個不能确定的錯誤,那麼我會先考慮是不是編譯器的問題,然後再去檢查堆棧是否損壞。特别是當添加跟蹤代碼會使得問題移動的話就更要這麼做了。多線程問題是bug的另一個來源,有時候令人焦躁得簡直想拔光頭發,或者直接想摔電腦。當系統是多線程的時候,最好傾向于簡單的代碼。我們不能依賴調試和單元測試來發現任何一緻性的bug,是以設計的簡單性是最重要的。

是以,在你不分青紅皂白地去責怪編譯器之前,先想一想福爾摩斯的這條建議,“一旦你排除了種種不可能,剩下的不管有多麼難以置信,一定就是真相”。

2.不斷學習

我們生活在一個有趣的時代。随着軟體開發逐漸遍布全球各地,你會發現有很多人都可以幹你的工作。是以你需要不斷學習以保持競争力。否則,你就會落伍,停滞不前,直到有一天,這份工作不再需要你,或外包給一些更廉價的勞動力。

那麼我們能做些什麼?有些雇主很慷慨,會提供教育訓練以拓寬你的技能。也有的人會說我沒時間或者沒這個資金去接受任何教育訓練。是以,關鍵是要擺正心态,學習是對自己的負責。

當然如果你有《黑客帝國》中Neo那樣的超能力,自然這一切對你而言不過是小菜一碟。但很可惜,我們都是普通人,我們需要時間和精力,以及不斷的努力才能促使自己不斷的學習。不過,你不必成天學習。隻要你能有意識地花點時間去學習就可以了,哪怕每天一小時,有總比沒有好。人活着不是為了工作,你還應該有自己的生活。

3.不要害怕破壞東西

每個具備行業經驗的程式員肯定參與過代碼庫岌岌可危的項目。系統很糟糕,并且改變這邊總是會破壞另一邊不相關的功能。每次添加子產品,程式員隻能想着盡可能少地改變代碼,每次釋出都膽戰心驚。這座軟體的摩天大樓随時有坍塌的可能。之是以改動代碼會如此傷腦筋是因為系統太糟糕了。但是即使你知道系統出了問題,卻又因為投鼠忌器,而不得不聽之任之。任何一個外科醫生都懂得,傷口要想愈合就必須得切除腐肉。雖然手術會帶來痛苦,但絕對比任傷口發炎潰爛要好。

不要害怕你的代碼。沒有人會在乎當你搗鼓代碼的時候有沒有暫時破壞了什麼東西。隻要你做的改變不會讓項目重新回到開始狀态,就不會令人崩潰。投入時間重構,能讓你受益于項目整個生命周期。這樣做還有一個額外的好處是,由于你有過這種處理病危系統的經驗,是以你對它應該如何工作非常内行。要善于應用這些知識,千萬不要反感這些寶貴的财富。重新定義内部接口,重構子產品,重構複制粘貼代碼,并通過減少依賴來簡化設計。你可以通過消除特殊情況顯著降低代碼的複雜性,因為特殊情況往往是因為錯誤的耦合特點導緻的。慢慢地從舊結構過渡到新結構,測試一路同行。如果你想要一下子完成一個大的重構,那麼往往會因為各種頻出的問題而考慮中途放棄。

4.專業程式員

專業程式員的一個最重要的特點是有責任心。專業程式員會為他們的職業生涯、預算、日程安排承諾、錯誤、技能技巧負責。一個專業的程式員不會将責任推卸給别人。專業程式員會為他們編寫的代碼負責。除非他們知道這些代碼是有效的,否則就不會釋出代碼。現在,好好思考這個問題:如果是你,你會不會在不透徹了解代碼的情況下就直接釋出代碼?專業程式員不希望QA找到任何bug,因為這些代碼都是經過他測試之後才釋出的。當然,QA依然會發現一些問題,因為沒有一個人是完美的。但作為專業程式員,我們的态度應該是讓QA找不到任何缺陷。

專業程式員也是好的團隊成員。他們負責地對待整個團隊的輸出,而不是隻顧自己的工作。他們樂于助人,善于向彼此學習,在需要的時候甚至會鼎力相助,為了項目前仆後繼。

5.充分利用代碼分析工具

測試的價值是程式設計早期階段就灌輸給軟體開發者的一個理念。近年來,單元測試,測試驅動開發和靈活方法的興起,證明了我們開始注重于在開發周期的各個階段進行測試。但是,測試隻是你可以用來提高代碼品質的許多工具之一。

現在的語言、編譯器和靜态分析工具的設計和以前已經大不相同。由于記憶體和CPU時間變得相對比較便宜,是以負擔得起編譯器檢查更多的錯誤。幾乎每一種語言都擁有至少一個工具,用來檢查風格指南的違規行為、常見問題以及一些狡猾的有時候可能很難捕捉到的錯誤,如潛在取消引用空指針。更進階的工具,如C的Splint,以及Python的pylint,是可配置的,這意味着你可以通過指令行開關或在IDE中,使用配置檔案來讓工具選擇放過其中的哪些錯誤和警告。Splint甚至還能讓你在注釋中注解你的代碼,以便于更好地提示你的程式是如何工作的。

6.關心代碼

優秀程式員能寫出好代碼,這是毋庸置疑的。壞程式員……則不能(他們能寫出好代碼,就不是壞程式員了,哈哈)。他們總是在生産其他人不得不消滅的怪獸。你的目标是寫出好代碼,對不?那麼你應該成為好程式員。

好的代碼并不是憑空而來的,也不能靠運氣然後恰巧讓你瞎貓碰到死老鼠。為了獲得良好的代碼,你必須努力的改進。過程是艱難的。但是如果你确實關心代碼的話,那麼你一定能收獲好代碼。

基于我多年的軟體生産經驗,我得出的結論是,差強人意的程式員和偉大的程式員之間的真正差別是:态度。好的程式設計在于專業的方法,以及一種竭盡全力希望寫出最好軟體的期望。

要成為一個優秀的程式員,你必須對自己的代碼負責,真正關心代碼——養成積極向上的心态。偉大的代碼是由大師精心雕琢的,而不是由那些馬虎的

程式員胡亂寫出來的。

免費領取LAMP兄弟連原創PHP視訊教程CD光牒/《細說PHP》精要版,詳情咨詢官網客服:

http://www.lampbrother.net

【兄弟連IT教育】學PHP、Linux、HTML5、UI、Android等視訊教程(課件+筆記+視訊)!

網盤教程下載下傳:http://pan.baidu.com/s/1mg8ANMg