美團 5 大最受歡迎的開源項目,牛逼呀!
小程序開發(fā)框架
mpvue 是一個使用 Vue.js 開發(fā)小程序的前端框架,目前支持 微信小程序、百度智能小程序,頭條小程序 和 支付寶小程序??蚣芑?Vue.js,修改了的運行時框架 runtime 和代碼編譯器 compiler 實現(xiàn),使其可運行在小程序環(huán)境中,從而為小程序開發(fā)引入了 Vue.js 開發(fā)體驗。
主要特性
使用 mpvue 開發(fā)小程序,你將在小程序技術(shù)體系的基礎(chǔ)上獲取到這樣一些能力:
徹底的組件化開發(fā)能力:提高代碼復用性 完整的 Vue.js開發(fā)體驗方便的 Vuex數(shù)據(jù)管理方案:方便構(gòu)建復雜應用快捷的 webpack構(gòu)建機制:自定義構(gòu)建策略、開發(fā)階段 hotReload支持使用 npm 外部依賴 使用 Vue.js命令行工具 vue-cli 快速初始化項目H5 代碼轉(zhuǎn)換編譯成小程序目標代碼的能力
項目地址
開源地址:https://github.com/Meituan-Dianping/mpvue
新一代渠道包打包神器
Walle(瓦力):Android Signature V2 Scheme簽名下的新一代渠道包打包神器
瓦力通過在Apk中的APK Signature Block區(qū)塊添加自定義的渠道信息來生成渠道包,從而提高了渠道包生成效率,可以作為單機工具來使用,也可以部署在HTTP服務器上來實時處理渠道包Apk的升級網(wǎng)絡請求。
配置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 (內(nèi)部版本號)
buildTime - buildTime (編譯構(gòu)建日期時間)
fileSHA1 - fileSHA1 (最終APK文件的SHA1哈希值)
flavorName - 編譯構(gòu)建 productFlavors 名channelFile:包含渠道配置信息的文件路徑。具體內(nèi)容格式詳見:渠道配置文件示例,支持使用#號添加注釋。
項目地址
開源地址:https://github.com/Meituan-Dianping/walle
SQL索引優(yōu)化建議
SQLAdvisor是由美團點評公司技術(shù)工程部DBA團隊(北京)開發(fā)維護的一個分析SQL給出索引優(yōu)化建議的工具。它基于MySQL原生態(tài)詞法解析,結(jié)合分析SQL中的where條件、聚合條件、多表Join關(guān)系 給出索引優(yōu)化建議。目前SQLAdvisor在美團點評內(nèi)部廣泛應用,公司內(nèi)部對SQLAdvisor的開發(fā)全面轉(zhuǎn)到github上,開源和內(nèi)部使用保持一致。
主要功能:輸出SQL索引優(yōu)化建議
項目地址
開源地址:https://github.com/Meituan-Dianping/SQLAdvisor
一套分布式ID生成服務
Leaf 最早期需求是各個業(yè)務線的訂單ID生成需求。在美團早期,有的業(yè)務直接通過DB自增的方式生成ID,有的業(yè)務通過redis緩存來生成ID,也有的業(yè)務直接用UUID這種方式來生成ID。以上的方式各自有各自的問題,因此我們決定實現(xiàn)一套分布式ID生成服務來滿足需求。
目前Leaf覆蓋了美團點評公司內(nèi)部金融、餐飲、外賣、酒店旅游、貓眼電影等眾多業(yè)務線。在4C8G VM基礎(chǔ)上,通過公司RPC方式調(diào)用,QPS壓測結(jié)果近5w/s,TP999 1ms。
配置介紹
Leaf 提供兩種生成的ID的方式(號段模式和snowflake模式),你可以同時開啟兩種方式,也可以指定開啟某種方式(默認兩種方式為關(guān)閉狀態(tài))。
Leaf Server的配置都在leaf-server/src/main/resources/leaf.properties中
| 配置項 | 含義 | 默認值 |
|---|---|---|
| leaf.name | leaf 服務名 | |
| leaf.segment.enable | 是否開啟號段模式 | false |
| leaf.jdbc.url | mysql 庫地址 | |
| leaf.jdbc.username | mysql 用戶名 | |
| leaf.jdbc.password | mysql 密碼 | |
| leaf.snowflake.enable | 是否開啟snowflake模式 | false |
| leaf.snowflake.zk.address | snowflake模式下的zk地址 | |
| leaf.snowflake.port | snowflake模式下的服務注冊端口 |
項目地址
開源地址:https://github.com/Meituan-Dianping/Leaf
新一代熱更新系統(tǒng)
Robust是新一代熱更新系統(tǒng),無差別兼容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
優(yōu)勢
支持Android2.3-10版本 高兼容性、高穩(wěn)定性,修復成功率高達99.9% 補丁實時生效,不需要重新啟動 支持方法級別的修復,包括靜態(tài)方法 支持增加方法和類 支持ProGuard的混淆、內(nèi)聯(lián)、優(yōu)化等操作
項目地址
開源地址:https://github.com/Meituan-Dianping/Robust
來源:blog.csdn.net/MeituanTech/article/details/79523525
