你是否清楚的瞭解本身的項目有多少個文件夾、多少個文件、多少行代碼、多少個函數、多少個字符數?
你是否在項目中引入過代碼質量檢測相關的工具?
你是否在不一樣項目的切換中飽受indent=2
仍是indent=4
的困擾?
你是否懷疑過本身的代碼存在性能問題和內存泄露?
趕快和我一塊兒來學習如何搭建一套持續集成的代碼質量檢測平臺,爲平常項目開發「保駕護航」吧~node
merge request
都須要相關同事完成code review以後才能夠 merge 代碼,這更是增長大量的人力成本。對於在平常開發中遇到的這些問題,咱們指望能有這樣一套系統,它可以幫助咱們解決如下問題:linux
項目主要經過提交 Merge Request 觸發 git hook,該請求發送merge相關數據至中間層 Node Server,Node 層將請求透傳到 Jenkins Server, Jenkins Server 啓動Job並執行相關檢測腳本,任務完成callback
通知 Node Server 和 git 倉庫完成相關‘解鎖’步驟。git
而在該項目中,咱們使用的技術棧包括:web
這篇文章定位是項目總體介紹,故而不涉及具體實現細節,後續咱們會有系列文章和你們一塊兒分享功能實現中遇到的問題。npm
import os
import sys
gitRemote = 'ssh://git@***********.com/litmus.git'
# 拉取代碼倉庫, 切換cwd爲腳本目錄
if os.path.isdir('litmus'):
os.chdir('litmus')
os.system('git fetch origin && git reset --hard origin/master')
else:
os.system('git clone %s --depth=1' % gitRemote)
os.chdir('litmus')
# 安裝依賴,執行入口文件
os.system('npm install')
sys.path.append('entry')
import web
result = web.main(None, None)複製代碼
咱們的腳本執行結果都是以文件的形式產出,而這套文件產出結果將會成爲咱們提供web頁面展現的原始數據輸入。編程
2016 年 10 月 25 日,zeit.co 背後的團隊對外發布了 Next.js,一個 React 的服務端渲染應用框架。幾小時後,與 Next.js 殊途同歸,一個基於 Vue.js 的服務端渲染應用框架應運而生,咱們稱之爲:Nuxt.js。bash
本文主要講解「代碼質量檢測平臺」項目從需求收集、提取、架構設計以及最終的實現。
這套架構體系對咱們的開發者提出了較高的要求,在業務項目接入中,咱們遇到了不少困難:架構
想要更多的瞭解咱們是如何解決這些難題的, 請點擊下方「❤️」,並關注咱們吧。
咱們會有系列文章來和你們一塊兒分享咱們與「代碼質量檢測平臺」的故事。app
做者簡介: J文,15年加入「美團點評」,目前就任於 點評點餐終端團隊,咱們期待您與咱們一塊兒打造將來的「智能餐廳」。框架