程式設計師如何寫出高質量的代碼程序

2021-01-13 網際網路前世今生

編碼是程式設計師最重要的工作,每個程式設計師都希望自己可以寫出優雅,高性能,高質量的代碼,對於大師級別的程式設計師,他們的寫的代碼就和藝術品一樣,你會忍不住發出驚嘆,他們怎麼可以創造出如此驚豔的作品出來。

下面筆者就以自己的淺薄學識和一些經驗來總結下優秀的程序應該具有的特點。

每個變量的命名都深思熟慮

普通程式設計師的變量命名很隨便,以至於隨便到abcd都會出來,而高質量的代碼的命名則很規範,既不長,也不短,既可以讀出它們的含義,又不至於顯得囉嗦,總之,從變量命名你就能讀出一個程序是否優雅。

從配置文件中讀取變量

很多人喜歡在程序中通過注釋來修改變量值,這樣的做法非常不對,首先不說無用的注釋影響了代碼的整潔,就通過修改代碼來修改變量的值就是不優雅的。

一個優秀的程序,一定是從配置文件中讀取所需要的變量的,而修改配置文件對於一個人來說遠遠比去原始碼中修改變量值要方便得多得多。

當你學會從配置文件中讀取配置,修改配置的時候,你的程序才是優秀的。

一定要有測試代碼

一個高質量的程序一定會有測試代碼,記住無論程序功能多麼簡單,我們都要寫測試代碼。為什麼TDD會流行,因為很多人懶得寫代碼,而TDD就是強迫你寫測試代碼,因為這樣可以讓代碼更加健壯,同時,其它人修改代碼也可以不會造成更重大影響。

我們不一定使用TDD進行程序開發,但是一定要寫測試代碼,有了測試代碼,你的程序才經得起折騰,記住,有時候你會犯迷糊,但是測試代碼不會,跑通過測試用例的代碼至少可以讓你減少很多錯誤。

一定要寫日誌

一個程序開發之後,你是沒有辦法預測它的使用環境和使用方式的,你能做的就是在它出現錯誤的時候記錄下日誌,這樣你才可能進行分析。同時,在程序開發的過程中,通過記錄日誌也可以方便我們進行代碼的調試,日誌也是調試分析的一種方式。

永遠不要重複寫代碼

古人云事不過三,寫代碼也一樣,當你在很多地方寫了重複代碼的時候,你要記得將它們重構,永遠不要寫重複的代碼,發現重複的時候,記得使用函數將它抽象出來。

很多人喜歡拷貝代碼,然後你會發現他的程序中好多代碼是一樣的,而當他要修改代碼的時候,不得不每一處都需要修改,這不僅浪費時間,還可能造成代碼的遺漏。

代碼格式要統一

記得以前聽過一個笑話,我們中國人寫的代碼,一個人寫得像一千個人寫的一樣,而印度人寫的代碼,一千人像一個人寫的一樣。

我們不要求所有人寫的代碼風格都一模一樣,但是我們需要你寫的代碼前後要統一,同時要遵循代碼推薦分隔。

現在所有的語言都有自己的代碼格式風格,你只要按照規則來寫就好。

總結

優秀的代碼每一個變量的命名都是反覆斟酌的,每一個函數都是力求最精簡的,每一個方法都是盡力是最高效的。

自己寫完的代碼一定要覆審,有時候很多明顯的錯誤一定要避免。

代碼之道永無止境,我們只有不斷地總結,才能寫出接近完美的程序,而完美的程序永遠都不會存在。

相關焦點

  • 能寫出這種代碼的程式設計師都是神仙吧!
    源 / 頂級程式設計師    文 / An先生或許在大多數人眼中,敲代碼是件乏味枯燥的事。但,並不是!
  • 中國第一代程式設計師裡的「四大天王」,30年前敲代碼,現狀如何?
    據說在相親界裡程式設計師是個很吃香的職業,因為有的阿姨給程式設計師總結了3個優點:『錢多、話少、死得早』。現在的程式設計師還沒到考慮第三件事的時候,因為很多程式設計師更擔心的是35歲之後的職業發展。網際網路來中國的時間不長,平時接觸的程式設計師敲代碼超過十年以上的也是少數,在為自己擔心的時候,不妨看一下中國的第一代程式設計師們的現狀,他們從1988年開始敲代碼,如今也已經有了三十年的經驗當時的他們名震世界,如今卻差距太大,有的人身價千億、有的人財務自由瀟灑過生活、有的人卻被掃地出門黯然離場。
  • 程式設計師:停電去網吧寫代碼,被當成黑客報警了,網友:想偷我戒指
    相信很多人對程式設計師這個行業有著很多看法,畢竟作為高薪行業,一直以來也是備受關注,但因為強大的工作壓力,也讓很多人望而卻步。甚至在很多人眼裡,這就是年薪百萬,一夜成名的職業了,也讓程式設計師這個行業增添了幾分神秘感,這也讓很多人好奇,究竟是做什麼能夠讓自己收入這麼多呢,他們為何有如此強大的吸金能力呢?有位網友就在論壇上發表自己作為一位程式設計師曾遇到的尷尬事情。
  • 【暢言】首先為人編寫程序,其次才是計算機
    但是,注釋也不能過多,不能將有用的代碼掩蓋住了,不能夠喧賓奪主,讓真正實現功能的代碼成了陪襯。為人編程:如何才能寫出讓「人」看得懂的好代碼那麼,我們如何寫出讓「人」能夠看懂的「好」代碼呢?這個過程不能一蹴而就,要循序漸進,要從我做起,從身邊做起,不斷地提升個人編程的境界。
  • 混淆程序:代碼最安全的加密方式
    本文轉自【科技日報】;幾十年來,計算機科學家一直都想驗證是否存在絕對安全的方法來加密電腦程式,讓人們在使用計算機的同時卻無法破解其程序。 在2020年底,幾位學者成功找到了一種加密方式,讓計算機用戶無法通過獲取代碼破解程序。
  • 高效程式設計師的特徵:聰明,懶惰
    我說的這幾個詞的意思是:正確的軟體開發應該是懶惰式開發,也被稱作忍耐式開發;這種開發方式的表現是,在真正動手寫代碼前,程式設計師要花大量的時間通盤考慮所有可能的解決方案和途徑。這可以看作是延緩寫代碼,在沒有完全理解問題前絕不動手寫代碼。先把問題理解清楚,確保將要寫的代碼能真正的解決問題,這將會避免之後寫出大量無用的代碼。
  • 程式設計師編程入門必知!程式設計師需要學什麼
    編程就是讓計算機為解決某個問題而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。資訊時代的大背景下,計算機的應用顯得舉足輕重,精通計算機的人才對於龐大的市場需求量來說還是顯得很匱乏,因此計算機行業的前景是很可觀的,但是也有不少人對於編程處於一竅不通的狀態,那編程該從何入手呢?
  • 國外程式設計師推薦:每個程式設計師都應讀的書
    然而《電腦程式的構造和解釋》與這些不同。 這是一本會啟發你的書,它會燃起你編寫出色程序的熱情; 它還將教會你認識並欣賞美; 它會讓你有種敬畏,讓你難以抑制地渴望學習更多的東西。其他書或許會讓你成為一位更出色的程式設計師,但此書將一定會讓你成為一名程式設計師。同時,你將會學到其他東西,函數式編程(第三章)、惰性計算、元編程、虛擬機、解釋器和編譯器。
  • 數學公式太晦澀,不如用代碼寫出來:這是程式設計師學數學的獨特方式
    選自TowardDataScience 作者:Ian Rowan 機器之心編譯 參與:Panda W、一鳴 簡潔的代碼不僅能運行程序
  • 高級程式設計師是如何從初級程式設計師演變的?工作經驗不再是唯一途徑!
    區分高級和初級程式設計師的標準是工作年限嗎?程式設計師最重要的工作就是寫代碼嗎? 高級程式設計師是一名犯過其領域內所有可能犯到的錯誤的專家。我不喜歡與他人合作,我認為編寫優秀的代碼是程式設計師最最重要的大事。 我錯了嗎?倒也沒錯。編碼的確很重要——程式設計師必須得去編寫可工作的代碼。但是編寫代碼並不是他唯一重要的事情。 我是在為第一個客戶工作的時候艱難地認識到這一點的。我與客戶交談了 15 分鐘,收集了需求要點,並假定我很明確客戶想要什麼。
  • 資深程式設計師大佬告訴你,如何成為一個C++高級程式設計師
    GUI想要學習交流C/C++,可以私信小編 發C++ 獲取資源和一個程式設計師交流圈。3. 數據結構和算法很多人都忽視了數據結構和算法方面的知識,尤其是一些程式語言的庫做得非常好,幾乎不需要自己去實現一些數據結構和算法,導致現在很多程式設計師不 重視甚至忽略這方面的知識。但是,當我們想讓我們的程序跑的更快、內存佔用更少的時候,這些知識就非常非常重要了。
  • 程式設計師是做什麼的?未來計算機變得智能,就不需要程式設計師了嗎?
    (不過,我有點關心如果這成為現實後,計算機還需要人類程式設計師嗎?) 現代計算機具有完全邏輯性、直接性和順從性。如果你知道它應該做什麼並且知道如何命令它,那麼和計算機一起工作是快樂的。唯一的問題是,計算機只會做你告訴它去做的。因此,你應該有清晰的思路並且在見你的上司或客戶時保證計算機不出岔子。
  • 缺乏想像力的程式設計師 - OSCHINA - 中文開源技術交流社區
    他說,「我不能想像如何用一種沒有範型的程式語言進行編程。」我的反駁——當時並沒有說出來——是,「那你一定不能成為一個優秀的程式設計師,不是嗎?」這篇文章並不是討論範型問題的(範型是個好東西,也許某一天Go語言裡也會有,也許不會),而是關於想像力的,或者,至少是關於被程式設計師們誤認 為是想像力的:抱怨。一個朋友發現,現代一種流行的娛樂方式就是去上網抱怨。
  • 不發項目獎金,程式設計師怒刪代碼,被判 5 個月!
    整理 | 王曉曼責編 | 伍杏玲出品 | 程序人生 (ID:coder _life)之前CSDN 報導過,一外國公司因縮減專利獎金,員工拒絕提交代碼的故事:程式設計師怒了!你敢削減專利獎金,我敢拒絕提交代碼!
  • Java程式設計師必備基礎:Java代碼是怎麼運行的?
    前言 作為一名Java程式設計師,我們需要知道Java代碼是怎麼運行的。最近複習了深入理解Java虛擬機,做了一下總結,希望對大家有幫助,如果有不正確的地方,歡迎提出,感激不盡。
  • ...寫出什麼樣的程序才算是好的程序?一千個讀者就有一千個哈姆雷特
    什麼樣的程序才算是好的程序?不同的人有不同的回答。 還有的人認為,程序行數少。 曾經看到一個同學使用遞歸函數實現字符串的逆序處理,非常簡短的代碼。不能說程序寫得不好,但遞歸深度太大消耗內存很嚴重。一般也不太容易想到。 還有的說,我的程序運行得快了一些。 程序效率高運行快,固然也是好的。
  • 程式設計師的這108個笑話 你都看得懂嗎?-程式設計師,笑話,編程, ——快...
    1、程序猿最煩兩件事,第一件事是別人要他給自己的代碼寫文檔,第二件呢?是別人的程序沒有留下文檔。2、程序猿的讀書歷程:x語言入門—>x語言應用實踐—>x語言高階編程—>x語言的科學與藝術—>編程之美—>編程之道—>編程之禪—>頸椎病康復指南。
  • 「EMNLP2018乾貨」為NLP研究寫出好代碼(254頁教程)
    通過本教程,你將學習如何編寫NLP研究實驗代碼,如何設計和簡單化實驗代碼,從而推進研究,產出好的研究成果。現代的NLP研究工作都需要編寫代碼。良好的代碼可以實現快速的原型設計,簡單的代碼調試,實驗的可控性和可視化,幫助研究人員快速準確地了解實驗和模型的具體情況。
  • 程式設計師及嵌入式的一些學習建議
    有人說程式設計師可以說是一個吃青春飯的職業。而且做程式設計師很累,每天都是代碼,感到很枯燥無味,一個人如果做到35或者40來歲.估計他的程序生涯也差不多到頭了;也有人說程式設計師有兩條進階路線。一條是技術路線,由程式設計師,經系統分析師、系統設計師、項目經理、產品經理,直到架構設計師為歸宿。另一條是領導路線,由程式設計師,經開發小組負責人、工程負責人,奮鬥到項目經理。
  • 程式設計師福音,麻省理工將推出代碼移植工具 CodeCarbonCopy
    通過CodeCarbonCopy,開發人員可先選擇A軟體的一段程式碼,再選擇B軟體的插入點,系統就能自動進行必要的變更,如改變參數名稱等,以確保代碼妥善的植入B軟體中。 並且,在移植代碼時,CodeCarbonCopy還能執行靜態分析,移除在A軟體中必要但在B軟體中毫無作用的功能。