中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

怎么做商城網(wǎng)站全國最好的廣告公司加盟

怎么做商城網(wǎng)站,全國最好的廣告公司加盟,山西省最新疫情最新消息,wordpress 域名綁定主題破解方法Cookiecutter 介紹 使用 Python 這種動(dòng)態(tài)語言進(jìn)行 web 開發(fā),團(tuán)隊(duì)中經(jīng)常會(huì)遇到的問題就是代碼的質(zhì)量比較難控制。Python 語言本身靈活性比較高,不加控制的情況下代碼質(zhì)量可能最后很難維護(hù)。而且代碼的各方面的標(biāo)準(zhǔn),比如提示的 lint&#xff0…

Cookiecutter 介紹

使用 Python 這種動(dòng)態(tài)語言進(jìn)行 web 開發(fā),團(tuán)隊(duì)中經(jīng)常會(huì)遇到的問題就是代碼的質(zhì)量比較難控制。Python 語言本身靈活性比較高,不加控制的情況下代碼質(zhì)量可能最后很難維護(hù)。而且代碼的各方面的標(biāo)準(zhǔn),比如提示的 lint,代碼格式化等等如果不加規(guī)范,不同開發(fā)者的協(xié)作也會(huì)比較困難。因此從公司角度來看,一個(gè)統(tǒng)一的代碼規(guī)范是很有必要的。

在 Python 的開發(fā)過程中,可以選擇公司希望遵循的 Python 開發(fā)相關(guān)的規(guī)范,那么如何更好地將這些規(guī)范組織起來呢?

一個(gè)比較好的方案就是 cookiecutter,cookiecutter 是一個(gè)用于構(gòu)建工程模板的 python 庫,利用 cookiecutter 可以構(gòu)建一個(gè)標(biāo)準(zhǔn)統(tǒng)一的起步 python 項(xiàng)目,同時(shí)在構(gòu)建中還具備一定的靈活性,根據(jù)自己需要選擇合適配置。下面就對(duì) cookiecutter 進(jìn)行簡要介紹:

Cookiecutter 簡單實(shí)踐

Cookiecutter 是一個(gè)跨平臺(tái)的 Python模板組織工具,可以極其簡單地生成一個(gè) Python 起步項(xiàng)目。

使用前需要先安裝 cookiecutter,各種安裝方式都是支持的,Mac 上可以通過 brew 或者 pip 安裝。

首先你需要尋找符合你要求項(xiàng)目模板,在 github 上通過 cookiecutter 進(jìn)行搜索即可找到大量的備選模板,我們這邊以 cookiecutter 官方維護(hù)的一個(gè)模板 cookiecutter-pypackage 為例進(jìn)行介紹,找到此模板對(duì)應(yīng)的地址 https://github.com/audreyfeldroy/cookiecutter-pypackage

之后直接執(zhí)行 cookiecutter https://github.com/audreyfeldroy/cookiecutter-pypackage 即可,在執(zhí)行中會(huì)有一些可供選擇的配置型,如果不確定可以使用默認(rèn)值,一路確認(rèn)下來,你需要的起步項(xiàng)目就完成了。

如果此模板不能完成滿足你的需要,你可以選擇在構(gòu)建完成后對(duì)工程進(jìn)行小幅修改,如果需要將此模板推廣給全公司使用,直接基于此模板構(gòu)建一個(gè)新的模板進(jìn)行修改,之后再重新生成工程即可。

Cookiecutter 模板

下面可以對(duì) cookiecutter 模板的組織結(jié)構(gòu)進(jìn)行簡單介紹:

cookiecutter-something/
├── {{ cookiecutter.project_name }}/  <--------- 項(xiàng)目模板,生成的工程就是這個(gè)目錄下內(nèi)容
│   └── ...
├── blah.txt                      <--------- 模板工程之外的文件
│
└── cookiecutter.json             <--------- 提示以及默認(rèn)值的配置文件,可變的變量都存儲(chǔ)在這個(gè)文件中

通過上面的模板可以生成項(xiàng)目模板目錄下的內(nèi)容,項(xiàng)目的變量名會(huì)被輸入的內(nèi)容替換。

另外 cookiecutter 還支持一些更高級(jí)的功能,比如前置或后置的檢查 Hooks,以及注入實(shí)時(shí)上下文等,可以根據(jù)自己需要進(jìn)行使用

一個(gè)合適的項(xiàng)目模板

對(duì)于公司而言,有一個(gè)標(biāo)準(zhǔn)的項(xiàng)目規(guī)范,可以幫助大家統(tǒng)一代碼風(fēng)格,提高整體的代碼質(zhì)量,我們參考了各家的標(biāo)準(zhǔn)化建議,最終提出了一個(gè)合適的代碼規(guī)范,主要包含下面的一些部分:

lint

lint 是用于檢測代碼,有助于團(tuán)隊(duì)規(guī)則的統(tǒng)一,同時(shí)借助 lint 可以規(guī)避一些常見的坑。我們最終選擇的 lint 是:

  • pylint pylint 基本上是 python 的 lint 中最常見的 lint 了,限制也比較嚴(yán)格,我們根據(jù)需要關(guān)閉了 "missing-docstring", "logging-fstring-interpolation"
  • mypy 此 lint 是 python 中常見的類型檢查 lint,通過此 lint 要求方法指定參數(shù)的類型
代碼格式化

代碼格式化是用于保證代碼風(fēng)格的統(tǒng)一,代碼的格式化也存在多種選擇,我們最終選擇了:

  • black 這個(gè)格式化工具的有名之處在于可配置項(xiàng)比較少,基本上通過去除靈活性來換取高度統(tǒng)一性的代碼風(fēng)格,但是 black 竟然受到了大量 python 程序員的喜愛,可能是動(dòng)態(tài)語言的靈活性讓大家更想要某種確定的規(guī)范吧
  • isort 這是用來調(diào)整 python 包的 import 順序的,按照系統(tǒng)庫,第三方庫,本地庫的順序進(jìn)行分開排布
單元測試

單元測試用于保證代碼的正確性,我們選擇了評(píng)價(jià)相對(duì)更好的:

  • pytest 相對(duì)于默認(rèn)的 unittest, pytest 顯然更受歡迎,pytest 使用更加便利,同時(shí)不僅能支持單元測試,還能支持面向應(yīng)用的測試
  • coverage 我們使用 coverage 用于計(jì)算代碼單元測試覆蓋率,方便保證代碼的充分測試
依賴管理
  • requirements 在 python 項(xiàng)目中,比較常見的是通過 requirements.txt 進(jìn)行管理,但是默認(rèn)的包管理不支持管理直接依賴和間接依賴,因此需要通過 pip-compile 進(jìn)行區(qū)分,而且開發(fā)相關(guān)的依賴也需要另外通過 requirements-dev.txt,這種管理方式比較不友好,但是考慮到大部分 python 程序員都熟悉這種情況,也可以提供了這種方式
  • poetry 這是一種更新的包管理方式,可以比較好地組織好依賴關(guān)系,而且已經(jīng)被納入 PEP 518 標(biāo)準(zhǔn)了,建議優(yōu)先采用此方式管理包。同時(shí) poetry 也包含了虛擬環(huán)境的管理,使用更加便利

按照上面的規(guī)范最終構(gòu)建的 cookiecutter 模板可以參考 github

更多模板

cookiecutter 的使用過程中,上手還是比較簡單的,cookiecutter 無非是一個(gè)動(dòng)態(tài)替換的機(jī)制,沒有什么特殊的復(fù)雜性。從我的使用的感受來看,cookiecutter 的一個(gè)最大價(jià)值在于有大量的開發(fā)者已經(jīng)提供了一些現(xiàn)成的工程模板,而且我們可以相對(duì)簡單地通過已有的工程模板生成新的工程模板,并在團(tuán)隊(duì)內(nèi)部統(tǒng)一規(guī)范。

可以參考 cookiecutter 提供的大量的代碼模板根據(jù)自己的需要選擇一個(gè)基礎(chǔ)模板,然后進(jìn)行必要的修改即可得到所需的上手代碼模板。進(jìn)而生成所需的項(xiàng)目工程。比如對(duì)于上面提供的項(xiàng)目模板,如果需要增加相關(guān)文檔的支持,可以引入 Sphinx ,之后重新生成項(xiàng)目模板即可。

總結(jié)

從過往的經(jīng)驗(yàn)來看,有兩點(diǎn)總結(jié):

  • 項(xiàng)目規(guī)范化很有必要,統(tǒng)一的規(guī)范省心省力
  • 不要重復(fù)造輪子,盡量使用成熟方案

使用 cookiecutter 就可以輕松實(shí)現(xiàn)

http://www.risenshineclean.com/news/6712.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)公司行業(yè)9 1短視頻安裝
  • 網(wǎng)站ui是平面設(shè)計(jì)嗎信息流推廣渠道
  • cms網(wǎng)站系統(tǒng)天津seo培訓(xùn)
  • 做網(wǎng)站如何避免商標(biāo)侵權(quán)百度最怕哪個(gè)投訴電話
  • 網(wǎng)站建設(shè)濟(jì)南有做的嗎外包seo公司
  • 天津網(wǎng)站建設(shè)網(wǎng)絡(luò)公司批量關(guān)鍵詞排名查詢工具
  • 網(wǎng)站怎么做彈幕播放器最好的免費(fèi)建站網(wǎng)站
  • 好的網(wǎng)站建設(shè)案例河北網(wǎng)站建設(shè)制作
  • 專門做面包和蛋糕的網(wǎng)站建立一個(gè)網(wǎng)站需要多少錢?
  • 可以做mc圖片的網(wǎng)站外鏈推廣
  • 深圳市網(wǎng)站建設(shè)公網(wǎng)絡(luò)搭建是干什么的
  • 設(shè)計(jì)電子商務(wù)網(wǎng)站主頁鄭州seo教程
  • 江西建筑培訓(xùn)網(wǎng)seo就業(yè)哪家好
  • 做公司網(wǎng)站需要注意什么護(hù)膚品營銷策劃方案
  • 印刷網(wǎng)站建設(shè)建立網(wǎng)站怎么搞
  • 杭州品牌網(wǎng)站制作培訓(xùn)班
  • 寵物店做網(wǎng)站的論文深圳網(wǎng)絡(luò)推廣
  • 專業(yè)網(wǎng)站推廣引流外鏈圖片
  • 英文網(wǎng)站模板改成中文成都百度快照優(yōu)化排名
  • 免費(fèi)域名申請(qǐng)哪個(gè)網(wǎng)站好百度營銷客戶端
  • 自己創(chuàng)業(yè)做原公司一樣的網(wǎng)站武漢網(wǎng)站排名提升
  • 找設(shè)計(jì)公司上哪個(gè)網(wǎng)站網(wǎng)絡(luò)營銷課程主要講什么內(nèi)容
  • 做電商要有網(wǎng)站嗎seo關(guān)鍵詞排名優(yōu)化報(bào)價(jià)
  • 做網(wǎng)站找哪家怎么創(chuàng)建網(wǎng)站?
  • 動(dòng)態(tài)網(wǎng)站做優(yōu)化搭建網(wǎng)站需要什么技術(shù)
  • 建設(shè)銀行上海分行網(wǎng)站網(wǎng)站seo快速排名優(yōu)化的軟件
  • 儀征網(wǎng)站建設(shè)友鏈查詢站長工具
  • 手機(jī)開網(wǎng)店用什么軟件seo優(yōu)化排名
  • 婚紗攝影的網(wǎng)站怎么做推廣網(wǎng)站哪個(gè)好
  • 做網(wǎng)站怎樣辦營業(yè)執(zhí)照搜狗網(wǎng)頁版入口