国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

造一個Badge Service(徽章)的輪子

2019-11-17 02:25:15
字體:
供稿:網(wǎng)友

造一個Badge Service(徽章)的輪子

什么是Badge Service

細(xì)心的讀者朋友一定在很多Github的Repo,npm的package頁面看到過諸如DependenceDevDependence的徽章。這些徽章是干什么用的?

大家看到上文中我引用的Badge的左側(cè),是DownloadsBuildDependency之類的,不難猜出,這些Badge是用于一些信息的統(tǒng)計,然后以圖片的形式展示出來。比如我的一個小項目Delta是用js寫的,我使用了Travis CI來進(jìn)行持續(xù)的編譯和測試。每次我checkin了新的代碼,Travis CI就會對最新的代碼進(jìn)行build,然后把build的結(jié)果,畫成一張矢量圖,放在https://travis-ci.org/rebornix/delta.svg下。于是同學(xué)們就能及時地從我的項目主頁看到該項目的最近build情況,如果掛了,就可以肆意地爆我。

其實這就是個把numbers變成圖片的小玩意。

Shield Badge

為了讓.NET世界的朋友也和前端朋友們一樣酷,我們決定在Visual Studio Gallery中也提供這樣的服務(wù)。很快我寫了一個版本,用來生成PNG。效果還不錯,但是PNG唯一的缺點就是無法scale,如果能生成矢量圖會更好。由于.NET在繪制矢量圖上天生殘疾,我嘗試著找找有沒有現(xiàn)成的方案。于是我發(fā)現(xiàn)了Sheild.io.

Shield提供了一套繪制badge的方案,并且開源了nodejs、php、go等語言的實現(xiàn)方式,甚至他們提供了一個服務(wù)Shield.io方便大家使用。這幾乎是完美的。

那為啥我要造輪子

原因也挺簡單的,shield并不可能像Azure,AWS那樣提供SLA(我們也不該要求他們提供)。我們要盡可能地為我們的網(wǎng)站減少這樣的external dependency。既然他們開源了,我干脆就寫了一個.NET版本,通過Nuget管理Assembly,然后把這個服務(wù)run在我們自己的機(jī)器上。我給它取了個很俗的名字,叫DotBadge,大家可以前去Github圍觀。

如何使用

大家可以通過nuget下載dll來引用,另外為了大家更好地玩耍已經(jīng)體驗,我寫了個小小的命令行工具。

命令行工具

下載

打開命令行,到DotBadge的目錄下,執(zhí)行DotBadge.exe --help.

例子

DotBadge.exe -sb "Downloads" -st "1000" -c "Green" -sl 0

demo1

DotBadge.exe -sb "Build" -st "fail" -c "Red" -sl 0 

demo2

DotBadge.exe -sbhttps://github.com/rebornix/DotBadge/edit/master/Readme.md# "Star" -st "234" -c "#ddf" -sl 1 

demo3

如何放到你自己的項目里面

在Nuget的 Package Manager Console里面運(yùn)行

PM> Install-Package DotBadge

或者使用Nuget的UI tool搜索下載。

例子

using DotBadge;using System.IO;namespace Badge{    class PRogram    {        static void Main(string[] args)        {            var bp = new BadgePainter();            File.WriteAllText(@"C:/Users/peng/Desktop/nuget.svg", bp.DrawSVG("Badge", ".Net", ColorScheme.Red, Style.Flat));        }    }}

造輪子充滿樂趣

Yeah

Report Bug


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 建湖县| 四会市| 云和县| 大荔县| 淮滨县| 牟定县| 博湖县| 新绛县| 米易县| 临夏县| 远安县| 华宁县| 竹山县| 林口县| 苍山县| 尼勒克县| 乐都县| 聂荣县| 濮阳县| 奈曼旗| 措美县| 泰顺县| 深水埗区| 永城市| 靖西县| 聂拉木县| 荃湾区| 南木林县| 和平县| 荥阳市| 沅江市| 平远县| 吉林市| 永年县| 黄龙县| 扬州市| 蛟河市| 文成县| 五河县| 扬州市| 玉屏|