為什麼你寫的代碼連code review(代碼審查)都過不了?!

2021-02-15 一筆記

啊,大海啊,都是水。

啊,駿馬啊,四條腿。

啊,代碼啊,如流水。

可是你為何又那麼美。

漂亮的代碼,就像一首詩一樣,讀來讓人心動。

小司機就很想做一個詩人,用代碼進行創作。

寫山,寫水,寫人生。咳咳。

可現實是殘酷的,小司機最近寫的代碼,反反覆覆,修修改改,可是別說優美了,連code review都過不了!!!

這是什麼概念, 朋友們你知道嗎?

所謂code review,就是字面的意思,代碼審查。 

(覺得review在這裡是複習的意思的小夥伴們,應該補習英文了哦。code review是個固定搭配,不要問為什麼,記住就好,這次月考可能要考的。)

小司機現在寫的代碼,在被放到公司項目裡之前,得經過一層代碼審查。

然鵝,就是這層審查讓你們的朋友開始懷疑人生。

寫完代碼好開心啊,測試幾遍好用了,更開心了。

看我提交代碼!嘿嘿嘿。

悲劇發生了。。。。。。

同事看完我的代碼,直接給我一個大✘,都不測試我的代碼好不好用!!!

難道是我的同事討厭活潑可愛善良的小司機嗎?!當然不是!!

難道是我的同事龜毛嗎?當然不是!!

原因只有一個!!!

小司機的代碼實在是寫得太醜了!!!

一點都不像一首詩!!!

於是,小司機最近就陷入修改代碼格式的深淵。

深夜刨冰箱,越來越胖。

蟄伏在小司機身邊,一直伺機鞭笞小司機的大牛,又來拷問我的靈魂了,這次他問我:「為什麼你寫的代碼連code review都過不了?!」 (想看大牛之前對小司機的拷問,查看歷史文章《算法是啥?一定得學嗎?》。)

是啊?為什麼?!為什麼?!

其實我是知道的。

在很久以前,我的代碼到處都是亂糟糟的注釋,空格和Tab混用,分號有時多,有時少。寫完以後自己都不想看啊!!!我知道這種代碼是不可能過的。

於是,我改了。

現在小司機的代碼一眼掃過去看起來很專業,可是代碼中隱藏的問題,怎麼會逃過同事老司機的法眼呢?

同事在給❎的同時,總是伴隨著很多細緻的建議。遇到這樣的同事一定要珍惜啊,簡直是職業生涯的貴人,助你進步,幫你成才!!!

通過研究建議,小司機總結出一下代碼審查不過的五條常見理由!!!

1)命名不規範

2) 代碼不夠簡潔,沒有充分重用代碼

3) 邊界情況沒有考慮周全

4)實現方法設計不巧妙

5)沒有想到以後的拓展性

命名不規範,最常見的低級錯誤是大小寫不同意,這個很好改正,仔細點就沒問題了。可是,起個好名字很難。舉個例子,定時器就應該教」定時器「。起名叫「設定時間的東西」,或者「改「都不行。取名字是人類永恆的難題。

代碼簡潔這是代碼界的一個著名原則,還有個酷酷的英文新發口訣,叫做DRY, 是Do not repeat yourself 的縮寫。翻譯成不要自我重複。說起來容易,做起來不簡單啊!!!一不留神,就寫出兩段相似的代碼。

邊界情況沒有考慮周全,這個就是說沒有想到所有的可能情況。解決方法就是使勁想。因為這個要非常小心,不然會為日後埋下隱患的地方啊

實現方法設計不巧妙有點難了。很多時候你寫的代碼是好用的,但是別的寫法更好,因為更符合設計模式。這需要一定的積累,才能解決。解決了這,你的代碼離詩就不遠了。

想到以後的拓展性也很不容易,可是優秀的程式設計師寫代碼是會考慮未來的。今後的開發和維護就和今天的功能一樣重要,甚至更重要,我們要著眼於未來啊!

唉,真的好難啊啊啊啊!!!

沒關係,沒關係,深呼吸,讓我們一點點來。

先寫出乾淨的代碼,再寫出簡潔的代碼,讓隊友看懂,讓自己舒心。創造出設計精巧,易於維護的優美代碼。明天就是屬於你的!!!

好了,親愛的朋友們,小司機改代碼格式去了。

祝你們好夢。

希望最終和大家一起成為一個代碼詩人。

引用:

1.文章開頭的詩非原創,來自遙遠的記憶,最初出處未考證。

2.文中狗狗圖片來自於微信表情包小肥柴,作者紫龍。

最後,長按二維碼關愛你的朋友小司機,一起進步成為代碼詩人吧!

相關焦點

  • 騰訊 Code Review 規範出爐!你還敢亂寫代碼??
    前言作為公司代碼委員會 golang 分會的理事,我 review 了很多代碼,看了很多別人的 review 評論。發現不少同學 code review 與寫出好代碼的水平有待提高。在這裡,想分享一下我的一些理念和思路。為什麼技術人員包括 leader 都要做 code review諺語曰: 'Talk Is Cheap, Show Me The Code'。知易行難,知行合一難。
  • 不會寫代碼的技術經理不是好CTO
    在過去的 20 年中,開發者社區呈指數級增長,開發人員的多樣性也隨之增加。換句話說,找到具有管理能力這種軟技能的開發人員其實並不困難。我非常信奉喬幫主說過的一句話:儘管技術經理不必是團隊中能力最出眾的開發人員,但至少他們應該對相關技術有所了解。當團隊成員向老闆提出技術建議時,技術經理應該能夠針對這些建議提供有價值的反饋。
  • 不修bug 也不寫代碼,項目經理幹了啥?一位 PM 的自白
    很多人通過字面意思去想像項目經理該是什麼樣,比如應該算是個領導;什麼都應該懂一點;還有就是技術水平應該在團隊中最厲害之類的。而我,作為一名普通的 IT 項目經理,就經常在工作和生活中遇到各種各樣的誤解。每當周圍有電腦、路由器、手機之類的設備出現故障,總有用戶會在第一時間來找我幫忙修理。我向他們解釋,我是 IT 項目經理,不會修理這些設備故障。
  • 二分法其實很簡單,為什麼老是寫不對!!
    作者丨代碼隨想錄 來源丨代碼隨想錄 (code_thinking)相信很多人對二分法是又愛又恨,愛是在於它思想簡單
  • IATA機場代碼
    願你經歷再多,都不忘初心;願你難過再多,都不忘微笑;願你能披荊斬棘,做到自己想要做到的事記得剛上班參加培訓的時候,教員給我們這幫菜雞的第一份教材就是四張正反面列印的機場三四字代碼,讓我們全背下來。看著這密密麻麻、毫無規律的八大頁代碼,當時就給我氣笑了,年輕氣盛愚昧無知的我拍案而起就跟教員battle起來:「這裡面很多機場咱們公司都不飛,我背它幹嘛?」,教員也讓我給氣笑了:「你知不知道還有個東西叫備降機場?」。當然光靠這點理由說服我是不可能的,再加上後面結結實實的一頓錘才給我整的服服帖帖的。
  • 《第一行代碼》第三版贈書來了!
    不知道有沒有同學記得,那會是 16 年 12 月,也是我畢業那一年,剛來北京工作半年。這幾年我和郭神依然保持著足夠的吹逼時間,我們倆都朝著自己的一些小目標去奮鬥,也都發布了一些自己的小玩意,在郭神的身上我也學到了很多。當然了,這幾年也是我個人技術以及綜合能力成長最快的幾年。
  • 吊打面試官 | 騰訊經典考點-寫代碼實現atoi函數
    視頻後還附有文字版本哦▼《騰訊經典考點-寫代碼實現atoi函數》▼ps:請在WiFi環境下打開,如果有錢任性請隨意在騰訊面試時
  • 你寫注釋嗎?寫你就輸了
    我並不是提倡不寫代碼注釋,只是建議不要過於依賴注釋,這樣可以使代碼更乾淨、更有表現力,這也能提高開發人員的水平。我自己也在尋求編寫更簡潔的代碼,我盡力不編寫糟糕的注釋,並在可能時重構代碼。 本文最初發布於 Level Up Coding 官方博客,經原作者授權由 InfoQ 中文站翻譯並分享。這篇文章的標題可能會讓你情緒激動,但請先耐心聽我說完。
  • 寫literature review的一點心得
    以下僅是以本學術菜雞的現象導向型課題悟出的東西,有能力不焦慮寫完research proposal的大神希望與我分享分享心得。一、是什麼?1. 下定義——誰給出了什麼定義,不同人給出的定義有什麼不同。定義由大及小,多角度2. 問題是什麼——收集到的數據表明了什麼,分析趨勢、特點3.
  • 假如計算機是中國人發明的,那代碼可能需要這樣寫……
    聽說,有人覺得英語不好,敲代碼就敲不了,那如果是中文版的呢?一起來看看,假如,計算機是中國人發明的.>2、進位數應該是這樣的二進位:陰、陽八進位:乾qián、坤kūn、震zhèn、巽xùn、坎kǎn、離lí、艮gèn、兌duì十六進位替換為十二進位:鼠、牛、虎、兔、龍、蛇、馬、羊、猴、雞、狗、豬3、這時底層代碼肯定就是
  • 幾行Matlab代碼教你上手傅立葉變換
    直接開始,如果你不熟悉Matlab,可以將代碼直接複製到編輯區,然後回車看結果就可以了。
  • 用Python寫幾行代碼,一分鐘搞定一天工作量,同事直呼:好傢夥!
    ,不知道能不能用Python解決,我們來看一下,你也可以思考一下。輸出的目標 Excel 文件命名為 Meeting_temp.xlsx基本邏輯寫代碼之前都先明確完整的問題需要分為幾個小步驟實現。從需求中我們大概可以將代碼分為以下幾步:「解析每一份 Word 文件,獲取需要的四個信息,輸出到 Excel 中;」有了邏輯就有了寫代碼的思路了。第 1 步可以由 glob 庫完成,後面兩步就是操作 Word 的 python-docx 庫和操作 Excel 的 openpyxl 庫的交互協作了。
  • 代碼打開workbook的兩種方法
    今天我們就講一下操作工作簿的基礎,如何用代碼打開工作簿。這一節我們介紹兩個常用的打開工作簿的方法。在VBA中打開工作薄有兩種方法:顯式打開及隱式打開。▶1.但此時是並不能看到有一個Excel文件被打開的,這個已經被VBA隱式打開的文件,只能使用VBA進行操作,在使用上與顯式打開後得到的workbook對象沒什麼區別,如獲取其中的工作表對象、獲取它的名字、關閉它等,都是一樣的。 ▶3.
  • VBA常用代碼:按指定條件批量刪除Excel工作簿
    前段時間我們分享了一期小代碼,作用是一鍵提取指定文件夾下文件名,不知道大家是否還有印象:VBA常用小代碼201:批量獲取指定文件夾下文件名
  • 這10道最高頻的手撕代碼題都會了嗎?
    下面這10道最高頻的手撕代碼面試題都會了嗎?相信我,徹底掌握以下這10道題的解法,你順利做出手撕代碼面試題目的概率至少不低於50%。1,快速排序題目形式:手寫一下快速排序算法。題目難度:中等。出現概率:約50%。手寫快排絕對是手撕代碼面試題中的百獸之王,掌握了它就是送分題,沒有掌握它就是送命題。
  • 如何教會老婆寫 Python ?
    code就就是一種語言,一種計算機能讀懂的語言。計算機是一個傻逼,他理解不了默認兩可的任何東西。比如,你讓你老公去買個西瓜,你老公會自己決定去哪裡買,買幾個,找個搞活動打折的買,總之,你給他錢,他就給你買回來讓你吃到爽的西瓜。但是,你想讓計算機買一個西瓜?
  • 代碼 | 求解LP問題單純形法的Matlab代碼
    Contents求LP問題的基本(可行)解Matlab代碼
  • 60行代碼實現Excel轉Word...
    我想,其實轉一下翻轉表格列印不就完事了。對方答曰:表格列印之後看起來不太舒服,背題效率低。....PS:朋友哪來這麼多的要求呀。PPS:他一定是個好人!於是,大概花了半個小時,寫個點Python代碼實現把Excel轉成了Word文檔。大概,表格長這樣。最終效果圖,大概是這樣的。公眾號回復"Excel轉Word"獲取代碼。蛋疼,有什麼好獲取的。直接拿去。
  • 貨櫃尺寸、箱型及代碼對照表
    8 種常見的貨櫃及代碼1)乾貨箱:箱型代碼GP;95碼22G12)乾貨高箱:箱型代碼GH(HC/HQ);95碼25G13)掛衣箱:箱型代碼HT;95碼22V14)開頂箱:箱型代碼OT;95碼22U15)冷凍箱:箱型代碼RF;95碼22R16)冷高箱:箱型代碼RH;95碼25R17)油罐箱:箱型代碼TK;95碼22T18)框架箱: