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