1. 程序員勵志語錄
作為一個真正的程序員,首先應該尊重編程,熱愛你所寫下的程序,他是你的夥伴,而不是工具。下面是關於程序員勵志語錄的內容,歡迎閱讀!
1、永不放棄,永不放棄又有兩個原則,第一個原則是永不放棄,第二個原則就是:當你想放棄時回頭看第一個原則。
2、非優秀的程序員常常把空間和時間消耗殆盡,優秀的程序員則總是有足夠的空間和時間去完成編程任務,而且配合近乎完美。
3、這句話不是很文雅,徹底鄙視那些害怕別人超越自己而拒絕回答別人問題的程序員。
4、你比他好一點,他不會承認你,反而會嫉妒你,只有你比他好很多,他才會承認你,然後還會很崇拜你,所以要做,就一定要比別人做得好很多。
5、每一個問題都是一把鎖,你要相信世界上一定有一把鑰匙能打開這把鎖,你也能找到這把鑰匙。
6、內存無論在怎麼發展,它都會有一個容量的限制。因此你應該堤防著它。你的程序如果導致內存泄漏,是程序員很可恥的事情。
7、當你想在你的代碼中找到一個錯誤時,這很難;當你認為你的代碼是不會有錯誤時,這就更難了。
8、用代碼行數來測評軟體開發進度,就相對於用重量來計算飛機建造冊空殲進度。
9、初學者請不要看太多太多的書那會誤人子弟的,先找本系統的學,很多人用了很久都是只對部分功能熟悉而已,不系統還是不夠的。
10、當你用腳本到一半卻發現自己用的方法很拙劣時,請不要馬上停手;請盡快將餘下的部分粗略的完成以保證這個代碼的完整性,然後分析州沖自己的錯誤並重新編寫和工作。
11、真正的程序員的程序不會在第一次就正確運行,但是他們願意守著機器進行若干個30小時的調試改錯。
12、一匹真正的好馬,即使在鞭子的影子下,也能飛奔。
13、一個人靜靜坐在電腦面前寫代碼的感覺,那是什麼感覺?那是武林高手閉關修煉的感覺。
14、人吶,眼光放得長遠一些,看到的東西也會多一些,生活也就會過得更有意義一點。
15、真正的程序員不畫流程圖,原始人和文盲才會干這事兒。
16、看幫助,不要因為很難而自己是初學者所以就不看;幫助永遠是最好的參考手冊,雖然幫助的文字有時候很難看懂,總覺得不夠直觀。
17、優秀的判斷力來自經驗,但經驗來自於錯誤的判斷。
18、程序中蘊含著很多的道理,唯有大徹大悟者方能體會其中的奧妙。
19、如果建築工人蓋房子的方式跟程序員寫程序一樣,那第一隻飛來的啄木鳥就將毀掉人類文明。
20、真正的程序員不看參考手冊,新手和膽小鬼才會看。
21、程序是我的生命,但我相信愛她甚過愛我的生命。
22、別心急,寫腳本確實不容易;水平是在不斷的實踐中完善和發展的。
23、知道一點東西,並不能說明你會寫腳本,腳本是需要經驗積累的。
24、看得懂的書,請仔細看;看不懂的書,請硬著頭皮看。
25、我們應該重視團隊的精神,一個人作用再大,也不過是一碗水中比較大的一粒水珠而已。
26、程序員,他們想的是什麼?他們想的永遠都是技術,他們崇尚的也永遠都是技術。
27、真正的程序員不寫文檔也不需要文檔,只有看不懂程序的笨蛋才用文檔。
28、程序員可以讓步,卻不可以退縮,可以羞澀,卻不可以軟弱,總之,程序員必須是勇敢的。
29、真正的程序員不接受團隊開發的理念,除非他自己是頭頭。
30、真正的程序員沒有進度表,只要討好領導的馬屁精才有進度表,真正的程序員會讓領導提心吊膽。
31、編程中我們會遇到多少挫折?表放棄,沙漠盡頭必是綠洲。
32、不要被對象、屬性、方法等詞彙所迷惑;最根本的是先了解最基礎知識。
33、把在書中虧廳看到的有意義的例子擴充;並將其切實的運用到自己的工作中。
34、我們這個世界的一個問題是,蠢人信誓旦旦,智人滿腹狐疑。
35、無私奉獻不是天方夜譚,有時候,我們也可以做到。
36、如果你喜歡底層開發,千萬不要勉強自己去搞VC,找到你最真實的想法,程序員最不能忍受的就是萬精油。
37、調試完一個動態連接函數,固然值得興奮,但真正的成功遠還在無數個函數之後。
38、設計是一個發現問題、而不是發現解決方案的過程。
39、就算我們站在群山之顛,也別忘記雄鷹依舊能從我們頭頂飛過。驕傲是比用Java進行底層開發更可笑的東西。
40、一本好書,就像高級武功秘籍一樣,哪怕只是從裡面領悟到個一招半勢,功力提升起來都是驚人的。
41、不要看到別人的回復第一句話就說:給個代碼吧!你應該想想為什麼。當你自己想出來再參考別人的提示,你就知道自己和別人思路的差異。
42、真正的程序員幾乎不寫代碼的注釋,如果注釋很難寫,它理所當然也很難讀。
43、任何傻瓜都能寫出計算機可以理解的代碼。好的程序員能寫出人能讀懂的代碼。
44、做技術一定要一顆恆心,這樣才不會半途而廢。
45、如果調試一個程序讓你很苦惱,千萬不要放棄,成功永遠在拐角之後,除非你走到拐角,否則你永遠不知道你離他多遠,所以,請記住,堅持不懈,直到成功。
46、你的一個程序有時正常有時不正常,而你已經完全遵循編程的規則,為什麼?事實上我認為相信只要遵循別人所說就能得到想當然的結果的人其實是個傻瓜。
47、對於問題的理解,一定要透徹。這樣你才能實質的解決問題。
48、編程是一種單調的生活,因此程序員比普通人需要更多的關懷,更多的友情。
49、對程序員來說大部分的快樂是從解決問題,特別是獨立解決問題中獲得,而不是從這個CASE有多大,獎金有多少中獲得。
50、有兩種方法能寫出沒有錯誤的程序;但只有第三種好用。
51、其實你找不到錯誤不代表錯誤不存在,同樣你看不到技術比你牛的人並不代表世界上沒有技術比你牛的人。
52、你要麼要軟體質量,要麼要指針演算法;兩者不可兼得。
53、一個人靜靜坐在電腦面前寫代碼的感覺,那是什麼感覺?是武林高手閉關修煉的感覺。
54、理想如果不向現實做一點點屈服,那麼理想也將歸於塵土。
55、沒有情調,不懂浪漫,也許這是程序員的一面,但擁有朴實無華的愛是他們的另一面。
56、如果你沒有把握做到,最好就不要承諾,你什麼也不承諾,至少別人不會看不起你。
57、『理論』是你知道是這樣,但它卻不好用。『實踐』是它很好用,但你不知道是為什麼。程序員將理論和實踐結合到一起:既不好用,也不知道是為什麼。
58、請把書上的例子親手到電腦上實踐,即使配套光碟中有源文件。
59、程序員是值得尊敬的,程序員的雙手是魔術師的雙手,他們把枯燥無味的代碼變成了豐富多彩的軟體。
60、把時髦的技術掛在嘴邊,還不如把過時的技術記在心裡。
寥寥代碼中,命運註定良緣.
當編譯開始,我們齊手共建
--中國軟體的春天!
雖然我們是不同的對象,都有隱私的一面,
但我相信你會找到我的介面,把我的最真給你看!
因為我是你的指針,在茫茫內存的堆棧中,
永遠指向你那片天空,不孜不倦!
我願做你的內聯,供你無限次的調用,直到海枯石爛!
我願做你的引用,和你同進退共生死,一起經受考驗!
只是我不願苦苦地調試你的心情,最終淪為你的友元!
而我更不願始亂終棄,刪不清借你用的空間,
最後一拍兩散,搞得內存混亂...
如今我們已被MFC封裝--事事變遷!
如今我們已向COM走去--可想當年!
沒想到在愛情的世界裡, 0與1也是同樣的道理。
自從見到了你, 我的愛情旗標立刻變成了 1。
雖然只是短短的一聚, 心中的振盪器卻再也無法平息。
每節上課, 我就變成一台多工的機器。
因為想你, 使得 CpU load 總無法降低。
每次考試, 我就變成一條不穩定的 Memory。
因為念你, 使得 parity Check 總無法 Error Free。
想對你說的話, 即使是 Giga 級的哈滴也不夠記。
只好期盼, 我會擁有一台可讀寫的光碟機。
多麼希望我們之間, 只有磁頭和磁碟的距離。
也希望你是我生命中的 Cache, 不要再讓我苦苦尋覓。
每次想打電話給你, 我總是在矛盾中猶疑。
我在你心中的 priority, 到底是怎麼樣的等級想對你表明心意, 卻又害怕遭遇 Deadlock 的打擊。
你我之間, 是否有 Algorithm 可來處理這種微妙的關系愛情是場如真似幻的夢境, 沒有一定的軌跡。
思想中的邏輯與定理, 在愛情中也無用武之地。
原來, 這就是為什麼世間的男女總在互猜心意。
告訴我, 我們之間的愛情到底是 0 或是 1
你對我說, 我們之間的一切沒有離散數學中的交集。
我回答說, 你沒用過線性代數中的對角矩陣, 又怎知數年後的推移但畢竟這一切已成定局, 終究造成了我們的別離。
在逐漸模糊的身影後, 我忍不住流下了淚。
經營一段愛情, 並不像安裝 Linux 那麼容易。
縱有 patch 程式, 又如何修補那段支離破碎的記憶。
指向地久天長的指標, 到最後總有一場 Null 的游戲。
可嘆紅塵痴情眾生, 又有多少能夠比翼
資料結構中的 AVL Tree, 據說在搜尋方面非常夠力。
但即使能在 log n 的時間內找到你, 也不再具有任何意義。
只好將這段情, 深深的埋藏在心底。
靜待多年之後, 再細細的回憶。。。
1.0和1為你伴舞,鍵盤翻譯你的命令,網線將你與世界相連,雖然你的工作只是面對屏幕敲打鍵盤,但你向世界輸出的是快樂的音符,程序員節到了,給你的雙手放個假,藍天白雲等待你的仰望,清新的空氣將把你包圍,願你有一個健康的身體、永遠開心快樂!
2.寫字樓里寫字間,寫字間中程序員;程序人員寫程序,又將程序換酒錢;酒醒只在屏前坐,酒醉還來屏下眠;酒醉酒醒日復日,屏前屏下年復年;賓士寶馬貴者趣,公交自行程序員;但見滿街漂亮妹,哪個歸得程序員!程序員節又來臨,你還作戰程序界,願你事業有成心情好,休息一下把節過!
3.在中國雖無官方規定的日子,但是我們要為自己過節,尋找屬於我們自己的那份快樂。你還記得別人人如何稱呼我們嗎?程序員、開發者、程序猿/媛、軟體攻城獅以及碼農,你更喜歡哪一個?
4.深度的思考,讓靈感突發;細致的觀察,讓智慧閃光;跳動的字元,讓程序鮮活;有序的排列,讓效率提高;不斷的改善,讓價值突顯;不斷的編撰,讓生命精彩。程序員節,願你編出幸福程序,永遠開心!
5.設立程序員節要歸功於一名在並行技術網頁設計公司工作的職工——Valentin Balt。2002年,他收集簽名向俄羅斯聯邦政府請願,請求將這一天定為程序員節。2009年7月24日,俄羅斯聯邦通信與大眾傳媒部提出了新的節日安排方案,設立程序員節。9月11日,俄羅斯總統梅德韋傑夫簽署了這個法案,也就成為了俄羅斯的一個官方節日!
6.為你編輯快樂的程序,給你安裝如意的系統,幫你解開幸福的密碼,與你下載好運的軟體,程序員節到了,一切准備就緒,願你程序員節心情無限好,笑口合不攏。
7.翩翩起伏的手指,在鍵盤上空舞個不停。有節奏感的噠噠聲,彈奏出一曲曲美妙的音樂篇章。一款又一款高科技智能軟體問世了,一幅幅前景美畫展現眼前。『程序員節』祝程序員設計大師,辛勞奮獻。為現代科技、軍事、航天、工農業等行業,做出的巨大貢獻致賀。
8.你有魔幻手指,化符號為神奇;你有抽象思維,讓數字更精準;你有深邃智慧,把未來染光輝。程序員節,鍵盤敲得生活精彩絕美,滑鼠點得日子花開富貴。
9.在你的資料庫里添些快樂的元素,給你的符號欄里加些如意字元,為你的人生下載好運軟體,在你的心間上傳幸福無限,程序員節,願你笑口常開,日子甜甜。
10.滾滾紅塵,物慾橫流。燈紅酒綠,紙醉金迷。不過世界在你的眼裡,不是0就是1。你的世界,沒有灰色地帶,如陽春白雪霞映澄塘,似月射寒江秋菊披霜,純凈的惹人愛憐!我的朋友,程序員節快樂!
11.程序員節,編寫一段快樂程序送給你,願你思緒飛舞,想像豐富,編寫出美輪美奐的日子;醞釀美好,展現精彩,點擊出幸福美滿的生活;編織浪漫,營造溫馨,醞釀出甜美如花的愛情!
12.敏銳的觀察發現程序的漏洞,跳動的思維迸出靈感的火花,冷靜的頭腦編寫完美的代碼,縝密的思考鍛造安全的程序,精準的判斷展現驚人的才華,不懈的堅持取得巨大的成功。程序員節,用智慧編寫美好人生!
2. 程序員久了,會很敏感,因為小事煩躁,怎麼回事
程序員的煩躁來源於壓力。程序員缺少宣洩情緒的出口,每天基本都是在處理問題,面對工作、生活各方面的壓力,沒有很好的疏解途徑,造成了心理負擔
3. 作為一個程序員菜鳥到底應該保持一種什麼樣的心態
答:感同身受是一個程序員和一個人成功的根本,你需要保持一顆平和的心態,要設身處地的去思考問題,更要積極的展現自己的能力。
4. 作為一個無聊的程序員,如何讓自己的生活有樂趣起來
讓自己的生活充滿儀式感,那麼生活就會有許多的樂趣!
5. 做程序員有什麼樂趣
樂趣有很多,比如:開發出一個成品後能感受到快樂,一切努力沒有白費,又能獲得高額的報酬(自己干);通過一個個項目開發可以讓自己的經驗更加豐富。
首先for循環語句是程序中性能最高的循環之一,我一般都用它。
1.for 有兩種形式:一種是數字形式,另一種是通用形式。
數字形式的 for 循環,通過一個數學運算不斷地運行內部的代碼塊。 下面是它的語法:
block 將把 name 作循環變數。 從第一個 exp 開始起,直到第二個 exp 的值為止, 其步長為第三個 exp 。 更確切的說,一個 for 循環看起來是這個樣子
注意下面這幾點:
所有三個控製表達式都只被運算一次, 表達式的計算在循環開始之前。 這些表達式的結果必須是數字。
var,limit,以及 step 都是一些不可見的變數。 這里給它們起的名字都僅僅用於解釋方便。
如果第三個表達式(步長)沒有給出,會把步長設為 1 。
你可以用 break 和 goto 來退出 for 循環。
循環變數 v 是一個循環內部的局部變數; 如果你需要在循環結束後使用這個值, 在退出循環前把它賦給另一個變數。
2.通用形式的 for 通過一個叫作 迭代器 的函數工作。每次迭代,迭代器函數都會被調用以產生一個新的值, 當這個值為 nil 時,循環停止。 通用形式的 for 循環的語法如下:
注意以下幾點:
explist 只會被計算一次。 它返回三個值, 一個 迭代器 函數, 一個 狀態, 一個 迭代器的初始值。
f, s,與 var 都是不可見的變數。 這里給它們起的名字都只是為了解說方便。
你可以使用 break 來跳出 for 循環。
環變數 var_i 對於循環來說是一個局部變數; 你不可以在 for 循環結束後繼續使用。 如果你需要保留這些值,那麼就在循環跳出或結束前賦值到別的變數里去。
到第二個 exp 的值為止, 其步長為第三個 exp 。 更確切的說,一個 for 循環看起來是這個樣子
3.注意下面這幾點:
所有三個控製表達式都只被運算一次, 表達式的計算在循環開始之前。 這些表達式的結果必須是數字。
var,limit,以及 step 都是一些不可見的變數。 這里給它們起的名字都僅僅用於解釋方便。
如果第三個表達式(步長)沒有給出,會把步長設為 1 。
通用形式的 for 通過一個叫作 迭代器 的函數工作。 每次迭代,迭代器函數都會被調用以產生一個新的值, 當這個值為 nil 時,循環停止。 通用形式的 for 循環的語法如下:
注意以下幾點:
explist 只會被計算一次。 它返回三個值, 一個 迭代器 函數, 一個 狀態, 一個 迭代器的初始值。
f, s,與 var 都是不可見的變數。 這里給它們起的名字都只是為了解說方便。
你可以使用 break 來跳出 for 循環。
環變數 var_i 對於循環來說是一個局部變數; 你不可以在 for 循環結束後繼續使用。 如果你需要保留這些值,那麼就在循環跳出或結束前賦值到別的變數里去。
到第二個 exp 的值為止, 其步長為第三個 exp 。 更確切的說,一個 for 循環看起來是這個樣子
6. 碼農為何總愛自嘲,各種自黑
碼農一般都是比較偏內向的人,這個群體也很少女孩子,自嘲是為了娛樂一下,就是一種開心的方式。自嘲讓他們找到了工作中的樂趣,不然總是覺得生活黯淡無光,碼農的生活比較單調,通過自黑滿足自己不一樣的虛榮心。
7. 為什麼一些大齡程序員會時不時的感到迷茫
親,關於你的問題,是因為懂得太多,有太多煩心事了,可以放下所有,釋放一下自己,放假一周,在開始
8. 有哪些關於程序員的心靈雞湯
1. 在你責怪別人之前,先檢查自己的代碼
先想一想自己的假設和其他人的假設。來自不同供應商的工具可能內置不同的假設,即便是相同的供應商對於不同的工具,其假設也可能不同。
當其他人正在報告一個你不能重復的問題的時候,去看看他們在做什麼。他們可能會做一些你從來沒有想到過的事情,或者他們的做事順序與你的截然不同。
我個人的原則是,如果我有一個不能確定的錯誤,那麼我會先考慮是不是編譯器的問題,然後再去檢查堆棧是否損壞。特別是當添加跟蹤代碼會使得問題移動的話就更要這么做了。多線程問題是 bug 的另一個來源,有時候令人焦躁得簡直想拔光頭發,或者直接想摔電腦。當系統是多線程的時候,最好傾向於簡單的代碼。我們不能依賴調試和單元測試來發現任何一致性的 bug,所以設計的簡單性是最重要的。
所以,在你不分青紅皂白地去責怪編譯器之前,先想一想福爾摩斯的這條建議,「一旦你排除了種種不可能,剩下的不管有多麼難以置信,一定就是真相」。
2. 不斷學習
我們生活在一個有趣的時代。隨著軟體開發逐漸遍布全球各地,你會發現有很多人都可以干你的工作。所以你需要不斷學習以保持競爭力。否則,你就會落伍,停滯不前,直到有一天,這份工作不再需要你,或外包給一些更廉價的勞動力。
那麼我們能做些什麼?有些僱主很慷慨,會提供培訓以拓寬你的技能。也有的人會說我沒時間或者沒這個資金去接受任何培訓。所以,關鍵是要擺正心態,學習是對自己的負責。
這里有一些學習的方法。而且許多資源都可以在互聯網上免費獲取:
•閱讀書籍、雜志、博客、Twitter feeds 和網站。如果你想更深入地了解對象,可以考慮添加到郵件列表或新聞組。點擊這里通過郵件訂閱《快樂碼農》雜志
•如果你真的很想學習某一種技術,那麼就親自動手寫代碼。
•盡量與導師一起工作。雖然你從任何人身上都可以學到一些東西,但是從那些比你更聰明或更有經驗的人身上,你能學到的更多。如果你實在找不到這樣的良師益友,那麼請繼續往下看。
•使用虛擬導師。在網路上找你真正喜歡的作者和開發人員,閱讀他們寫的內容。訂閱他們的博客。
•了解你使用的框架和庫。知道事物的工作原理,有助於你更好地應用它們。如果你使用的是開源資源,那麼你真的很幸運。使用調試器單步執行代碼,以查看內部究竟是怎麼回事。你也可以去看看那些確實比你聰明的人是如何編寫和審查代碼的。
•當你犯了錯誤,修復 bug,或者遇到問題的時候,試著去真正理解發生了什麼事情。很有可能其他人已經遇到過同樣的問題,並且發布在了網上。谷歌搜索真的很有用。
•學習東西還有一個好方法就是所謂的「教學相長」。當別人在傾聽你的言語,並問你問題的同時,你也會學到東西。可以建立用戶組或本地會議。
•為自己感興趣語言和技術加入或啟動一個研究小組(模式社區),也可以創建本地的用戶組。
•參加會議。如果去不了的話,也可以在網上看,許多會議會將其談話免費發布到網上。
•收聽播客。
•曾經對代碼庫運行過靜態分析工具,又或者查看下你的 IDE 警告?了解它們報告了什麼,以及其原因。
當然如果你有《黑客帝國》中 Neo 那樣的超能力,自然這一切對你而言不過是小菜一碟。但很可惜,我們都是普通人,我們需要時間和精力,以及不斷的努力才能促使自己不斷的學習。不過,你不必成天學習。只要你能有意識地花點時間去學習就可以了,哪怕每天一小時,有總比沒有好。人活著不是為了工作,你還應該有自己的生活。
3. 不要害怕破壞東西
每個具備行業經驗的程序員肯定參與過代碼庫岌岌可危的項目。系統很糟糕,並且改變這邊總是會破壞另一邊不相關的功能。每次添加模塊,程序員只能想著盡可能少地改變代碼,每次發布都膽戰心驚。這座軟體的摩天大樓隨時有坍塌的可能。之所以改動代碼會如此傷腦筋是因為系統太糟糕了。但是即使你知道系統出了問題,卻又因為投鼠忌器,而不得不聽之任之。任何一個外科醫生都懂得,傷口要想癒合就必須得切除腐肉。雖然手術會帶來痛苦,但絕對比任傷口發炎潰爛要好。
不要害怕你的代碼。沒有人會在乎當你搗鼓代碼的時候有沒有暫時破壞了什麼東西。只要你做的改變不會讓項目重新回到開始狀態,就不會令人崩潰。投入時間重構,能讓你受益於項目整個生命周期。這樣做還有一個額外的好處是,由於你有過這種處理病危系統的經驗,所以你對它應該如何工作非常內行。要善於應用這些知識,千萬不要反感這些寶貴的財富。重新定義內部介面,重構模塊,重構復制粘貼代碼,並通過減少依賴來簡化設計。你可以通過消除特殊情況顯著降低代碼的復雜性,因為特殊情況往往是因為錯誤的耦合特點導致的。慢慢地從舊結構過渡到新結構,測試一路同行。如果你想要一下子完成一個大的重構,那麼往往會因為各種頻出的問題而考慮中途放棄。
4. 專業程序員
專業程序員的一個最重要的特點是有責任心。專業程序員會為他們的職業生涯、預算、日程安排承諾、錯誤、技能技巧負責。一個專業的程序員不會將責任推卸給別人。
如果你是專業的,那麼你就需要為自己的職業生涯負責。你有責任去閱讀和學習。你有責任去時刻關注最新的產業和技術。但是許多程序員覺得這應該是他們僱主的工作。NO,大錯特錯。想一想醫生?想一想律師?他們都是靠自己來培養和訓練自己的。他們的下班時間多用在了閱讀雜志報刊上。他們時刻關注著最新的資訊動態。所以,我們也應該如此。你和你僱主之間的關系,已經在僱用合同上作了詳細的說明,簡而言之就是:你的僱主承諾支付你薪酬,而你承諾做好工作。
專業程序員會為他們編寫的代碼負責。除非他們知道這些代碼是有效的,否則就不會發布代碼。現在,好好思考這個問題:如果是你,你會不會在不透徹了解代碼的情況下就直接發布代碼?專業程序員不希望 QA 找到任何 bug,因為這些代碼都是經過他測試之後才發布的。當然,QA 依然會發現一些問題,因為沒有一個人是完美的。但作為專業程序員,我們的態度應該是讓 QA 找不到任何缺陷。
專業程序員也是好的團隊成員。他們負責地對待整個團隊的輸出,而不是只顧自己的工作。他們樂於助人,善於向彼此學習,在需要的時候甚至會鼎力相助,為了項目前仆後繼。
5. 充分利用代碼分析工具
測試的價值是編程早期階段就灌輸給軟體開發者的一個理念。近年來,單元測試,測試驅動開發和敏捷方法的興起,證實了我們開始注重於在開發周期的各個階段進行測試。但是,測試只是你可以用來提高代碼質量的許多工具之一。
回過頭去看,當C語言還是一個新事物的時候,CPU 時間和任何類型的存儲都是非常寶貴的。第一個C語言編譯器注意到了這一點,所以選擇了通過去掉一些語義分析,來減少代碼之間的傳遞次數。這意味著,在編譯時,編譯器檢查到的可能只是可被檢測到的 bug 中的一小部分。為了彌補這個缺陷,Stephen Johnson 寫了一個名為 lint 的工具——它將從你的代碼中刪除一些沒有價值的東西——從而實現一些已被它的兄弟C語言編譯器撤掉的靜態分析功能。然而,靜態分析工具卻因為可以給出大范圍的誤報警告和一些沒有必要遵循的靜態文體慣例的警告而倍受贊譽。
現在的語言、編譯器和靜態分析工具的設計和以前已經大不相同。由於內存和 CPU 時間變得相對比較便宜,因此負擔得起編譯器檢查更多的錯誤。幾乎每一種語言都擁有至少一個工具,用來檢查風格指南的違規行為、常見問題以及一些狡猾的有時候可能很難捕捉到的錯誤,如潛在取消引用空指針。更高級的工具,如C的 Splint,以及 Python 的 pylint,是可配置的,這意味著你可以通過命令行開關或在 IDE 中,使用配置文件來讓工具選擇放過其中的哪些錯誤和警告。Splint 甚至還能讓你在注釋中註解你的代碼,以便於更好地提示你的程序是如何工作的。
6. 關心代碼
優秀程序員能寫出好代碼,這是毋庸置疑的。壞程序員……則不能(他們能寫出好代碼,就不是壞程序員了,哈哈)。他們總是在生產其他人不得不消滅的怪獸。你的目標是寫出好代碼,對不?那麼你應該成為好程序員。
好的代碼並不是憑空而來的,也不能靠運氣然後恰巧讓你瞎貓碰到死老鼠。為了獲得良好的代碼,你必須努力的改進。過程是艱難的。但是如果你確實關心代碼的話,那麼你一定能收獲好代碼。
僅靠技術並不能成就好的編程。我碰到過一些非常聰明的程序員,他們能夠產出令人印象深刻的演算法,能夠熟記語言標准,但卻寫出了最可怕的代碼。這種代碼,閱讀起來很痛苦,使用起來很痛苦,修改起來更是令人痛不欲生。我也碰到過一些非常謙遜的程序員,因為堅持簡單的代碼,所以寫出來的程序更優雅,更易於表達他的意思,和他們工作非常愉快。
基於我多年的軟體生產經驗,我得出的結論是,差強人意的程序員和偉大的程序員之間的真正區別是:態度。好的編程在於專業的方法,以及一種竭盡全力希望寫出最好軟體的期望。
要成為一個優秀的程序員,你必須對自己的代碼負責,真正關心代碼——養成積極向上的心態。偉大的代碼是由大師精心雕琢的,而不是由那些馬虎的程序員胡亂寫出來的。