程序員周刊(第3期):識別未來新技術(shù)的趨勢

溝通創(chuàng)造價(jià)值,分享帶來快樂。這里是程序員周刊,歡迎您每周五和我一起做時(shí)間的朋友。

當(dāng)程序員冰墩墩脫掉帽子

并不是社會不尊重程序員,只要你能幫上大忙,就一定會贏得別人的尊重。所以,開玩笑說,我們可能都是在寫一樣的 for 語句,但是,你寫在那個(gè)地方一文不值,而我寫在這個(gè)地方,這行代碼就值 2000 元。

懷揣希望,靜待花開

大咖思維

本期繼續(xù)和大家分享陳浩關(guān)于未來技術(shù)發(fā)展的趨勢,因?yàn)槭莻€(gè)人最近一直在追他的文章,干貨非常多,大家不妨體驗(yàn)看是否有道理。

一個(gè)技術(shù)能不能發(fā)展起來,關(guān)鍵還要看三點(diǎn):

1、一個(gè)比較好的技術(shù)社區(qū):像 C、C++、Java、Python 和 JS 生態(tài)圈都是非常豐富和火爆。

2、一個(gè)工業(yè)化的標(biāo)準(zhǔn):像 C、C++、Java 這些編程語言都是有標(biāo)準(zhǔn)化組織的。尤其是 Java,它在架構(gòu)上還搞出了像 J2EE 這樣的企業(yè)級標(biāo)準(zhǔn)。

3、一個(gè)或多個(gè)殺手級應(yīng)用:C、C++ 和 Java 的殺手級應(yīng)用不用多說了,就算是對于 PHP 這樣還不能算是一個(gè)優(yōu)秀的編程語言來說,因?yàn)槭?Linux 時(shí)代的第一個(gè)殺手級解決方案 LAMP 中的關(guān)鍵技術(shù),所以,也發(fā)展起來了。

上面三點(diǎn)至關(guān)重要,新的技術(shù)只需要占到其中一到兩點(diǎn)就已經(jīng)很不錯了,何況有的技術(shù),比如 Java 三點(diǎn)全都滿足,所以,Java 蓬勃發(fā)展也在情理之中。

用這些標(biāo)尺來衡量一下 Go 語言:

Go 語言容易上手;

Go 語言解決了并發(fā)編程和底層應(yīng)用開發(fā)效率的痛點(diǎn);

Go 語言有 Google 這個(gè)世界一流的技術(shù)公司在后面;

Go 語言的殺手級應(yīng)用是 Docker 容器,而容器的生態(tài)圈這幾年可謂是發(fā)展繁榮,也是熱點(diǎn)領(lǐng)域。

最后陳浩得到的判斷是:

Go 不可限量,會吞食 C、C++、Java 的項(xiàng)目,吞噬主要是中間層的項(xiàng)目,也就是說,Go 不會吞食底層到 C 和 C++ 那個(gè)級別的,也不會吞食到上層如 Java 業(yè)務(wù)層的項(xiàng)目。Go 語言能吞噬的一定是 PaaS 上的項(xiàng)目,比如一些消息緩存中間件、服務(wù)發(fā)現(xiàn)、服務(wù)代理、控制系統(tǒng)、Agent、日志收集等等,他們沒有復(fù)雜的業(yè)務(wù)場景,也到不了特別底層(如操作系統(tǒng))的軟件項(xiàng)目或工具。

程序員的個(gè)人財(cái)富

財(cái)富的定義遠(yuǎn)遠(yuǎn)不限于金錢,而是任何有價(jià)值,能產(chǎn)生收入的東西,《富爸爸,窮爸爸》中,把一個(gè)人的財(cái)富歸為了下面幾大類:

無需本人到場就可以正常運(yùn)作的業(yè)務(wù);

股票;

債券;

能夠產(chǎn)生收入的房地產(chǎn);

版稅,如音樂、圖書、專利等;

其他任何有價(jià)值、可產(chǎn)生收入,或者有增值潛力,并且有很好銷路的東西,比如藝術(shù)品。

這本書不僅改變了我對“財(cái)富”定義的認(rèn)識,更重要的是讓我明白了這一點(diǎn):人生在世,最重要的事情不是打工賺工資,而是積累真正的財(cái)富。想清楚這個(gè),你才能實(shí)現(xiàn)從“打工者思維”到“財(cái)富管理者思維”的轉(zhuǎn)變,才有可能真正走上“財(cái)富自由”的道路。

作為一名程序員,我們是比其他職業(yè)的人更幸運(yùn)的,因?yàn)槲覀兛梢苑e累的財(cái)富遠(yuǎn)不止上面提到的幾項(xiàng)。這里羅列一下我能想到的財(cái)富積累:

Code Review

LinkedIn 的高效代碼審查技巧:(https://thenewstack.io/linkedin-code-review/)

這篇文章介紹了 LinkedIn 內(nèi)部實(shí)踐的 Code Review 形式。具體來說,LinkedIn 代碼復(fù)查有以下幾個(gè)特點(diǎn)。

1、從 2011 年開始,強(qiáng)制要求在團(tuán)隊(duì)成員之間做代碼復(fù)查。Code Review 帶來的反饋意見讓團(tuán)隊(duì)成員能夠迅速提升自己的技能水平,這解決了 LinkedIn 各個(gè)團(tuán)隊(duì)近年來因迅速擴(kuò)張帶來的技能不足的問題。

2、通過建立公司范圍 Code Review 工具,這就可以做跨團(tuán)隊(duì)的 Code Review。既有利于消除 bug,提升質(zhì)量,也有利于不同團(tuán)隊(duì)之間的經(jīng)驗(yàn)互通。

3、Code Review 的經(jīng)驗(yàn)作為員工晉升的參考因素之一。

4、Code Review 的一個(gè)難點(diǎn)是,Reviewer 可能不了解某塊代碼修改的背景和目的。所以 LinkedIn 要求代碼簽入版本管理系統(tǒng)前,就對其做清晰的說明,以便復(fù)查者了解其目的,促進(jìn) Review 進(jìn)行。

從Code Review 談如何做技術(shù) | 酷 殼 - CoolShell

這篇文章通過阿里巴巴內(nèi)部因?yàn)闃I(yè)務(wù)代碼不做Code Review案例進(jìn)行的復(fù)盤,詳細(xì)地講解了為什么要Code Review,Code Review為什么會有問題,結(jié)合實(shí)際情況進(jìn)行反思,是一篇深度思考的好文。

說透代碼評審 - 張飛洪[廈門] - 博客園

本文是我之前對代碼審查的總結(jié),分別從為什么要審查,審查的困境和爭議,審查的形式,審查的對象,審查人員,審查對象等維度出發(fā),系統(tǒng)性的學(xué)習(xí)筆記,希望對你有所啟發(fā)。

編程語言和代碼質(zhì)量

這是一項(xiàng)有趣的研究。有四個(gè)人從 GitHub 上分析了 728 個(gè)項(xiàng)目,6300 萬行代碼,近 3 萬個(gè)提交人,150 萬次 commits,以及 17 種編程語言(如下圖所示),他們想找到編程語言對軟件質(zhì)量的影響。

然后,他們還對編程語言做了一個(gè)分類,想找到不同類型的編程語言的 bug 問題。如下圖所示:

以及,他們還對這眾多的開源軟件做了個(gè)聚類,如下圖:

對 bug 的類型也做了一個(gè)聚類,如下圖:

我們來看一下相關(guān)的結(jié)果。

首先,他們得出來的第一個(gè)結(jié)果是,從查看 bug fix 的 commits 的次數(shù)情況來看,C、C++、Objective-C、PHP 和 Python 中有很多很多的 commits 都是和 bug fix 相關(guān)的,而 Clojure、Haskell、Ruby、Scala 在 bug fix 的 commits 的數(shù)上明顯要少很多。下圖是各個(gè)編程語言的 bug 情況。如果你看到是正數(shù),說明高于平均水平,如果你看到是負(fù)數(shù),則是低于平均水平。

第二個(gè)結(jié)論是,函數(shù)式編程語言的 bug 明顯比大多數(shù)其它語言要好很多。有隱式類型轉(zhuǎn)換的語言明顯產(chǎn)生的 bug 數(shù)量要比強(qiáng)類型的語言要少很多。函數(shù)式的靜態(tài)類型的語言要比函數(shù)式的動態(tài)類型語言的程序出 bug 的可能性要小很多。

每個(gè)程序員都應(yīng)該要讀的書

在 Stack Overflow 上有用戶問了一個(gè)問題,大意是想讓大家推薦一些每個(gè)程序員都應(yīng)該閱讀的最有影響力的圖書。雖然這個(gè)問題已經(jīng)被關(guān)閉了,但這真是一個(gè)非常熱門的話題。排在第一位的用戶給出了一大串圖書的列表,看上去著實(shí)嚇人,不過都是一些相當(dāng)經(jīng)典又相當(dāng)有影響力的書。

有大家耳熟能詳?shù)臅热?/p>

《代碼大全》 雖然這本書有點(diǎn)過時(shí)了,但是這絕對是一本經(jīng)典的書。

《程序員修練之道》 這本書也是相當(dāng)經(jīng)典,可以是你的指路明燈。

《計(jì)算機(jī)的構(gòu)造和解釋》 經(jīng)典中的經(jīng)典,必讀。

《算法導(dǎo)論》 美國的本科生教材,這本書應(yīng)該也是中國計(jì)算機(jī)學(xué)生的教材。

《設(shè)計(jì)模式》 這本書是面向?qū)ο笤O(shè)計(jì)的經(jīng)典書籍。

《重構(gòu)》 代碼壞味道和相應(yīng)代碼的最佳實(shí)踐。

《人月神話》 這本書可能也有點(diǎn)過時(shí)了。但還是經(jīng)典書。

《代碼整潔之道》 細(xì)節(jié)之處的效率,完美和簡單。

(地址:https://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read)

程序員書單

永不過時(shí)的技能

什么是永不過時(shí)的技能呢?左耳朵耗子的答案非常具有參考性,也就是編程能力、架構(gòu)能力和工程能力。

編程能力,就是用代碼解決問題的能力。你編程能力越強(qiáng),就能解決越復(fù)雜的問題,細(xì)分之下,要有調(diào)試能力、算法、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)原理等基礎(chǔ)技能的支撐,你才能解決各種麻煩的問題。

架構(gòu)能力,就是掌控復(fù)雜系統(tǒng)的能力。當(dāng)一個(gè)系統(tǒng)足夠復(fù)雜時(shí),你會寫每一塊代碼、能解決每一個(gè)問題,不等于你能搞定整個(gè)系統(tǒng),這就需要架構(gòu)能力。架構(gòu)能力包含了一些意識,也包含認(rèn)識業(yè)務(wù)建立抽象模型,還有一些常見的模式等。

工程能力,其實(shí)核心就是成事的能力。你要知道,當(dāng)系統(tǒng)規(guī)模越來越大時(shí),光靠你一個(gè)人是沒辦法完成的。那如何保證幾個(gè)高手能夠互相配合好?如何保證項(xiàng)目里面水平最差的人不拖后腿?工程化建設(shè)往往會跨越多個(gè)業(yè)務(wù),又如何保證質(zhì)量和代碼風(fēng)格呢?

這三項(xiàng)能力不管對于前端還是后端開發(fā)來說,可以說都是從初級、中級走向高級必須要跨越的鴻溝,也是作為一名程序員永不過時(shí)的技能。

GitHub

V8引擎系列教程

V8 是 Google Chrome 瀏覽器和微軟 Edge 瀏覽器的 JavaScript 執(zhí)行引擎。本課程介紹如何成為 V8 的開發(fā)人員。注意這是硬核技術(shù)培訓(xùn),每次視頻請預(yù)留10個(gè)小時(shí)的上機(jī)編程練習(xí)時(shí)間。

Github地址:github.com/plctlab/v8-internals

vue移動端組件庫

一個(gè)開箱即用vue移動端組件庫,基于 Vue、uniApp、 ColorUi、uView 的web移動端解決方案,包含地圖、電子簽名、證照識別等。

自定義TabBar與頂部、地圖軌跡回放、電子簽名、圖片編輯器、自定義相機(jī)/鍵盤、拍照圖片水印、在線答題、證件識別、周邊定位查詢、文檔預(yù)覽、各種圖表、行政區(qū)域、海報(bào)生成器、視頻播放、主題切換、時(shí)間軸、瀑布流、排行榜、課程表、漸變動畫、加載動畫、請求封裝等~ 該項(xiàng)目使用最新的前端技術(shù)棧,它可以幫助你快速搭建移動端項(xiàng)目。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容