美團五大最受歡迎的開源項目!
小程序開發框架
mpvue
是一個使用 Vue.js 開發小程序的前端框架,目前支持 微信小程序
、百度智能小程序
,頭條小程序
和 支付寶小程序
。框架基於 Vue.js
,修改了的運行時框架 runtime 和代碼編譯器 compiler 實現,使其可運行在小程序環境中,從而爲小程序開發引入了 Vue.js
開發體驗。
主要特性
使用 mpvue
開發小程序,你將在小程序技術體系的基礎上獲取到這樣一些能力:
-
徹底的組件化開發能力:提高代碼複用性
-
完整的
Vue.js
開發體驗 -
方便的
Vuex
數據管理方案:方便構建複雜應用 -
快捷的
webpack
構建機制:自定義構建策略、開發階段 hotReload -
支持使用 npm 外部依賴
-
使用
Vue.js
命令行工具 vue-cli 快速初始化項目 -
H5 代碼轉換編譯成小程序目標代碼的能力
項目地址
開源地址: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")
}
配置項具體解釋:
-
apkOutputFolder:指定渠道包的輸出路徑, 默認值爲
new File("${project.buildDir}/outputs/apk")
-
apkFileNameFormat:定製渠道包的 APK 的文件名稱, 默認值爲
'${appName}-${buildType}-${channel}.apk'
可使用以下變量:projectName - 項目名字 appName - App模塊名字 packageName - applicationId (App包名packageName) buildType - buildType (release/debug等) channel - channel名稱 (對應渠道打包中的渠道名字) versionName - versionName (顯示用的版本號) versionCode - versionCode (內部版本號) buildTime - buildTime (編譯構建日期時間) fileSHA1 - fileSHA1 (最終APK文件的SHA1哈希值) flavorName - 編譯構建 productFlavors 名
-
channelFile:包含渠道配置信息的文件路徑。具體內容格式詳見:渠道配置文件示例,支持使用 #號添加註釋。
項目地址
開源地址: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 中
項目地址
開源地址:https://github.com/Meituan-Dianping/Leaf
新一代熱更新系統
Robust 是新一代熱更新系統,無差別兼容 Android2.3-10 版本;無需重啓補丁實時生效,快速修復線上問題,補丁修補成功率高達 99.9%。
使用方法
-
在 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'
-
在整個項目的 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' } }
-
在項目的 src 同級目錄下配置 robust.xml 文件,具體項請參考 DEMOapp/robust.xml
優勢
-
支持 Android2.3-10 版本
-
高兼容性、高穩定性,修復成功率高達 99.9%
-
補丁實時生效,不需要重新啓動
-
支持方法級別的修復,包括靜態方法
-
支持增加方法和類
-
支持 ProGuard 的混淆、內聯、優化等操作
項目地址
開源地址:https://github.com/Meituan-Dianping/Robust
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/sPDrmWFABhuIHt1SgW7b6Q