刷個(gè)虎撲,還能刷到自己?-「編程雜感」第 6 期
還是學(xué)姐提醒我,我才知道編程雜感系列已經(jīng)停更了好久。
最近的幾個(gè)月都在忙著各種瑣碎的事情,把這事忘得一干二凈。
本文概覽(你可以選擇自己感興趣的部分閱讀):
思考: 避免貨物崇拜編程 復(fù)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的一點(diǎn)感觸 快速閱讀的秘訣 工具/網(wǎng)站推薦 一個(gè)高質(zhì)量的編程導(dǎo)航 AI 人工智能圖片放大 趣事:刷個(gè)虎撲,還能刷到自己? 閱讀:我在本周閱讀的一些不錯(cuò)的文章 開(kāi)源:推薦一些不錯(cuò)的開(kāi)源項(xiàng)目
思考
避免貨物崇拜編程
何為貨物編程?
維基百科是這樣解釋的:
貨物崇拜編程(Cargo Cult Programming)是一種計(jì)算機(jī)程序設(shè)計(jì)中的反模式,其特征為不明就里地、儀式性地使用代碼或程序架構(gòu)。貨物崇拜編程通常是程序員既沒(méi)理解他要解決的 bug、也沒(méi)理解表面上的解決方案的典型表現(xiàn)。
簡(jiǎn)單來(lái)說(shuō),貨物編程就是我們不明就理地使用各種框架/優(yōu)秀實(shí)踐(比如設(shè)計(jì)模式)/軟件架構(gòu),最后把項(xiàng)目搞得像個(gè)四不像。
列舉一些我身邊發(fā)生過(guò)的實(shí)際的例子吧!
看到一些比較火的框架就直接套用在自己的項(xiàng)目上,而不知道這個(gè)框架究竟能解決項(xiàng)目上的什么問(wèn)題?是否適合項(xiàng)目?有沒(méi)有什么風(fēng)險(xiǎn)? 學(xué)習(xí)了某個(gè)設(shè)計(jì)模式/工程實(shí)踐之后,不顧項(xiàng)目實(shí)際情況,刻意使用在項(xiàng)目上! 直接復(fù)制從網(wǎng)上(比如 Stack Overflow )找到的代碼,只要運(yùn)行 OK 就好。 看到一些比較火的概念就魔怔了,比如前兩年開(kāi)始爆火的中臺(tái)概念。
相關(guān)閱讀 :
貨物崇拜編程-技術(shù)小黑屋[1] 性能調(diào)優(yōu)和船貨崇拜-熊節(jié)
復(fù)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的一點(diǎn)感觸
G 哥要開(kāi)始刷計(jì)算機(jī)基礎(chǔ)相關(guān)的書(shū)籍了。離校已久,發(fā)現(xiàn)很多計(jì)算機(jī)底層的知識(shí)都已經(jīng)忘記了,想要復(fù)習(xí)一下,畢竟是地基,還是要打的深點(diǎn)(其實(shí)主要是為了重構(gòu) JavaGuide 上計(jì)算機(jī)基礎(chǔ)部分的內(nèi)容)。

我的 JavaGuide[2] 上的計(jì)算機(jī)網(wǎng)絡(luò)部分的重構(gòu)日程已經(jīng)拖了很久。我就想著應(yīng)該能不能借著這次復(fù)習(xí)計(jì)算機(jī)基礎(chǔ),給這個(gè)事情畫(huà)個(gè)句號(hào)。因此,我是先從計(jì)算機(jī)網(wǎng)絡(luò)開(kāi)始的!

計(jì)算機(jī)網(wǎng)絡(luò)的話,大學(xué)那會(huì)我們使用的謝希仁老師的《計(jì)算機(jī)網(wǎng)絡(luò)》這本書(shū)。

我當(dāng)時(shí)還參考這本書(shū)很認(rèn)真地做了筆記:《大二逃課總結(jié)的 1.2w 字的計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)!掃盲!》 。
這本書(shū)的內(nèi)容質(zhì)量確實(shí)很高,也很全面,算得上是很棒的教材了。但是,這本書(shū)的內(nèi)容又有點(diǎn)過(guò)于枯燥,很多地方講的都很難理解,有點(diǎn)過(guò)于書(shū)面語(yǔ)了。
我最近看的計(jì)算機(jī)網(wǎng)絡(luò)書(shū)籍是 《計(jì)算機(jī)網(wǎng)絡(luò)—自頂向下方法》[3] 這本書(shū)。國(guó)內(nèi)很多名校開(kāi)設(shè)的課程的教學(xué)大綱就是這本書(shū)的目錄。

從這本書(shū)的名字中的“自頂向下(A Top Down Approach)”就能看出,它是從應(yīng)用層開(kāi)始講的,再到運(yùn)輸層->網(wǎng)絡(luò)層->數(shù)據(jù)鏈路層。這樣的安排其實(shí)更容易讓學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的人接受。
另外,這本書(shū)對(duì)于每一層的講解都非常詳細(xì)并且容易理解,書(shū)中會(huì)列舉很多日常生活中的例子。并且,每一層的銜接也做的特別好!

快速閱讀的秘訣
發(fā)現(xiàn)身邊很多人喜歡和別人對(duì)比讀書(shū)的速度,覺(jué)得讀書(shū)快是一件非常厲害的事情。
在我看來(lái),拋開(kāi)書(shū)籍本身以及看書(shū)人自身水平來(lái)談?wù)撟x書(shū)速度的行為都是耍流氓!
單純從技術(shù)書(shū)籍角度來(lái)說(shuō),有一些技術(shù)書(shū)籍我需要一兩個(gè)月甚至一年才能看完,但是,也有一些我一兩天就能看完。
一本技術(shù)書(shū)被很快看完或許有下面幾種可能:
你對(duì)這本書(shū)中所講內(nèi)容的認(rèn)知和書(shū)中的作者差不了多少。 這本書(shū)的價(jià)值對(duì)你來(lái)說(shuō)很少很少。
相應(yīng)地,一本技術(shù)書(shū)需要很久才能看完或許有下面幾種可能:
書(shū)中所講內(nèi)容超出了你的認(rèn)知很多。 書(shū)中有很多對(duì)你來(lái)說(shuō)很有價(jià)值的內(nèi)容,你需要花時(shí)間消化吸收。
以下是《Redis 設(shè)計(jì)與實(shí)現(xiàn)》的作者黃健宏大佬在其博文《快速閱讀的秘訣》[4]中的分享:
書(shū)讀的慢并不是一件壞事, 相反, 這恰恰說(shuō)明你在學(xué)習(xí)一些以前沒(méi)接觸過(guò)的新知識(shí), 這是一件非常棒的事情。你唯一需要做的就是耐著性子繼續(xù)學(xué)習(xí), 豐富自己在該領(lǐng)域的知識(shí)積累, 等到你的積累多起來(lái)了以后, 你遲早也會(huì)讀的越來(lái)越快。

工具/網(wǎng)站推薦
一個(gè)高質(zhì)量的編程導(dǎo)航
通過(guò)編程導(dǎo)航,你可以一站直達(dá)很多優(yōu)質(zhì)的編程資源,比如優(yōu)質(zhì)開(kāi)源項(xiàng)目、一些不錯(cuò)的學(xué)習(xí)網(wǎng)站、大廠面試題解和面經(jīng)、優(yōu)質(zhì)的技術(shù)博客等等
為了方便查找,編程導(dǎo)航還支持按照 分類(lèi)專(zhuān)欄、資源名稱、標(biāo)簽搜索。

網(wǎng)站地址:https://www.code-nav.cn/recommend[5] 。
AI 人工智能圖片放大
這個(gè)網(wǎng)站真心厲害了!可以接近無(wú)損的將一個(gè)小圖片給放大。具體原理利用了深度學(xué)習(xí)技術(shù),使用深度卷積神經(jīng)網(wǎng)絡(luò),將噪點(diǎn)和鋸齒的部分進(jìn)行補(bǔ)充,實(shí)現(xiàn)圖片的無(wú)損放大。

網(wǎng)站地址:https://bigjpg.com/[6] 。
趣事
刷個(gè)虎撲,還能刷到自己?
這個(gè)事情感覺(jué)蠻好笑的。我自己是不玩虎撲的哈,是一位讀者在虎撲看籃球賽的時(shí)候刷到了我。

在我的印象中,虎撲就是一個(gè)偏籃球、游戲以及數(shù)碼的交流圈子。真是沒(méi)有想到這里竟然還有人發(fā)編程相關(guān)的內(nèi)容。

原帖子地址:https://bbs.hupu.com/42127215.html[7] 。這個(gè)帖子是 2021-04-06 17:36:17 發(fā)的,閱讀量還挺高的!說(shuō)明我以后還能去虎撲引引流?
其實(shí),看這些人的評(píng)論特別是“準(zhǔn)備面試,我只看 javaguide!”這句真有點(diǎn)像是我自己找人發(fā)的。
不過(guò),真心不是。我真還沒(méi)有干過(guò)這種羞恥的事情,未來(lái)也不會(huì)干這種事。每天自己都忙的不行,干這些事情的話,那就太特么無(wú)聊了吧!
還是一句話:你的東西別人覺(jué)得有價(jià)值的話,自然會(huì)說(shuō)好!
還有很多號(hào)主的讀者分享面經(jīng)的時(shí)候提到過(guò)我的 JavaGuide ,比如大家應(yīng)該比較熟悉的汪哥的讀者就推薦過(guò)老多次我的 JavaGuide。

客套的夸獎(jiǎng)終歸是虛的!我自己是對(duì) JavaGuide 上面的很多內(nèi)容是不滿意的,比如操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò),再比如分布式那塊的內(nèi)容。未來(lái)幾年,持續(xù)完善吧! 相信未來(lái)也會(huì)有越來(lái)越多的開(kāi)源電子書(shū)。
閱讀
最近兩周閱讀的一些不錯(cuò)的文章 :
技術(shù) :
字節(jié)碼增強(qiáng)技術(shù)探索 ??????????:從字節(jié)碼結(jié)構(gòu)開(kāi)始講起,再到字節(jié)碼增強(qiáng)技術(shù) ASM、Javassist。 字節(jié)碼增強(qiáng):原理與實(shí)戰(zhàn) ????????:從動(dòng)態(tài)代理小案例到 JavaAgent 小案例(計(jì)算方法執(zhí)行時(shí)間)??梢宰鳛樽止?jié)碼編程的實(shí)戰(zhàn)小案例來(lái)學(xué)習(xí)。 從 0-1 開(kāi)發(fā) Java 性能剖析工具 ??????:涉及到了字節(jié)碼編程!算是一個(gè)簡(jiǎn)單的字節(jié)碼編程入門(mén)小案例。 聊聊二維碼掃碼登錄的原理 ????????:二維碼登錄的具體原理解析。 有哪些可以提高代碼質(zhì)量的書(shū)籍推薦? ???????? :推薦了很多對(duì)于提供代碼和架構(gòu)質(zhì)量的經(jīng)典書(shū)籍。 使用 Arthas 排查 SpringBoot 詭異耗時(shí)的 Bug ??????:阿里巴巴云原生的一篇 Arthas 實(shí)戰(zhàn)。 我在架構(gòu)設(shè)計(jì)和代碼開(kāi)發(fā)中的一些常用原則 ????????:軟件開(kāi)發(fā)中必備的一些優(yōu)秀實(shí)踐/原則。 這次答應(yīng)我,一舉拿下 I/O 多路復(fù)用! ???????? :大量圖解,非常精彩! 當(dāng)程序員具備了抽象思維 ??????????:軟件技術(shù)本質(zhì)上就是一門(mén)抽象的藝術(shù)。
其他 :
如何高效協(xié)作繪圖?[8] ??????:通過(guò) Excalidraw 實(shí)現(xiàn)協(xié)作繪圖。 圖床搭配 PicGo:打造高效的圖片處理工作流[9] ?????????? 我們?cè)谂Τ蔀楹阈?王興 ????????:介紹了美團(tuán)創(chuàng)始人王興的故事,非常精彩。 字節(jié)跳動(dòng) 9 周年,張一鳴最新演講中的自我認(rèn)知和團(tuán)隊(duì)打造(附全文)[10]????????
開(kāi)源
最近兩周,awesome-java (非常棒的 Java 開(kāi)源項(xiàng)目集合)這個(gè)項(xiàng)目中又添加了 4 個(gè)不錯(cuò)的國(guó)產(chǎn)開(kāi)源項(xiàng)目。
ruoyi-vue-pro[11] :基于 SpringBoot,Spring Security,JWT,Vue & Element 的前后端分離權(quán)限管理系統(tǒng)。 TLog[12] :一個(gè)輕量級(jí)的分布式日志標(biāo)記追蹤神器,碼云 GVIP 項(xiàng)目。 Forest[13] :輕量級(jí) HTTP 客戶端 API 框架,功能強(qiáng)大。相比于 OkHttp 和 HttpClient,它更高層。 Redis Manager[14] :Redis 一站式管理平臺(tái),支持集群(cluster、master-replica、sentinel)的監(jiān)控、安裝(除 sentinel)、管理、告警以及基本的數(shù)據(jù)操作功能。
awesome-java 地址:
Github:https://github.com/CodingDocs/awesome-java[15] Gitee:https://gitee.com/SnailClimb/awesome-java[16](Github 無(wú)法訪問(wèn)或者訪問(wèn)速度比較慢的小伙伴可以看碼云上的對(duì)應(yīng)內(nèi)容)

參考資料
貨物崇拜編程-技術(shù)小黑屋: hrome.google.com/webstore/category/extensions?hl=zh-CN
[2]JavaGuide: https://github.com/Snailclimb/JavaGuide
[3]《計(jì)算機(jī)網(wǎng)絡(luò)—自頂向下方法》: https://book.douban.com/subject/30280001/
[4]《快速閱讀的秘訣》: https://blog.huangz.me/2021/how-to-read-fast.html
[5]https://www.code-nav.cn/recommend: https://www.code-nav.cn/recommend
[6]https://bigjpg.com/: https://bigjpg.com/
[7]https://bbs.hupu.com/42127215.html: https://bbs.hupu.com/42127215.html
[8]如何高效協(xié)作繪圖?: https://sspai.com/post/65684
[9]圖床搭配 PicGo:打造高效的圖片處理工作流: https://sspai.com/post/65716
[10]字節(jié)跳動(dòng) 9 周年,張一鳴最新演講中的自我認(rèn)知和團(tuán)隊(duì)打造(附全文): https://www.huxiu.com/article/418732.html
[11]ruoyi-vue-pro: https://github.com/YunaiV/ruoyi-vue-pro
[12]TLog: https://gitee.com/dromara/TLog
[13]Forest: https://gitee.com/dromara/forest
[14]Redis Manager: https://github.com/ngbdf/redis-manager
[15]https://github.com/CodingDocs/awesome-java: https://github.com/CodingDocs/awesome-java
[16]https://gitee.com/SnailClimb/awesome-java: https://gitee.com/SnailClimb/awesome-java
推薦?? :1049天,100K!簡(jiǎn)單復(fù)盤(pán)!
推薦?? :Github掘金計(jì)劃:Github上的一些優(yōu)質(zhì)項(xiàng)目搜羅
