日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怼天怼地怼空气的Linus 喜欢和什么样的人一起工作?

發布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怼天怼地怼空气的Linus 喜欢和什么样的人一起工作? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linus Torvalds的“暴脾氣”是出了名的,看到令自己不爽的事情就會懟過去,比如:

  • 他曾經說Intel提交的漏洞修復程序是徹底的垃圾!

  • 當別人說Git沒用C++開發的時候, 他反擊說“C++是一種可怕的語言”

  • 他噴別人的Pull Request : ?Your code is shit .....

  • 他吐槽XML可能是有史以來最糟糕的格式......

  • 甚至直接對著攝像機說了一句“So NVIDIA, Fxxk you.”同時給了一個中指。

有人說這是天才的個性,但是這種性格確實是得罪了不少人,去年9月份,他發郵件做了一個反省,說自己也許要照照鏡子,為自己的人身攻擊言論道歉。

我是有點好奇,領導著世界上最大的開源項目,Linus欣賞誰,尊重誰,喜歡和誰一起共事?

TED上對Linus 的一段訪談視頻“The mind behind Linux” 給出了一點線索。

(ps. Linus 不喜歡在公眾面前演講,如果非要參加一些活動的話,他更喜歡和主持人一對一地對話,這會讓他感覺到舒服)

在這段訪談中展示了兩段完成同樣功能的代碼(偽碼), 第一段是這樣的:

remove_list_entry(entry){prev?=?NULL;walk?=?head;//?Walk?the?listwhile?(walk?!=?entry){prev?=?walk;walk?=?walk?->?next;}//?Remove?the?entry?by?updating?the?//?head?or?the?previous?entryif?(!prev)head?=?entry->next;elseprev->next?=?entry->next; }

學過數據結構的同學(即使你沒學過C語言中的指針),估計也能明白這段代碼的大致意思: 這是在刪除一個單向鏈表中的某個節點。

(這段代碼沒有考慮待刪除的節點不在鏈表中的情況。)

由于是單向鏈表,在尋找某個節點的時候,需要不斷地記錄下這個節點前面的節點(prev)

另外,這段代碼還考慮到了一個特殊情況,?待刪除的節點不是中間節點, 而是頭節點(head)。 即使有這個特殊的情況,這段代碼還是相當容易理解的,絕大部分人都會寫出這樣的代碼,學校的老師也會這么教我們。

然后Linus給出了另外一段代碼(偽碼),完成了同樣的功能。

remove_list_entry(entry){//?The?"indirect"?pointer?points?to?the?//?*address*?of?the?thing?we'll?updateindirect?=?&head;//?Walk?the?list,?looking?for?the?thing?that//?poins?to?the?entry?we?want?to?remove_list_entrywhile?((*indirect)?!=?entry){indirect?=?&((*indirect)->next);}//?..?and?just?remove?it*indirect?=?entry?->?next; }

我看到這段代碼的第一印象就是很簡潔, 根本沒有if else, 不管你刪除的是頭結點還是中間節點,都可以用同樣的邏輯來表達。

但是這段代碼使用了指針的指針,我看了一會兒才明白到底是怎么工作的。 一旦理解以后,就發現,這確實是個更優雅的方法。 消除了if else, 消除了previous。

我本來也想用圖來表達一下,但是發現畫出這個indirect的變化過程有點麻煩,大家充分發揮下想象力,自行腦補一下吧。

關鍵點就是indirect 這個指針第一次指向的是 head 的地址,第二次指向的是節點1.next的地址, 第三次指向的是節點2.next的地址。

Linus對比了這兩段代碼以后說道:

第一段代碼并不好, 它需要區別第一個節點和中間節點,有特例。

第二段代碼展示了用一種不同的方式來看待一個問題,它可以把一個特例當成正常情況來處理,這就是好的代碼。

我就喜歡和這樣的人一起工作,他們有著更好的代碼的“品味”。

好的代碼“品味” 能夠讓你從更大的范圍來看待問題,本能地知道怎么才能把事情做對,做好。

這兩段代碼只是很簡單的例子,它們甚至不完美, 但我理解Linus所說的意思,它給我們的啟示是:在寫代碼的時候,要努力地從更高的層次去思考問題,找到更抽象,更通用的解決方案,而不是簡單地對各種情況寫滿if else, 那樣的代碼,難以理解,難以維護。

優雅的代碼不僅僅是格式規范,命名良好,更重要的是思維方式和抽象層次,以及由此帶來的良好的設計。

總結

以上是生活随笔為你收集整理的怼天怼地怼空气的Linus 喜欢和什么样的人一起工作?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。