自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

寫代碼,如何變得更牛逼

新聞
現(xiàn)在很多優(yōu)秀的軟件庫都是開源的,這給了我們可以零距離向大牛學(xué)習(xí)的機(jī)會(huì),閱讀源代碼給我們帶來的好處也是非常多的。

 沒有哪個(gè)文壇巨匠天生下來就能寫出巨著來,他們都是通過閱讀大量作品并參考借鑒最后形成自己獨(dú)特的風(fēng)格,其實(shí)寫程序也是一樣。

[[395628]]

現(xiàn)在很多優(yōu)秀的軟件庫都是開源的,這給了我們可以零距離向大牛學(xué)習(xí)的機(jī)會(huì),閱讀源代碼給我們帶來的好處也是非常多的。

1、學(xué)習(xí)代碼風(fēng)格

優(yōu)秀的開源軟件都來自于經(jīng)驗(yàn)非常豐富的老司機(jī)程序員之手,往往他們寫的代碼更規(guī)范、無論是從可讀性還是性能上經(jīng)過仔細(xì)斟酌,不斷優(yōu)化結(jié)果。比如著名的HTTP請求庫Requests就是一份不錯(cuò)的源碼學(xué)習(xí)典范,因?yàn)槔锩嬗薪炭茣频? Pythonic 代碼。

2、理解作者思路

作者實(shí)現(xiàn)某個(gè)功能,通常是經(jīng)過多次重構(gòu)不斷改進(jìn)得以實(shí)現(xiàn)最優(yōu)的解決方案,那么我們可以思考作者為什么要這么做,比如Cpython里把小整數(shù)緩存到內(nèi)存中,提高系統(tǒng)性能,你不去看源代碼是不知道的,因?yàn)闀虾苌贂?huì)講到這些。再比如 Cpython中的垃圾算法為什么要使用別人都不用的引用計(jì)數(shù)法呢?因?yàn)闄?quán)衡利弊之后,引用計(jì)數(shù)是最簡單的一種垃圾收集算法,再配合其他算法也能達(dá)到很好的效果。

3、提升編程水平

毫無疑問,通過閱讀源代碼,對自身的成長是非常有幫助的,站在巨人的肩膀上,才看得比別人更遠(yuǎn)。閱讀優(yōu)秀的源代碼是提高編程水平的方式之一

閱讀源代碼的誤區(qū)

初學(xué)者閱讀源代碼容易陷入一種誤區(qū),認(rèn)為具備閱讀源代碼能力才牛逼,于是自己也扎進(jìn)代碼深淵,一開始欣喜若狂,后來開始迷失自我,有始無終,最后一無所獲,還打擊了自信心。

主要原因是,現(xiàn)在的項(xiàng)目動(dòng)不動(dòng)就是幾萬行的代碼,如果一行行的讀下去要不了幾分鐘就放棄了,其次,純粹的”讀”是沒用的,還需要有思考。那么如何正確地閱讀源代碼?

閱讀源代碼的一些技巧

高效閱讀源代碼,可以從以下幾個(gè)方面入手

1、讀文檔

任何一個(gè)優(yōu)秀的開源項(xiàng)目標(biāo)配有完善的文檔,RTFM(Read The Fucking Manual)是了解開源項(xiàng)目最好的方式之一,同時(shí)也為后面閱讀源代碼提供了基礎(chǔ)。

2、找程序入口

找到了文檔之后,就根據(jù)文檔找到程序的入口,從最簡單的實(shí)例下手

3、跑單元測試

要想知道API怎么使用,除了可以查看文檔之外,另外一個(gè)武器就是跑單元測試,單元測試對每一個(gè)方法都做了邊界測試,通過閱讀測試代碼也能知道怎么樣去使用這些方法。

4、找最早期版本

往往最開始的版本代碼是最簡潔的,讀起來要輕松很多

5、多搜索一下網(wǎng)絡(luò)上看看是否有前人做些相關(guān)的總結(jié)。這也是很好的參考。

 

責(zé)任編輯:華軒 來源: Python之禪
相關(guān)推薦

2021-07-19 08:24:36

阿里代碼程序員

2015-06-02 17:53:56

神豬

2021-05-18 16:27:50

編程代碼金融

2019-11-04 11:40:20

工具代碼開發(fā)

2018-09-29 15:46:01

Java代碼新特性

2017-05-23 08:50:16

巴菲特挑戰(zhàn)

2020-06-16 13:22:22

AI創(chuàng)新深度學(xué)習(xí)

2009-03-24 00:04:35

敏捷開發(fā)源代碼分析軟件質(zhì)量

2020-08-13 10:11:14

物聯(lián)網(wǎng)安全智能家居物聯(lián)網(wǎng)

2021-03-26 10:48:14

代碼語言提交

2019-06-26 15:41:26

AI云原生云遷移

2021-03-15 10:29:50

人工智能

2021-03-10 11:08:20

物聯(lián)網(wǎng)城市智能

2023-03-24 10:26:54

無人機(jī)人工智能智慧城市

2015-04-03 11:15:32

程序員如何寫簡歷寫簡歷技巧

2014-04-21 10:53:52

Linux 命令行終端下載文件

2023-03-15 16:02:27

2023-03-01 13:53:00

物聯(lián)網(wǎng)技術(shù)智能城市

2023-03-09 15:45:36

ES6編碼技巧數(shù)組

2011-04-02 15:12:35

MySQL數(shù)據(jù)庫安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號