自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大前端趨勢下移動端程序員要涼?這些進(jìn)階技能助你逆襲

新聞 Android
本文與你分享大前端的發(fā)展趨勢、Android 開發(fā)進(jìn)階所需技能,以及移動端程序員的職業(yè)發(fā)展路徑。

在市場緊縮以及大前端的趨勢下,移動端程序員如何進(jìn)行職業(yè)規(guī)劃,保持競爭力?本文與你分享大前端的發(fā)展趨勢、Android 開發(fā)進(jìn)階所需技能,以及移動端程序員的職業(yè)發(fā)展路徑。

作者簡介:

孔濤,目前在愛奇藝技術(shù)產(chǎn)品中心負(fù)責(zé)金融產(chǎn)品的移動端研發(fā)。具備 7 年 Android 開發(fā)經(jīng)驗(yàn),曾在新浪、百度等大型互聯(lián)網(wǎng)公司擔(dān)任 Android 工程師,負(fù)責(zé)新聞、地圖類等 App 研發(fā)工作。熟悉 Android 系統(tǒng)原理及大型 App 的模塊化、組件化、插件化架構(gòu)設(shè)計(jì)方案。

 移動互聯(lián)網(wǎng)時代到來之后,移動 App 成為新主流,需要開發(fā) Android、iOS 端,曾經(jīng)還有 Windows Phone 等不同版本,早期以 PhoneGap 等為代表的 Hybrid 形式和內(nèi)嵌在 App 中的 WebView 開發(fā)為主,非常浪費(fèi)人力物力。

從 2015 年 React Native 開始,Weex、Flutter、Kotlin-Native 等跨平臺框架相繼出現(xiàn),加上微信小程序以及手機(jī)廠商聯(lián)合推動的快應(yīng)用,前端技術(shù)在移動端有了越來越多的使用場景。因此,越來越多的公司也在組織架構(gòu)上做出相應(yīng)調(diào)整來適應(yīng)這種大前端趨勢。以前的團(tuán)隊(duì)構(gòu)成以移動端程序員為主,如今除了 Android / iOS 開發(fā)之外,還有 RN / H5 / 小程序等開發(fā)人員。

那么,大前端趨勢是否意味著傳統(tǒng) Native Android 程序員需要轉(zhuǎn)型?

如今移動端主流操作系統(tǒng)只剩下 Android 和 iOS。以前者為例,目前 Android 已被廣泛應(yīng)用于手機(jī)、平板、汽車網(wǎng)絡(luò)、物聯(lián)網(wǎng)、智能電視等領(lǐng)域,是名副其實(shí)的終端霸主,另外 Android 端在國內(nèi)手機(jī)市場占有 80% 以上的市場份額,短期內(nèi)被其他 OS 所取代的可能性非常低,所以 native 程序員還是有非常大的市場。

現(xiàn)在的技術(shù)分工越來越細(xì),這也意味著大部分企業(yè)需要專精的人才,***是精一門、通多門。去大公司面試 Android,如果你的 Android 技術(shù)不深,剩下的前端、后端、python 技術(shù),面試官也沒興趣了解了。所以并不是會得越多越好,一定要做好減法,先專精一門,再去學(xué)別的技術(shù)。

在大前端時代下,一個合格的開發(fā)者應(yīng)該是 JS + iOS / Android??梢允且粋€熟練的前端,學(xué)習(xí)一點(diǎn) native,或者是 native 程序員會 JS。如果公司是以 App 為主且注重用戶交互體驗(yàn),一個合理的路線是 native app 開發(fā)者堅(jiān)持把 native 部分做精,然后學(xué)習(xí) JS 前端知識、拓寬技術(shù)棧。

一. 從初中級到高級,移動端程序員的進(jìn)階寶典

下面我們就以 Android 開發(fā)為例,從硬技能和軟技能兩方面,梳理大前端趨勢下移動端程序員從初級到高級進(jìn)階所需的技能點(diǎn),并且推薦一些實(shí)用的書籍資料。

(一) 硬技能:專業(yè)的技術(shù)知識

1. Java / Kotlin開發(fā)語言

(1) Java

常用數(shù)據(jù)結(jié)構(gòu):ArrayList、Vector、CopyOnWriteArrayList、HaspMap、ConcurrentHashMap、HashTable 等使用場景。

JVM 虛擬機(jī)包括 Java 內(nèi)存管理,GC 垃圾回收機(jī)制,類加載機(jī)制。推薦書籍:《深入理解 Java 虛擬機(jī) JVM 高級特性與***實(shí)踐》。

多線程編程,包括線程池,鎖機(jī)制,線程同步 。推薦書籍:《Java 并發(fā)編程實(shí)戰(zhàn)》和《Java 多線程編程核心技術(shù)》。

AOP 編程實(shí)現(xiàn),包括 JDK 動態(tài)代理實(shí)現(xiàn),ASM 直接操作字節(jié)碼、CGLIB 實(shí)現(xiàn),其原理封裝了 ASM,使用更方便。

Javassist:在字節(jié)碼加載前直接修改需要切入的方法,以及注解處理器 APT,這在 Android 中開源的庫應(yīng)用較多,比如 DataBinding , ButterKnife, EventBus3 等等。

異常處理 Exception,包括檢查性異常、運(yùn)行時異常處理。

IO 流相關(guān),包括堵塞型 IO 和非堵塞型 IO。

Java 的一些高性特級,比如反射、代理、泛型、枚舉、正則表達(dá)式等等;同時了解一下 jdk1.8,1.9,1.10 等新特性。相關(guān)書籍比較多,推薦《Thinking in Java》《Effective Java》。

(2) Kotlin

Kotlin 是一個基于 JVM 的新編程語言,在 Google IO 2017 中被 Google 宣布成為 Android 官方開發(fā)語言。

Kotlin 有哪些優(yōu)點(diǎn)?

①簡潔性: 提供了很多標(biāo)準(zhǔn)函數(shù),大大減少樣板代碼的數(shù)量。

②安全性:避免空指針異常等錯誤。

③互操作性:充分利用 JVM、Android 和瀏覽器的現(xiàn)有庫。

④工具友好: 可用任何 Java IDE 或者使用命令行構(gòu)建。

在 Kotlin 中要樹立函數(shù)式編程思想。把函數(shù)理解為一個值到另一個值的映射關(guān)系,以函數(shù)作為單元來處理各個業(yè)務(wù)邏輯,函數(shù)既可以做參數(shù),也可以作為返回值。多使用 Kotlin 提供的標(biāo)準(zhǔn)函數(shù),比如 let、run、with、apply、also、 Lambda 表達(dá)式。盡量使用閉包和高階函數(shù)。

Kotlin 的另一個突出特點(diǎn)是協(xié)程,為設(shè)計(jì)異步、非阻塞的程序提供了強(qiáng)大的范式。協(xié)程是一種輕量級的線程,它提供避免阻塞且更廉價可控的操作: 協(xié)程掛起。將復(fù)雜異步操作放入底層庫中,程序邏輯可順序表達(dá),以此簡化異步編程。

***簡單說下 Kotlin/Native,它的設(shè)計(jì)初衷是支持在非 JVM 虛擬機(jī)平臺環(huán)境的編程,如 iOS、嵌入式平臺等,同時支持與 C 互操作。推薦書籍:《Kotlin 實(shí)戰(zhàn)》。

2. Android 進(jìn)階技術(shù)點(diǎn)

進(jìn)程相關(guān),包括 App 進(jìn)程原理以及 AIDL 原理。

性能優(yōu)化,包括:內(nèi)存,cpu,耗電量、網(wǎng)絡(luò)請求、UI 布局、線程、數(shù)據(jù)庫等優(yōu)化方法以及優(yōu)化工具的使用。

Android 源碼相關(guān),包括:Binder 機(jī)制,Activity 啟動流程,Handler 原理,AMS ,PMS,WMS 原理,View 的繪制流程,Touch 事件傳遞機(jī)制等等。

編譯打包流程,從 java/kotlin 源碼到最終形成 APK 的過程。

熱修復(fù)的實(shí)現(xiàn)原理,目前熱修復(fù)框架的種類繁多,常見的包括底層替換、類加載和 Instant Run 方案。

逆向工程原理,主要是為了防止 apk 被反編譯破解,以及了解 apk 加固方案。

插件化,目前方案同樣很多,主流的技術(shù)實(shí)現(xiàn)是 Hook 方式,注冊 Activity 進(jìn)行占坑,使用占坑 Activity 通過 AMS 驗(yàn)證,還原插件 Activity,其他組件的原理也大致類似。

NDK 開發(fā),調(diào)用 JNI 以及回調(diào) Java 的方式。

自定義控件,需要注意 onMeasure,onLayout,onDraw 的調(diào)用時機(jī),以及 Touch 事件分發(fā)機(jī)制。

動畫 View Animation,視圖動畫在很早的 Android 版本系統(tǒng)中就已經(jīng)提供了,只能被用來設(shè)置 View 的動畫。

屬性動畫 Property Animation,只對 3.0 以上版本,可以設(shè)置給任何 Object,包括還沒有渲染到屏幕上的對象。這種動畫是可擴(kuò)展的,可自定義任何類型和屬性的動畫。

Webview 中 Native JS 交互,常用的 JSBridge 等。

Gradle 的特性以及 DSL 語法,比如 Gradle Transform API 的使用,它允許第三方插件在 class 文件轉(zhuǎn)為 dex 文件前操作編譯好的 class 文件。利用這一特性,我們可以在代碼編譯階段實(shí)現(xiàn)代碼注入或者代碼修改,這也是很多埋點(diǎn)技術(shù)和熱修復(fù)技術(shù)的基礎(chǔ)。

安全性:HTTPS 通信原理,數(shù)據(jù)加密方式,包括 MD5,RSA 等,webview 安全性,代碼混淆,數(shù)據(jù)驗(yàn)簽,組件通信安全,服務(wù)器通信。

CI 持續(xù)集成:Jenkins ,Gitlab CI 等搭建持續(xù)集成開發(fā)工具。

Sersor 傳感器:包括陀螺儀,加速傳感器,方向傳感器,重力傳感器,光線傳感器等。

Android 開發(fā)國際化

ART 和 Dalvik 虛擬機(jī)的區(qū)別,主要是 AOT,Ahead-Of-Time 預(yù)編譯。

熟悉 DEX 文件結(jié)構(gòu)。

單元測試:JUnit4,AndroidJUnitRunner,Mockito 框架的使用。

自動化測試:Monkey / Monkey Runner ,Espresso ,UI Automator 等。

掌握模塊化開發(fā)方式:主要注意分好層、模塊間跳轉(zhuǎn)通信。

代碼重構(gòu)能力,推薦書籍:《重構(gòu)改善既有代碼的設(shè)計(jì)》、《重構(gòu)與模式》

Google 動態(tài)化框架 App Bundles。

Jetpack,Google 推出的新一代組件、工具和架構(gòu)指導(dǎo),旨在加快 Android 應(yīng)用開發(fā)速度。Jetpack 主要分為 4 部分:

大前端趨勢下移動端程序員要涼?這些進(jìn)階技能助你逆襲

Android開發(fā)常用的第三方庫:

響應(yīng)式編程:RxJava、RxAndroid,Google 的Agera

網(wǎng)絡(luò)庫:包括Retrofit,OkHttp,Volley

圖片:Fresco,Gilde,Picasso

依賴注入:Dagger2

數(shù)據(jù)庫:Realm,ORMLite,GreenDAO,ObjectBox

數(shù)據(jù)總線:EventBus,otto

內(nèi)存泄漏檢測工具 LeakCanary 等

各個技能點(diǎn)如果詳細(xì)拓展開,會形成相當(dāng)龐雜的一張知識圖譜,建議大家自行梳理總結(jié)消化。

3. OOAD 和設(shè)計(jì)模式

在架構(gòu)設(shè)計(jì)方面,首先要掌握的就是面向?qū)ο蟮拈_發(fā)和設(shè)計(jì)。具體知識點(diǎn)包括:

面向?qū)ο笕筇匦裕?/strong>封裝,繼承,多態(tài)。

五大基本原則(SOLID 原則),單一職責(zé)原則,開放封閉原則,里氏替換原則,依賴倒置原則,接口分離原則。

23 種設(shè)計(jì)模式:常用的有工廠、單例、適配器、橋接、組合、代理、命令、觀察者、策略、狀態(tài)模式等等。

4. APP架構(gòu)設(shè)計(jì)

包括 MVC、MVP、MVVM、MVI、VIPER、Clean Architecture、Flux。目前除了 MVC 外 MVP 和MVVM 用得比較多,具體的架構(gòu)設(shè)計(jì)還要結(jié)合業(yè)務(wù)去考慮。

(二) 軟技能

人在職場,行走江湖,想進(jìn)階高級程序員光有技術(shù)深度是不夠的,還需要掌握眾多軟技能,注意綜合職業(yè)素養(yǎng)的磨練。有很多人一開始重視程度不足,在職場后半段的上升過程中,容易遇到瓶頸。

下面是我個人總結(jié)出的高級程序員必備軟技能,供大家參考。

1. 快速學(xué)習(xí)能力:包括技術(shù)深度和廣度,能夠不斷探究新技術(shù),不斷學(xué)習(xí)。

2. 溝通能力:加強(qiáng)表達(dá)、閱讀、編寫能力,即使在技術(shù)發(fā)達(dá)的今天也絕不會過時。因?yàn)槿魏畏绞降臏贤ㄔ谄髽I(yè)內(nèi)部都是非常有必要的。

3. 團(tuán)隊(duì)協(xié)作能力:開發(fā)人員很容易陷入孤立的人際交往狀態(tài),但開發(fā)工作永遠(yuǎn)都不可能是一個人完成,只有成員真正能融入團(tuán)隊(duì)內(nèi),順利與其他同事溝通合作,才能體現(xiàn)出其真正的價值,被列為未來職位晉升候選人的幾率也更大。

4. 時間管理能力:可以參考時間管理「四象限法則」,有重點(diǎn)地把精力和時間集中用于處理重要但不緊急的工作,這樣可以做到未雨綢繆。

大前端趨勢下移動端程序員要涼?這些進(jìn)階技能助你逆襲

5. 影響力:一方面是業(yè)務(wù)影響力,另一方面是技術(shù)影響力。其中,提高技術(shù)影響力的方式包括:多參與技術(shù)分享,把積累的知識進(jìn)行總結(jié)和傳播;參加技術(shù)方案評審,把技術(shù)經(jīng)驗(yàn)分享出去;幫助新同學(xué)解決技術(shù)問題;在博客、Github、StackOverflow 等平臺上對外分享。

6. 文檔編寫能力:

代碼注釋。很多程序員很少寫注釋,或者注釋過多,都是不合適的。多參考開源項(xiàng)目的注釋規(guī)范。

編寫技術(shù)設(shè)計(jì)文檔。包括流程圖,類圖,功能時序圖等等。

此外推薦一本書:《軟技能——代碼之外的生存指南》

大前端趨勢下移動端程序員要涼?這些進(jìn)階技能助你逆襲

二. 技術(shù)專家VS管理,哪條路更適合你?

工作 3-5 年后已經(jīng)進(jìn)階到高級程序員了,很多人開始面臨一個問題:未來發(fā)展方向是技術(shù)專家還是技術(shù)管理,哪一條職業(yè)發(fā)展路徑更適合自己?

選擇哪條路線,首先要明確自己想要什么。想做技術(shù)還是管理,都跟目標(biāo)和職業(yè)規(guī)劃有關(guān),每個人的實(shí)際情況不同,目標(biāo)就不同,建議盡量做和自己的性格相符合的選擇,并且堅(jiān)持。哪怕一時半會看不出效果,長期總是能夠看到效果的。

1. 怎樣的程序員適合做技術(shù)專家?

技術(shù)專家的核心就是深入而精通。對某個技術(shù)領(lǐng)域很熟悉、對代碼編寫保持熱情、持續(xù)學(xué)習(xí)新的技術(shù)、能夠靜下心來做技術(shù),而不是急功近利。性格相對內(nèi)向、不擅長溝通協(xié)調(diào)、不希望花大量時間帶團(tuán)隊(duì)、主要負(fù)責(zé)把關(guān)鍵技術(shù)做到專業(yè)和***,這樣的人更適合往技術(shù)路線發(fā)展,比如技術(shù)專家,架構(gòu)師。

2. 怎樣的程序員適合轉(zhuǎn)型技術(shù)管理?

首先要明確,通常所說的技術(shù)管理者都需要做哪些事?

  • 團(tuán)隊(duì)建設(shè):人員激勵、團(tuán)隊(duì)文化、梯隊(duì)建設(shè)。
  • 任務(wù)管理:任務(wù)分工、任務(wù)協(xié)作。
  • 管理規(guī)劃:新技術(shù)調(diào)研,支撐新業(yè)務(wù)的重構(gòu)等。

相應(yīng)地,需要的能力包括:向上匯報(bào)向下傳達(dá)能力、團(tuán)隊(duì)管理能力、人員培養(yǎng)能力、上下游部門合作把控能力、業(yè)務(wù)需求溝通能力、重大問題的決斷能力、長遠(yuǎn)目標(biāo)規(guī)劃能力、執(zhí)行力等等。

綜合來看,管理能力和技術(shù)能力的要求差別較大。作為技術(shù)管理者首先應(yīng)該有角色認(rèn)知的改變,不能以程序員的角度去看待問題,需要站在更高角度,從全局思考問題。推薦有志走管理路線的移動端程序員參考這本書:《成為技術(shù)***》。

3. 兩種發(fā)展路徑的異同點(diǎn)

(1) 不同點(diǎn):技術(shù)專家更依賴個人技術(shù)能力,需要結(jié)合業(yè)務(wù)做好技術(shù)規(guī)劃,框架設(shè)計(jì),性能優(yōu)化以及技術(shù)創(chuàng)新;技術(shù)管理者是協(xié)助團(tuán)隊(duì)一起把產(chǎn)品做出來,負(fù)責(zé)團(tuán)隊(duì)內(nèi)外的組織溝通和相互協(xié)調(diào)。

(2) 相同點(diǎn):終究需要面對管理,只是管理工作的多和少之分。即使你是架構(gòu)師,也需要 lead 一個技術(shù)團(tuán)隊(duì)。

因此,不論你未來是走純技術(shù)路線還是非技術(shù)路線,都需要增長自己的管理技能,因?yàn)榈?**總歸是需要管理溝通的。當(dāng)你級別非常高,卻還不跟任何人打交道,完全靠個人能力來貢獻(xiàn)的情況是很少見的。

4. 如果選擇錯誤,是否還有二次選擇機(jī)會?

我認(rèn)為需要先把職業(yè)目標(biāo)和職業(yè)規(guī)劃想好,經(jīng)常改變對職業(yè)影響較大。

(1) 技術(shù)轉(zhuǎn)向管理:要提前掌握相關(guān)管理知識并在角色認(rèn)知上做出改變,以團(tuán)隊(duì)為出發(fā)點(diǎn)去思考問題,對業(yè)務(wù)了解更多,提高部門內(nèi)的影響力,有合適的晉升機(jī)會可進(jìn)行轉(zhuǎn)型。

(2) 管理轉(zhuǎn)回技術(shù):如果你面對諸多跨部門溝通,在性格等因素上感覺不合適,需要盡快做出決策,轉(zhuǎn)回技術(shù)開發(fā)。

三. 大前端趨勢下,移動端程序員如何保持競爭力?

我從招聘網(wǎng)站上摘錄了某些一線公司的職位描述要求:

3 年以上工作經(jīng)驗(yàn)、深入了解移動端的底層和原理、獨(dú)立主導(dǎo)或開發(fā)過一款以上產(chǎn)品的核心項(xiàng)目、豐富的項(xiàng)目經(jīng)驗(yàn)或管理能力、有 React Native 或者Weex 的實(shí)戰(zhàn)經(jīng)驗(yàn)、掌握一些前端開發(fā)技術(shù),HTML / JavaScript / CSS 等。前后端開發(fā)經(jīng)歷是加分項(xiàng)。

可以看到,市場對 Android 程序員的要求越來越高,除了深入掌握 Android 底層原理,對前端 JS 等技術(shù)也有要求。

今天我們已經(jīng)進(jìn)入了終端碎片化的時代。從 2007 年 iPhone ***代發(fā)布至今的 12 年里,智能手機(jī)并沒有被取代的跡象。但創(chuàng)新仍在繼續(xù),比如智能手表、TV、眼鏡、頭戴 VR 等等,可以想象這樣的設(shè)備仍會繼續(xù)增多。

這些新設(shè)備也是新平臺,與智能手機(jī)類似,可以安裝第三方應(yīng)用,且這些平臺基本都支持瀏覽器或內(nèi)嵌瀏覽器引擎。早期 Hybrid 和后來 React Native 等探索,在顯示終端應(yīng)用的開發(fā)上,前端開發(fā)已成為必備技術(shù)。

因此,大前端趨勢對移動端程序員而言,***的影響就是新的移動開發(fā)技術(shù)棧。

移動設(shè)備作為主流終端,其應(yīng)用開發(fā)技術(shù)也應(yīng)該是大前端最關(guān)注的技術(shù)。以前移動開發(fā)技術(shù)棧以原生開發(fā)為主,現(xiàn)在的趨勢是跨平臺技術(shù)愈演愈烈。

那么,在如今技術(shù)快速變化的環(huán)境下,移動端程序員該如何保持競爭力?

首先,加強(qiáng) Android / iOS 技術(shù)深度儲備,深入理解系統(tǒng)底層原理,對新技術(shù)持續(xù)投入。

其次,逐步完善前端技術(shù)棧,廣度擴(kuò)充,熟悉前端 JS,以及 RN,flutter 等跨平臺框架。

***,選擇 Android 細(xì)分領(lǐng)域并提高,比如應(yīng)用開發(fā)、逆向安全、音視頻、車聯(lián)網(wǎng)、物聯(lián)網(wǎng)、手機(jī)開發(fā)、SDK 開發(fā)和智能電視盒子開發(fā)等等,在其中選擇一個并不斷深入。

四. Q & A

(Q代表網(wǎng)友提問,A代表孔濤回答)

Q: 您是從什么時候開始帶團(tuán)隊(duì)的?剛開始從純技術(shù)轉(zhuǎn)向管理崗會遇到什么困難?如何克服?

A: 我從4年前左右開始帶團(tuán)隊(duì),由一個人獨(dú)立貢獻(xiàn)到多個人的團(tuán)隊(duì)開發(fā)貢獻(xiàn),一個人能力有限,驅(qū)動大家解決問題,這其中有心態(tài)的變化是需要克服的。有一種決策認(rèn)知的改變。

Q: 我一直在中小型公司做小團(tuán)隊(duì)管理者,后續(xù)發(fā)展突破口在哪里,是否可以進(jìn)入大廠轉(zhuǎn)技術(shù)路線?

A: 你的突破點(diǎn)在于技術(shù)上的提高,這是一條不錯的路線,在大廠里做技術(shù)是沒有問題的。但如果你想繼續(xù)做管理的話,就要先提升一些大廠的經(jīng)驗(yàn),做技術(shù),再慢慢轉(zhuǎn)到管理

Q: 在創(chuàng)業(yè)公司帶大團(tuán)隊(duì)和在大廠帶小團(tuán)隊(duì),哪條路更有優(yōu)勢?

A: 這沒有絕對答案。如果你之前在大公司里帶過小團(tuán)隊(duì),積累了經(jīng)驗(yàn),去創(chuàng)業(yè)公司帶大團(tuán)隊(duì)是沒有問題的。但是反過來,如果你經(jīng)驗(yàn)不足,且缺乏一些對新事物的認(rèn)識的話,去小廠帶大團(tuán)隊(duì)可能會遇到一些瓶頸。所以個人建議先去大廠鍛煉鍛煉。

 

責(zé)任編輯:張燕妮 來源: 100offer
相關(guān)推薦

2014-07-30 16:11:11

程序員

2014-08-04 10:54:47

程序員

2021-02-03 13:18:02

程序員財(cái)富自由

2015-07-08 11:22:16

程序員炒股

2018-03-09 09:53:37

國產(chǎn)內(nèi)存紫光半導(dǎo)體

2017-10-27 15:48:06

JavaScript前端全端

2015-07-01 09:10:20

2025-04-30 09:52:42

2017-09-01 09:39:58

全部身家押寶比特幣

2018-05-23 15:01:46

程序員WiFi生產(chǎn)商

2015-03-13 09:45:27

2025-03-28 08:17:08

2019-09-25 11:39:07

程序員編程技術(shù)

2021-01-19 15:59:14

程序員算法

2018-08-03 09:48:14

程序員逆襲Python

2024-10-25 13:40:00

2018-01-04 12:30:32

程序員第二技能編程

2013-04-18 09:55:05

程序員

2015-08-18 09:23:39

程序員學(xué)英語
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號