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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python项目可以有多大?最多可以有多少行代码?

發(fā)布時(shí)間:2023/12/4 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python项目可以有多大?最多可以有多少行代码? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

全世界有3.14 %?的人已經(jīng)關(guān)注了

數(shù)據(jù)與算法之美


導(dǎo)讀:總是看到有人說(shuō),動(dòng)態(tài)一時(shí)爽,重構(gòu)火葬場(chǎng)。然而這世界上有的是著名的開(kāi)源項(xiàng)目, 也有像 Github、Instagram 這樣流量巨大的知名網(wǎng)站是基于動(dòng)態(tài)語(yǔ)言開(kāi)發(fā)的,經(jīng)過(guò)了這么多年重構(gòu),也未聽(tīng)說(shuō)哪個(gè)作者進(jìn)了火葬場(chǎng)的,不明白這些人是真的不知道還是裝作看不見(jiàn)呢?


不過(guò)他們說(shuō)動(dòng)態(tài)語(yǔ)言大到一定程度就無(wú)法維護(hù),雖然這話也同樣不值一駁,不過(guò)也提醒了我,我也很好奇用動(dòng)態(tài)語(yǔ)言開(kāi)發(fā)的項(xiàng)目規(guī)模能大到什么程度。




從我知道的信息看,用動(dòng)態(tài)語(yǔ)言開(kāi)發(fā)的最大規(guī)模的項(xiàng)目可能要算是?OpenStack(https://www.openstack.org/)據(jù)說(shuō)代碼總量已經(jīng)達(dá)到數(shù)百萬(wàn)行,并且還在持續(xù)增加中。這當(dāng)然是一個(gè)說(shuō)明動(dòng)態(tài)語(yǔ)言能力的好例子。不過(guò)像這樣巨大的項(xiàng)目,要分析起來(lái)也并不容易(好吧,真正的原因是我懶得下載那么龐大的代碼庫(kù))。


我選擇了 Python 社區(qū)中比較知名的一些項(xiàng)目來(lái)分析,主要是來(lái)自 Github ,也有個(gè)別來(lái)自其他倉(cāng)庫(kù)。這個(gè)選擇可能包含了一定的主觀因素在內(nèi),不過(guò)我相信大多數(shù)項(xiàng)目還是非常有代表性的。


計(jì)算代碼數(shù)量的工具是?cloc(https://github.com/AlDanial/cloc)。所有項(xiàng)目均選擇截止到 2018 年 1 月 3 日的主干代碼,統(tǒng)計(jì)中僅包含 Python 文件,排除了其他文件類型。值得說(shuō)明的一點(diǎn)是, 通過(guò) Ubuntu APT 默認(rèn)安裝的 cloc 版本 1.60 在統(tǒng)計(jì)部分項(xiàng)目的時(shí)候存在問(wèn)題,該問(wèn)題在最新的版本中已經(jīng)得到解決,因此本文中所有統(tǒng)計(jì)均使用從官網(wǎng)下載的 cloc v1.72。



上表已經(jīng)按代碼行數(shù)排了序。有意思的一點(diǎn)是,?代碼規(guī)模最大的前4名中除了 CPython 之外其他三個(gè)全部是運(yùn)維性質(zhì)的項(xiàng)目,本來(lái)我猜測(cè)代碼應(yīng)該比較多的項(xiàng)目比如 Odoo 排名反而很靠后。我對(duì)運(yùn)維項(xiàng)目了解有限,不太清楚為什么這些項(xiàng)目的代碼規(guī)模會(huì)名列前茅,或許是因?yàn)橐С值膬?nèi)容比較多而雜?



本次統(tǒng)計(jì)中純 Python 代碼量最大的 Sentry 幾乎達(dá)到了 70W 行,這是相當(dāng)有規(guī)模的項(xiàng)目了。30W~50W 行代碼的項(xiàng)目有三個(gè),包括基礎(chǔ)項(xiàng)目 CPython 在內(nèi)。20W 和 10W 行代碼規(guī)模的分別有三個(gè),剩下 7 個(gè)則在 10W 行以內(nèi)。


看過(guò)這個(gè)列表你應(yīng)當(dāng)相信,動(dòng)態(tài)語(yǔ)言至少在幾十W行代碼的項(xiàng)目上是完全沒(méi)有問(wèn)題的。這也是絕大多數(shù)普通應(yīng)用的上限了,如果代碼真的達(dá)到數(shù)百萬(wàn)行規(guī)模的話,那么無(wú)論用什么語(yǔ)言,都勢(shì)必面臨著拆分項(xiàng)目的問(wèn)題。


上表將代碼量指標(biāo)按照代碼/空白/注釋進(jìn)行了分類,也在一定程度上反應(yīng)了項(xiàng)目的代碼風(fēng)格。Sentry 是本次統(tǒng)計(jì)中代碼量最多的項(xiàng)目,然而從表中可以看到,項(xiàng)目中的注釋和其他項(xiàng)目相比,少得有點(diǎn)不成比例,說(shuō)明 Sentry 的作者非常不注重注釋。


同學(xué)們一定發(fā)現(xiàn)了,我在列表中除了代碼行相關(guān)的指標(biāo)之外還增加了幾個(gè)其他內(nèi)容,這也是我個(gè)人比較感興趣的方面。



第一個(gè)指標(biāo)是每個(gè)文件的平均代碼行數(shù)。按照模塊化的觀點(diǎn),單個(gè)文件中堆砌太多內(nèi)容顯然是不合理的,這通常意味著耦合太多、難于理解和修改。然而到底多少算是合適,并沒(méi)有一個(gè)明確的標(biāo)準(zhǔn)。我希望通過(guò)這些項(xiàng)目的分析,了解一下開(kāi)源作者們?cè)趯?shí)踐中做出的選擇。


統(tǒng)計(jì)的結(jié)果分布比較平均,從 100~600行/文件的都存在,并不存在明顯的集中點(diǎn)。有趣的是,頭兩名(Pandas, NumPy)有著緊密的聯(lián)系,都是和數(shù)學(xué)統(tǒng)計(jì)相關(guān)的。這可能是因?yàn)閿?shù)學(xué)庫(kù)的特點(diǎn)比較純粹而單一,不像其他類庫(kù)那樣容易劃分。末尾的項(xiàng)目(Pillow, youtube-dl, Odoo, Scrapy)可以從側(cè)面印證這種猜想:它們都是面向特定領(lǐng)域的,所以更加容易模塊化。



第二個(gè)指標(biāo)是注釋和代碼的比例,這個(gè)問(wèn)題也有著類似的情況。注釋并非越詳盡越好,但總是需要一定量的注釋來(lái)解釋 Why 的問(wèn)題。注釋太少,說(shuō)明項(xiàng)目的作者沒(méi)有給后來(lái)的維護(hù)人員留下足夠的線索,可能會(huì)造成維護(hù)上的問(wèn)題。另一方面,我們考察的全部是開(kāi)源項(xiàng)目,沒(méi)有公司考核或者 KPI 的約束,所以我們可以放心的相信不會(huì)存在作者故意多寫注釋的問(wèn)題。


前面提到的 Sentry 毫無(wú)爭(zhēng)議的因?yàn)樽⑨屘倥诺搅俗詈?#xff0c;這未必說(shuō)明這個(gè)項(xiàng)目很差,但至少是一個(gè)信號(hào),說(shuō)明該項(xiàng)目在維護(hù)方面可能是存在問(wèn)題的。而對(duì)于那些作者愿意投入精力來(lái)寫注釋的項(xiàng)目(Ansible, NumPy, Fabric, Salt 等)足以反映作者在項(xiàng)目上投入了相當(dāng)大的心力,這是一個(gè)好的信號(hào),說(shuō)明這些項(xiàng)目是值得信賴的。


有一點(diǎn)是出乎我意料的,那就是作為所有項(xiàng)目之母的 CPython 排名比較靠后,按照道理這個(gè)基礎(chǔ)項(xiàng)目應(yīng)該有更多的注釋才對(duì)。不過(guò)再想一想又覺(jué)得可以理解,因?yàn)?CPython 有單獨(dú)發(fā)布的、非常詳盡的文檔,這是其他大多數(shù)項(xiàng)目都沒(méi)有的,那么代碼中的注釋少一些也是情有可原的。



最后一項(xiàng)統(tǒng)計(jì)是關(guān)于文件類型的。Python 項(xiàng)目中絕大多數(shù)應(yīng)該是 Python 代碼,這點(diǎn)沒(méi)有什么疑問(wèn),但同時(shí)我也想看看除了 Python 代碼之外,一個(gè)項(xiàng)目還包括哪些主要文件。C/HTML/Javascipt 的上榜是毫不意外的,但有一種文件我事先沒(méi)有想到,那就是 .PO(開(kāi)源項(xiàng)目常用的語(yǔ)言資源文件)。


對(duì)于 Django 和 Django-CMS 這兩個(gè)項(xiàng)目, PO 代碼數(shù)量甚至比 Python 代碼還要多。大概看了一下,Django 支持 90 種以上的語(yǔ)言,這也無(wú)怪乎語(yǔ)言文件的數(shù)量如此之多了。


這個(gè)結(jié)果也可以提醒我們,有些同學(xué)——不僅是程序員,也包括大多數(shù)經(jīng)驗(yàn)不足的老板、客戶、產(chǎn)品經(jīng)理等——會(huì)下意識(shí)的認(rèn)為程序開(kāi)發(fā)無(wú)非是寫代碼,對(duì)于代碼之外的其他工作,在估算的時(shí)候往往只拍腦袋式的定下一個(gè)極短的時(shí)間。但對(duì)于實(shí)際的項(xiàng)目來(lái)說(shuō),代碼僅僅是其中的一部分,“其他工作”有時(shí)候——應(yīng)該說(shuō)是經(jīng)?!獣?huì)占用你大部分的的時(shí)間和精力。這些工作往往并不有趣,但對(duì)于項(xiàng)目來(lái)說(shuō)又是必不可少的組成部分,希望同學(xué)們予以足夠的重視。


作者:YUHAO

轉(zhuǎn)自:Python愛(ài)好者

原文鏈接:

https://yuhao.space/blog/2018/1/how-large-python-projects-can-be/

版權(quán)歸原作者所有,轉(zhuǎn)載僅供學(xué)習(xí)使用,不用于任何商業(yè)用途,如有侵權(quán)請(qǐng)留言聯(lián)系刪除,感謝合作。

數(shù)據(jù)與算法之美

用數(shù)據(jù)解決不可能


長(zhǎng)按掃碼關(guān)注

總結(jié)

以上是生活随笔為你收集整理的Python项目可以有多大?最多可以有多少行代码?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产人妖ts重口系列网站观看 | 成人国产精品入口免费视频 | gay男互凵gay男同偷精 | 国产亚洲精品久久久久动 | 亚洲精品视频中文字幕 | 亚洲福利网址 | 久久久久久久久久久97 | 日本三级欧美三级 | 欧美性色黄大片手机版 | www.国产精品 | 捆绑裸体绳奴bdsm亚洲 | 91丨porny丨在线中文 | 成人91视频 | 少妇扒开粉嫩小泬视频 | 成人在线视屏 | 橹图极品美女无圣光 | 国产麻豆天美果冻无码视频 | 国产黄色大片免费看 | 国产久久精品 | 好吊色视频一区二区三区 | 国产香蕉精品视频 | 午夜视频在线看 | 欧美一级视频在线观看 | 日韩av福利 | 黄色资源在线播放 | 国产成人精品免费 | 国产免费又黄又爽又色毛 | 国产成人精品一区二区 | 少妇搡bbbb搡bbbb| 午夜爱爱毛片xxxx视频免费看 | 黄色大全免费观看 | 一区二区三区欧美视频 | 欧美日韩精品久久 | 福利在线观看 | 青青草免费在线观看 | 玉足调教丨vk24分钟 | 性色影院 | 日xxxx| 三男一女吃奶添下面 | 国产精品久久久久久亚洲影视 | 国产成人精品视频在线 | 狠狠爱夜夜爱 | 女人十八岁毛片 | 欧美粗暴jizz性欧美20 | 日韩极品视频在线观看 | 日本亚洲一区 | 麻豆视频在线免费看 | 亚洲欧美中文日韩在线 | av在线免 | 日日噜噜夜夜狠狠久久波多野 | a中文在线| 日韩黄视频 | 国产白丝精品91爽爽久久 | 美女视频免费在线观看 | 撸啊撸在线视频 | 天美麻花果冻视频大全英文版 | 蜜桃久久av一区 | 欧洲丰满少妇做爰 | 久久叉 | 国产av成人一区二区三区 | 国产一区二区在线播放 | 阿v视频在线免费观看 | 久久婷婷五月综合 | 青青草视频偷拍 | 成人h动漫精品一区二区下载 | 国产一区中文字幕 | 中文字幕av在线免费观看 | 亚洲无码精品在线播放 | 天天黄色片 | 91美女片黄在线观看 | 日韩精品一区二区av | 午夜美女视频 | 四虎1515hh.com| 东南亚毛片 | 亚洲春色av | 一级做a爱片 | 欧美日韩一区二区三区国产精品成人 | 国产精品乱码久久久久 | 一区二区高潮 | 黄色片视频播放 | 久久中文字幕一区二区 | 6080久久 | 精品一区二区三区无码视频 | 日本欧美一区二区三区 | 国产真人做爰视频免费 | 国产91免费视频 | 中文字幕无线码 | 免费男女乱淫真视频免费播放 | 国产色秀视频 | www.久久.com | 亚洲精品一级 | 国产高清视频一区 | 中文字幕天堂在线 | 中文字幕视频在线播放 | 不卡在线播放 | 中文字幕无码精品亚洲35 | 一区二区三区 中文字幕 | 中文字幕第18页 | 成人欧美一区二区三区黑人动态图 |