美團五大最受歡迎的開源項目!

小程序開發框架

mpvue 是一個使用 Vue.js 開發小程序的前端框架,目前支持 微信小程序百度智能小程序頭條小程序支付寶小程序。框架基於 Vue.js,修改了的運行時框架 runtime 和代碼編譯器 compiler 實現,使其可運行在小程序環境中,從而爲小程序開發引入了 Vue.js 開發體驗。

主要特性

使用 mpvue 開發小程序,你將在小程序技術體系的基礎上獲取到這樣一些能力:

項目地址

開源地址:https://github.com/Meituan-Dianping/mpvue

新一代渠道包打包神器

Walle(瓦力):Android Signature V2 Scheme 簽名下的新一代渠道包打包神器

瓦力通過在 Apk 中的APK Signature Block區塊添加自定義的渠道信息來生成渠道包,從而提高了渠道包生成效率,可以作爲單機工具來使用,也可以部署在 HTTP 服務器上來實時處理渠道包 Apk 的升級網絡請求。

配置 build.gradle

在位於項目的根目錄 build.gradle 文件中添加 Walle Gradle 插件的依賴, 如下:

buildscript {
    dependencies {
        classpath 'com.meituan.android.walle:plugin:1.1.7'
    }
}

並在當前 App 的 build.gradle 文件中 apply 這個插件,並添加上用於讀取渠道號的 AAR

apply plugin: 'walle'

dependencies {
    compile 'com.meituan.android.walle:library:1.1.7'
}

配置插件

walle {
    // 指定渠道包的輸出路徑
    apkOutputFolder = new File("${project.buildDir}/outputs/channels");
    // 定製渠道包的APK的文件名稱
    apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk';
    // 渠道配置文件
    channelFile = new File("${project.getProjectDir()}/channel")
}

配置項具體解釋:

項目地址

開源地址:https://github.com/Meituan-Dianping/walle

SQL 索引優化建議

SQLAdvisor 是由美團點評公司技術工程部 DBA 團隊(北京)開發維護的一個分析 SQL 給出索引優化建議的工具。它基於 MySQL 原生態詞法解析,結合分析 SQL 中的 where 條件、聚合條件、多表 Join 關係 給出索引優化建議。目前 SQLAdvisor 在美團點評內部廣泛應用,公司內部對 SQLAdvisor 的開發全面轉到 github 上,開源和內部使用保持一致。

主要功能:輸出 SQL 索引優化建議

項目地址

開源地址:https://github.com/Meituan-Dianping/SQLAdvisor

一套分佈式 ID 生成服務

Leaf 最早期需求是各個業務線的訂單 ID 生成需求。在美團早期,有的業務直接通過 DB 自增的方式生成 ID,有的業務通過 redis 緩存來生成 ID,也有的業務直接用 UUID 這種方式來生成 ID。以上的方式各自有各自的問題,因此我們決定實現一套分佈式 ID 生成服務來滿足需求。

目前 Leaf 覆蓋了美團點評公司內部金融、餐飲、外賣、酒店旅遊、貓眼電影等衆多業務線。在 4C8G VM 基礎上,通過公司 RPC 方式調用,QPS 壓測結果近 5w/s,TP999 1ms。

配置介紹

Leaf 提供兩種生成的 ID 的方式(號段模式和 snowflake 模式),你可以同時開啓兩種方式,也可以指定開啓某種方式(默認兩種方式爲關閉狀態)。

Leaf Server 的配置都在 leaf-server/src/main/resources/leaf.properties 中

Y56rOb

項目地址

開源地址:https://github.com/Meituan-Dianping/Leaf

新一代熱更新系統

Robust 是新一代熱更新系統,無差別兼容 Android2.3-10 版本;無需重啓補丁實時生效,快速修復線上問題,補丁修補成功率高達 99.9%。

使用方法

  1. 在 App 的 build.gradle,加入如下依賴

    apply plugin: 'com.android.application'
    //製作補丁時將這個打開,auto-patch-plugin緊跟着com.android.application
    //apply plugin: 'auto-patch-plugin'
    apply plugin: 'robust'
        
    compile 'com.meituan.robust:robust:0.4.99'
  2. 在整個項目的 build.gradle 加入 classpath

     buildscript {
        repositories {
            jcenter()
        }
        dependencies {
             classpath 'com.meituan.robust:gradle-plugin:0.4.99'
             classpath 'com.meituan.robust:auto-patch-plugin:0.4.99'
       }
    }
  3. 在項目的 src 同級目錄下配置 robust.xml 文件,具體項請參考 DEMOapp/robust.xml

優勢

項目地址

開源地址:https://github.com/Meituan-Dianping/Robust

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/sPDrmWFABhuIHt1SgW7b6Q