<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    臟話越多,代碼越好!

    VSole2023-02-27 13:48:26

    我遇到過,每次都忍不住笑,心想老外可真是性情中人,遇到不爽的地方就開罵,還直接寫到注釋中,甚至代碼中。

    Bob大叔在《Clean Code》一書中諄諄教導我們:要對變量、函數、類精心命名,避免耍小聰明,別使用雙關語。

    那么在注釋甚至在代碼中說臟話,會不會影響總體代碼質量呢?

    還真有人做了這個研究,Jan Strehmel,一個來自德國卡爾斯魯厄理工學院的學生發表了一篇論文,名稱就叫《在開源代碼中臟話的使用和代碼質量之間有相關性嗎?》

    為了研究這個問題,作者從GitHub中抓取了3800個含臟話的C代碼庫,7600個不含臟話的C代碼庫,用自家的軟件SoftWipe分析它們對編碼標準的遵守情況,逐個打分。

    然后發揮他在統計學的技能,用了中心極限定理,Bootstrapping,Significance testing,Jarque-Bera test,Shapiro-Wilk test,Q-Q plot,Kolmogorov-Smirnov test ......,一頓操作猛如虎,最后他得到了一個驚人結論:

    包含臟話的開源代碼明顯比不含臟話的質量更好!

    (原論文有很多圖,感興趣的可以去看看)

    面對這個結果,作者恐怕也沒想到,他試圖解釋到:臟話代表了程序員對代碼極其復雜性的情感!在寫代碼的時候,罵幾句臟話,是緩解壓力的一種方式,這反過來?可以提?注意?,從而提?代碼質量。

    當然,你可千萬不要理解成只要在代碼中用了臟話,代碼質量就會有提高,那就大錯特錯了。

    這個結果讓我立刻想到了Linus Torvalds,他經常Fuck 這個,Fuck那個的,Linus在內核源碼中對別人代碼的評論就足以扭曲統計結果。

    在Linux最早的幾個版本中就出現fuck, shit ,damn這樣臟話,這似乎成了一種Linux的文化,在后續Linux源碼中各種臟詞不斷出現。

    在2005年7月28號,fuck*達到了頂峰,足足出現了68次,隨后逐漸下降。

    而 idiot* 則一致是在緩慢上升,現在和damn* 并駕齊驅,不分上下。

    (臟話在每個版本中出現的次數,點擊看大圖)

    但是,這些臟話并不影響Linux內核是優秀代碼的典范(詳情參見這一篇文章《漫畫 | 因為用了C語言,Linux內核代碼一團糟》),以Linus Torvalds為首的團隊對代碼結構和風格做了嚴格的定義,在Review中堅持執行。

    在Java社區,開源代碼中的臟話也不少。

    2018年,IBM 軟件工程師 Adam Farley 給 OpenJDK 提交了一個 Bug ,說 OpenJDK 源碼中臟話太多了,到處都是,OpenJDK是在專業領域使用的,這太不合適了吧?這不我特意提交了一個Changset把它們都刪了。

    3天后,經過 OpenJDK 社區討論,大家認為:

    Damn 和 Crap 不算臟話!還有3 個 f**k,是上游的鍋(回頭會跟進處理),只有一個文件中的f**k,都是臟話,應該刪掉。

    為什么程序員喜歡在源碼中用臟話表示自己的想法呢? 

    代碼是程序員每天都要面對的工作對象,對代碼確實會出現復雜的情感,有時候需要一種情緒的宣泄。

    看到一段高深的,自己無法理解的代碼,what the fuck?

    好不容易把一段復雜邏輯的各種分支,邊界條件都搞定了,代碼實在是亂,don't fuck with it !

    花了很大的精力寫完了邏輯,卻發現有個異常無法處理,damn,damn,damn

    ......

    咱們國內程序員似乎比較含蓄,很少在代碼中寫臟話,更喜歡吐槽公司,吐槽系統,是不是這樣?

    不過,一定要記住一點:當在代碼評論中出現臟話時,你就要小心了,不要輕易動下面的代碼,弄不好就是個大坑!

    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Bob大叔在《Clean Code》一書中諄諄教導我們:要對變量、函數、類精心命名,避免耍小聰明,別使用雙關語。這個結果讓我立刻想到了Linus Torvalds,他經常Fuck 這個,Fuck那個的,Linus在內核源碼中對別人代碼的評論就足以扭曲統計結果。而 idiot* 則一致是在緩慢上升,現在和damn* 并駕齊驅,不分上下。在Java社區,開源代碼中的臟話也不少。3天后,經過 OpenJDK 社區討論,大家認為:Damn 和 Crap 不算臟話
    筆者涉獵大數據治理領域有6年的時間,負責過政府、軍工、航空、大中型制造企業的數據治理項目。技術部門大多是以數據中心或者大數據平臺為出發點,受限于組織范圍,不希望擴大到業務系統,只希望把自已負責的范圍管好。
    不知道差友們還記不記得,去年的 7 13 日,B 站發生了一件大事。它毫無征兆的崩了……( 如果忘了的小伙伴,可以看 這篇文章 )至于為啥崩了,當時大家誰也心里沒個底。不過吹起水來可是一套一套的,什么停電啊,起火啊,程序員 rm -rf /* 跑路啊……說的是個天馬行空。
    所謂打點,就是拿到一臺機器的shell。對個體而言,這種條件下,個人技術成為了主導因素,也就是說,一個紅隊人員快速打點能力的強悍與否,成為了一個普通紅隊和優秀紅隊的差別所在。這其中最肝的一個部分,莫過于信息搜集了,純體力活。三板斧其三 sql注入:這個更加老熟人了,注入之后,低權限,直接gg,高權限,試試吧,看能不能上shell。
    這樣一旦運行的服務器宕機,就把備份的服務器運行起來。冷備的方案比較容易實現,但冷備的缺點是主機出現故障時備機不會自動接管,需要主動切換服務。當一臺服務器宕機后,自動切換到另一臺備用機使用。
    密碼管理器NordPass分享了一份今年最流行的密碼Top200榜單,榜上有名的究竟會是哪些密碼呢?
    供應商參與5G網絡云化建設情況下,運營商運維管理復雜度將同步提升。網絡切片導致新威脅5G網絡切片在提供差異化網絡服務的同時也帶來了新的安全挑戰。調查顯示,一些與5G網絡相關的誤導性報道信息正在加劇這種擔憂。例如,5G救護車試驗表明了可以改善對危重患者的院前急救過程。研究人員表示,這些安全功能在非獨立5G網絡和獨立5G網絡上的應用表現存在較大差異。
    以云計算、大數據、5G、物聯網等為代表的新一代信息技術 的迅猛發展,有力推動了石油石化企業數字化轉型的進程。與此 同時,也帶來了更為嚴峻的網絡安全挑戰。由于參會人數較,房源和就餐環境有限,會議食宿根據回執安排,沒有返回 回執的人員,不接受注冊,不安排食宿。
    開放商用區塊鏈網絡(OCBN)正式發布
    數據安全已成為事關國家安全與經濟社會發展的重大問題。美國國土安全部甚至向全美商業企業發布《數據安全商業咨詢》,要求防范來自中國的產品。目前各國領導人在會面時,數據安全幾乎成為必談議題。但美國認為,新時代需要新霸權,美元霸權將會被數據霸權取代。經研究,總體國家安全觀中的任何一個領域的安全均會受到數據安全的影響。當前,我國已初步完成數據安全頂層設計,基本建立政策法規體系。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类