知乎網友:這是哪個傻逼寫的代碼 ?

2021-02-14 碼匠筆記

✋點擊「面試交流」加入交流群✋

「置頂公眾號」,每天推送面試專題

想寫出高質量、易維護的代碼,一定離不開編碼規範和設計模式。編碼規範的相關文章,而設計模式的重要性也不言而喻,很多開發者認為設計模式只有在面試中才會用到,其實不然。當你有了豐富的開發經驗之後你會發現,構建一個系統困難的並不是編碼,而是設計,一個精心設計的系統,會多方收益,特別是在維護和代碼重用領域。 所以,設計模式的運用可以給軟體開發帶來很大的價值和收益,有一定的開發經驗後肯定會體會到這一點,學習設計模式雖然不能在短時間內給你提升,但潛移默化中會增強你的編碼能力。

從程序誕生開始,各種程式語言、技術框架層出不窮,其技術不斷更迭很大的一個目的就是使得構建的系統有更好的擴展性和可重用性。我們在系統設計的時候追求高內聚低耦合,面向對象的思維便是解決這一問題的產物。而設計模式與面向對象思維不太一樣,設計模式是人們總結的編碼經驗,目的是代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。23 中設計模式中的編碼思維可以被反覆使用,很多人看自己多年前寫的代碼就是下面的感覺:

偶然間看到自己多年前寫的代碼

類似此動圖的段子還很多,昨天刷知乎就看到了一個有趣話題:看自己幾年前寫的代碼是怎樣的一種感受?

www.zhihu.com/question/40097501?sort=created

不用看幾年前的,幾個月之前的代碼就夠讓你懷疑自己當初智商的了

有這麼一個段子: 

寫這段代碼的時候,只有上帝和我知道它是幹嘛的。 

幾個月後。 

只有上帝知道了。

哇這變量名淺顯易懂, 

哇這庫用得巧奪天工, 

哇這算法寫得還不錯…… 

這是不可能的…… 

真實情況:

媽的當年沒會用這個庫在那瞎用, 

媽的這代碼風格就是一坨屎, 

媽的一看全是冗餘代碼, 

媽的我想自己重寫, 

媽的沒時間。

各位有沒有類似的感受,可以在留言區留言哈~

在工作過程中,我們會積累一些編碼經驗,自己總結了一套高效的編碼思維和技巧,而設計模式是人們總結的編碼經驗,都是非常經典的設計思維,我們可以借鑑學習。而要想體會設計模式的思想,需要很長時間實踐才行。

如果你帶兵打仗,編碼規範和算法能力就可以比作單兵的作戰素質,而設計模式則是你的排兵布陣。設計模式是工程師必備知識,也是面試高頻考點,接下來就設計模式這一塊的知識,給大家推薦一些不錯的學習資源。對下手學習設計模式沒有頭緒的朋友可以轉發本文,在朋友圈翻找查看也方便。不可否認的是,B站已經稱為年輕人尋找學習資源的好去處。各種領域都可能在B站上找到學習資源,B站的網友說:說出來你可能不信,我的研究生是在 B站 讀完的 。。。如果你有大把的時間可以採取觀看視頻教程的方式學習,這樣容易理解但效率低。最重要的是 B站 沒片頭廣告,還能倍數播放。如果你沒接觸過設計模式,我推薦去B站找資源去學習吧。當搜索設計模式四個字,會有很多視頻。在這裡,我推薦兩個視頻,對有選擇困難症的讀者可以看一下這兩個視頻教程:https://www.bilibili.com/video/av57936239此教程可能不是很新,但是非常經典,入門足以。設計模式是一種設計思維,其實看新的舊的都一樣。這個視頻設計模式講的比較全,會有代碼實踐、圖文結合,易於理解。https://www.bilibili.com/video/av75920461這個教程比較新,使用 IDEA 編輯器。但是 23 中設計模式不全,只是講解了常用的幾個。

GitHub 是我常逛的地方,推薦兩個不錯的設計模式學習 rep, 都是國人創建的...

此項目設計模式的代碼實現是 Java,代碼寫的比較清晰條例所以推薦給大家。此 rep 用例子講解設計模式,摘取一段此教程關於適配器模式的描述:定義:將一個類的接口轉換成客戶期望的另一個接口,適配器讓原本接口不兼容的類可以相互合作。這個定義還好,說適配器的功能就是把一個接口轉成另一個接口。

Mobile mobile = new Mobile();
V5Power v5Power = new V5PowerAdapter(new V200Power());
mobile.inputPower(v5Power);

此項目也有對應的博客地址:https://jingbin.me/DesignPattern/,rep下載下來看源碼,博客看分析。這樣效率會高。下面是此項目的結構截屏:design-pattern-java Star 511此項目也是 Java 代碼實現的設計模式,不過更推薦此項目對應的博客學習:https://gof.quanke.name/。博客包括 100多篇與設計模式學習相關的文章,涵蓋了七個面向對象設計原則和24個設計模式(23個GoF設計模式 + 簡單工廠模式)。本書通篇都是以情景對話的形式,用多個小故事或編程示例來組織講解設計模式。如果看過《大話數據結構》的朋友會對這本書的講解方式很熟悉,沒錯程傑老師就是擅長用故事講技術。(大話設計模式有很多同名的書,在這裡推薦程傑老師的,豆瓣評分 8.3 )這本書適合理論學習,如果你沒接觸任何關於設計模式的概念,或者剛剛入門,答應我,別碰這本書。除此之外,慕課網也有一門不錯的設計模式課程,Geely 老師主講。近期有面試的讀者朋友,可以去看這門課。如果你想面試突擊,推薦上面提到的 圖解 Java 設計模式 課程和慕課網 Geely 老師的課程。如果你是想深入淺出的學習設計思維推薦《大話設計模式》這本書,如果你有豐富的編程經驗,去看 《設計模式》 黑皮書吧。[1]  www.zhihu.com/question/25432487/answer/30821390[2]  blog.csdn.net/u014144901/article/details/80518955[4]  www.zhihu.com/question/40097501

 

公眾號運營至今,離不開小夥伴們的支持。為了給小夥伴們提供一個互相交流的平臺,特地開通了官方交流群。掃描下方二維碼備註 進群 後獲取進群通道。

相關焦點

  • 銀行櫃員工作內容——知乎網友傾情分享(一)
    銀行櫃員工作內容——知乎網友傾情分享(一) 備考銀行的你,了解銀行的崗位職責嗎。亦或是已經拿到銀行offer的你,是否對銀行工作充滿期待嗎。三百六十行,行行出狀元。每個工作都是需要耐心和努力,進步成長。今天中公金融人帶你感受一位來自知乎網友的櫃員生活分享。
  • 75條笑死人的知乎神回復,用60行代碼就爬完了
    贊同很多有沒有?所以爬取知乎神回復我們只要爬取那些贊同多又字數少的回答就可以。簡單的兩個步驟就能實現,第一步爬取知乎回答,第二部篩選回答。是不是很easy?爬取知乎回答第一步我們爬取知乎上的回答。知乎上的回答太多了,一下子爬取所有的回答會很費時,我們可以選定幾個話題,爬取這幾個話題裡的內容。下面的函數用於爬取某一個指定話題的內容:
  • 遺留代碼寫的爛,我能怎麼辦?
    圖1 利用時間格式生成一個數據主鍵圖2 在調用方法之前,先隨機休眠我先來做下簡要說明,圖1的代碼是一位離職員工寫的,而圖2的代碼是這位開發同學寫的,把這兩段代碼拼湊起來,基本可以得出這樣一個程序邏輯:1、執行 getDataId() 會返回一串格式為 「當日日期+時間+毫秒+隨機0-9」 的編號。
  • 5程式設計師因停電去網吧寫代碼,被認為是黑客報警了,網友:想偷我戒指?
    這不,有位程式設計師網友就在網上分享了自己前段時間遇到的一件尷尬事。 就像是網友們所說的,估計網管也是在巡邏的時候看到這五人的屏幕都黑乎乎的,然後還瘋狂跳代碼,沒一會電腦甚至還出現了白色的字符,一看就是老手了,不懷疑他們是黑客才怪呢!
  • 文案人必備素材,知乎點讚超高神回復
    刷知乎已經變成了每天的日常知乎就是廣告人的靈感來源地今天就和大家分享一下一句話一萬贊以上的神回復01 「大腦是你最重要的器官」 ——這是大腦告訴你的。@楊嘉煜09 你聽過最酷的一句話是哪句?說這句話的人也一樣酷麼?
  • 應屆研究生拿到知乎offer,後被毀約三方,網友:這操作夠「騷」
    應屆研究生拿到知乎offer,後被毀約三方,網友:這操作夠「騷」每年的秋招都會有很多應屆生和公司籤約,拿到屬於自己的offer,只等學校的課程結束,就奔向實習的崗位。下面就有位某高校研究生,秋招拿到知乎offer,後被要求年前上崗,因無法去實習,被知乎毀約三方協議的事情,如下是其帖子全文:自己是2019屆畢業的研究生,校招時籤約了知乎,後來知乎通知必須1月2日去報導實習,否則取消offer。更讓人可氣的是,知乎說實習後看個人表現決定去留,還不保證一定能存留,真的是絕了。
  • 傻人有傻福,傻逼沒有什麼意思什麼梗? 這梗常用於諷刺別人……
    傻人有傻福,傻逼沒有什麼意思什麼梗? 這梗常用於諷刺別人……時間:2020-02-05 18:56   來源:小雞詞典   責任編輯:沫朵 川北在線核心提示:原標題:傻人有傻福,傻逼沒有什麼意思什麼梗? 這梗常用於諷刺別人 意思就是做人真的不能太傻,還是留個心眼好啊!
  • 1024程式設計師節,不寫代碼還能寫啥
    即將到來的「雙11」,也算是代碼改變世界的成果吧。文章就更不必說了,曹丕把寫文章看作「經國之大業,不朽之盛事」,一點也不誇張。都是極費心力的苦差事。寫代碼是朝如青絲暮成禿,寫文章是一將功成萬筆禿。同樣,不要羨慕程式設計師拿錢多,白天磨需求,半夜寫代碼,收入按工時折算,並不是很多。知乎上有組姐妹問題,被自己的代碼美哭是一種什麼樣的體驗?被自己的代碼醜哭又是一種什麼樣的體驗?能讓自己感動到哭的工作,一定是費盡心力的,說嘔心瀝血真不為過。既要勤奮也靠天分。
  • 有人準備直播程式設計師寫代碼,相互出題PK,網友:想得太簡單了!
    據這名程式設計師網友所說,他準備打算開發個視頻直播的系統,專門讓程式設計師撕逼pk,直播寫代碼。兩個程式設計師互相給對方出題,同時開始寫。然後大家可以刷禮物刷彈幕什麼的,並且這名程式設計師網友表示:「作為一名真材實料的程式設計師,好像和一些大神們過招!」,他的想法倒是蠻好的,有沒有可執行性,以及會有什麼樣的效果呢?或者有什麼因素是他沒有考慮周全的呢?
  • 晚上看了一個知乎評論區,我失眠了
    臨睡前,按照往常慣例,作為知乎人工智慧答題小能手,帥北在搜尋著是否有可以回答的問題。突然刷到一個很有意思的問題:編程厲害的人都有哪些典型的特點?(問題已經過我模糊轉換)好傢夥,這不說的就是我嗎?他說是因為這個同學的代碼有些只有他自己才能看懂了,別人很難接手,所以這就是大佬的特點。
  • Android-知乎網易蘑菇街阿里面經
    過完年開始準備找實習,投了知乎,內推了阿里蘑菇街騰訊百度網易。騰訊百度都沒有收到面試,知乎Skype面試,蘑菇街阿里電話面試,網易現場面。知乎二面被拒,蘑菇街阿里一面被拒,網易三面,然後備胎了,前幾天被通知過了,收到了offer。自己整理了一下被問到的問題,現在分享給大家,另外自己整理的一下資料也會發給大家,希望能幫助到各位求職的小夥伴。
  • 程式設計師:停電去網吧寫代碼,被當成黑客報警了,網友:想偷我戒指
    甚至在很多人眼裡,這就是年薪百萬,一夜成名的職業了,也讓程式設計師這個行業增添了幾分神秘感,這也讓很多人好奇,究竟是做什麼能夠讓自己收入這麼多呢,他們為何有如此強大的吸金能力呢?有位網友就在論壇上發表自己作為一位程式設計師曾遇到的尷尬事情。
  • 疑似喬任梁在知乎上的匿名留言 網友被其文字感動
    疑似喬任梁在知乎上的匿名留言 網友被其文字感動 時間:2016-09-19 15:41:56[來源:華聲娛樂][責編:馮宇軒]
  • 什麼仇什麼怨,前員工洩露大疆原始碼被罰20萬
    事後,B站發表聲明稱,洩露的部分代碼屬於較老的歷史版本,並且已執行了主動防禦措施。多方爆料都將這起洩露事件指向內部員工蓄意報復,但這些與不知被拷貝了多少份的源碼隱患相比也不甚重要了。畢竟,如果有人想通過後端代碼攻擊B站,無需再進行逆向工程猜測運作原理和漏洞位置,可以直接從源碼中找到很多漏洞。
  • 大學編程課老師一般不敲代碼,原因很尷尬,課後實訓還怎麼做?
    最近在知乎上有這樣一個問題吸引了數百萬的吃瓜網友圍觀:為什麼大學老師教編程課一般都不敲代碼?大家猜猜為什麼? 正如知乎網友avoidant說:我上課就是現場編程,而且還經常另外知乎網友Cat Chen說道:如果一個老師 live coding 到一半,發現總是出錯,而且怎麼 debug 都找不到根本原因,怎麼辦?你作為學生會怎麼看這個老師?正因為這種狀況比較難看,所以我是會極力避免的。
  • 什麼樣的人適合寫知乎賺錢
    玩知乎一段時間了,很多人諮詢我想通過寫知乎賺錢,雖然現在做知乎已確定是肯定能賺錢了,但是做任何事情首先要考慮清楚適合不適合自己,能不能堅持拿到結果。知乎賺錢那麼什麼樣的人適合寫知乎賺錢呢?1、有空餘時間寫知乎重要的是寫作,而在知乎上必須要原創,不管是回答還是文章都要原創,而且同樣的答案只能發一次,所以你想做好知乎,每天至少寫一篇文章,回答幾個問題,每天花二到三個小時左右是需要的。
  • 知乎答主「laq是只倉鼠」:在知乎,每個人都有故事
    上知乎,能收穫什麼?每個人的答案都不盡相同。1月13日的2021新知青年大會上,知乎答主「laq是只倉鼠」(以下簡稱「倉鼠」)作為演講嘉賓,分享了他在知乎的「意想不到的收穫」:除了數不清的知識和故事,更有表達自我的天地和友情、愛情以及50斤「幸福肥」。
  • 背誦代碼得國賽二等獎!這麼學編程看得我一臉懵……
    今天,播妞想和大家聊聊背誦代碼 學習編程的事情,起因是在知乎熱榜上,有一個話題吸引了播妞的注意「如何看待學長背誦代碼拿人工智慧國賽二等獎?」,該話題已有上千的關注者,被瀏覽量58萬+。背代碼也是像背課文一樣對著列印材料邊讀邊背,本人有幸通過學長的視頻看到這一場面,一個單詞一個符號的背。」話題評論裡大致分為兩種看法,首先是不支持背代碼的:@如果你真的懂的話,其實自己寫比所謂的背代碼容易的多。
  • 程式設計師將一萬五千行代碼精簡到四百行,卻讓10多個人丟了工作
    代碼寫得多反而代表編程能力差?網上一個網友曬出了自己同事寫的代碼,語氣透露出一絲不滿:稍微放大看看:可以看到,這是一段蠻長的Java代碼。對此,網友評論的方向分成了兩極。一類覺得這是「教科書式」的代碼行,整潔規範:編寫者的思維邏輯也非常清晰,代碼工整度沒毛病,運行起來應該也沒什麼大礙,所以有網友覺得好像沒什麼大礙。但還有網友感覺寫這麼多是為什麼?是因為按代碼行數算薪資?有畫蛇添足的味道,感覺有點湊數的嫌疑。
  • 你用代碼寫作業,他用Python讓櫻花綻放,美哭了!
    不論是在哪個國家在哪個地區,在這個時節春天的腳步都近了,而大自然給人們的青草與花兒更加讓人期待。這個節氣正是櫻花爛漫,萬物初綻新芽的時令,而武漢大學正是賞櫻花的勝地,而武漢是本次疫情的重災區,不能解封,於是在3月16號開通了櫻花直播,每天10:00-16:00領大家一起雲踏春,線上賞櫻花。