WePY:在质疑中前进 | 文末福利
WePY 作者介紹
Q: 先介紹一下自己吧~
Gcaufy: 我 2011 年大學(xué)畢業(yè)之后,陰錯(cuò)陽(yáng)差的走上了 Web 開(kāi)發(fā)的道路。15 年之前算是自由職業(yè) SOHO 工作,主要給一些國(guó)外的大公司做外包系統(tǒng),更多的是做后端開(kāi)發(fā)。15 年之后以前端工程師的身份加入騰訊,開(kāi)始負(fù)責(zé)騰訊手機(jī)充值的相關(guān)業(yè)務(wù)。
2016 年參加小程序內(nèi)測(cè),開(kāi)發(fā)手機(jī)充值小程序版本。小程序公測(cè)一個(gè)月時(shí),我開(kāi)源了小程序上的組件化開(kāi)發(fā)框架 WePY。18 年年初,我來(lái)到了微信支付。在微信支付,我主要負(fù)責(zé) toB 端的業(yè)務(wù),給微信支付的商家提供服務(wù)。
Q: 可以分享下當(dāng)初學(xué)習(xí)編程的經(jīng)歷嗎?
Gcaufy: 我學(xué)習(xí)編程的經(jīng)歷比較久,高一的時(shí)候就開(kāi)始自學(xué) C 語(yǔ)言了,然后又學(xué)了單片機(jī)匯編,高中就在文曲星上寫(xiě)內(nèi)核代碼。上大學(xué)之后研究的東西比較雜亂,喜歡折騰一些外掛工具,搞點(diǎn)簡(jiǎn)單的軟件破解之類(lèi)的,當(dāng)時(shí)的夢(mèng)想是以后可以從事逆向工程等比較底層的工作 。
WePY 的開(kāi)源歷程
Q: 最初開(kāi)發(fā) WePY 的原因是什么呢?
Gcaufy: 早期微信小程序是不支持組件化開(kāi)發(fā)、不支持引用第三方 NPM 資源的,為了解決開(kāi)發(fā)的痛點(diǎn),讓我自己在做業(yè)務(wù)開(kāi)發(fā)時(shí)的體驗(yàn)更友好,就去做了一個(gè)框架,實(shí)現(xiàn)了類(lèi) Vue 的開(kāi)發(fā)體驗(yàn)。
Q: 為什么會(huì)選擇將 WePY 開(kāi)源呢?
Gcaufy: 在開(kāi)發(fā)小程序框架的過(guò)程中,感覺(jué)可以抽出來(lái)給到所有小程序開(kāi)發(fā)者去使用,所以就決定放在 GitHub 上開(kāi)源,希望這套方案能夠解決在小程序開(kāi)發(fā)中遇到的一些實(shí)際問(wèn)題。
另外一個(gè)原因是自己本身愛(ài)好開(kāi)源,從 04 年寫(xiě)的第一份代碼開(kāi)始,我都會(huì)以各種形式把源代碼公開(kāi)。開(kāi)源既可以幫助想學(xué)習(xí)的人,又能強(qiáng)迫自己去優(yōu)化代碼,而且從別人的反饋和意見(jiàn)中,你能知道自己哪些地方還可以做得更好。
Q: 開(kāi)源 WePY 的過(guò)程有什么值得分享的經(jīng)歷嗎?
Gcaufy: WePY 是一個(gè)自外而內(nèi)的開(kāi)源項(xiàng)目。2016 年 11 月份在內(nèi)部開(kāi)源后并沒(méi)有受到太多關(guān)注,于是放在 GitHub 個(gè)人賬號(hào)開(kāi)源,GitHub 開(kāi)源后外界關(guān)注度越來(lái)越高之后,內(nèi)部才開(kāi)始被重新關(guān)注,然后少數(shù)內(nèi)部團(tuán)隊(duì)才開(kāi)始投入使用,也就是我說(shuō)的自外而內(nèi)的開(kāi)源。大概是在 17 年初騰訊開(kāi)源的同事和我以及當(dāng)時(shí)我在的團(tuán)隊(duì)溝通,想將項(xiàng)目回遷至 Tencent 域下,到 2017 年年底走完流程正式遷入Tencent 域下,至此才完成了所謂的「轉(zhuǎn)正」。
直面社區(qū)質(zhì)疑
Q: 我看到 WePY 介紹是類(lèi) Vue 風(fēng)格,是否可以具體講一下 WePY 在哪些方面借鑒了 Vue 的設(shè)計(jì)?哪些地方又是與 Vue 不同的?
Gcaufy: WePY 在語(yǔ)法上借鑒了 Vue 的語(yǔ)法,原理則是完全不同的:比如 WePY 使用的是 Angular 的臟檢查設(shè)計(jì),而不是使用的 Vue 的 getter, setter 等,最初的想法就是利用臟檢查去繞過(guò)性能不是很好的 setData。當(dāng)然從現(xiàn)在的反饋來(lái)看,有些當(dāng)時(shí)的設(shè)計(jì)還是不是很恰當(dāng)?shù)摹?/p>
Q: 如何看待社區(qū)里開(kāi)發(fā)者提出的 WePY 代碼質(zhì)量問(wèn)題?
Gcaufy: 對(duì)于這個(gè)問(wèn)題我是認(rèn)同的,我在對(duì)外的分享里多次提到過(guò) WePY 存在很多問(wèn)題。項(xiàng)目是 2016 年 10 月份開(kāi)始的,大概就花了 4 個(gè)周末的時(shí)間,然后發(fā)布到 GitHub 上。項(xiàng)目有單元測(cè)試但是只覆蓋到核心庫(kù)部分,編譯那一部分是完全沒(méi)有測(cè)試的,后面沒(méi)有繼續(xù)把這里補(bǔ)齊就是因?yàn)榇a寫(xiě)得幾乎不可被測(cè)試,改造的成本無(wú)疑于重構(gòu)代碼,因此這里的質(zhì)量可想而知,所以我也經(jīng)常說(shuō)當(dāng)前項(xiàng)目的 Star 數(shù)與本身的質(zhì)量嚴(yán)重不對(duì)等。
項(xiàng)目最初的想法就是解決小程序 NPM 資源引用,以及組件化開(kāi)發(fā)的問(wèn)題。在早期確實(shí)能提供不錯(cuò)的開(kāi)發(fā)效率。大概在 17 年 11 月份,官方自己推出了組件化方案,那這個(gè)時(shí)候 WePY 帶來(lái)的效率提升反而沒(méi)那么明顯了,反到是 bug 都給暴露出來(lái)了。一直以來(lái)我都想重構(gòu)代碼,但到這個(gè)時(shí)候才意識(shí)到重構(gòu)迫在眉睫,這也是為什么我要做 WePY 2.0 版本的原因。目前已經(jīng)將一些 Demo 改造成 2.0 的,希望 2.0 是一個(gè)全新的,對(duì)得起開(kāi)發(fā)者的版本。
Q: 最后,想問(wèn)一下 WePY 這個(gè)名字含義是什么?
Gcaufy: 一個(gè)項(xiàng)目最難的地方就是給它取一個(gè)響亮的名字。開(kāi)始時(shí)是因?yàn)樾枰x一個(gè)新的文件名后綴,在思考時(shí)第一個(gè)閃現(xiàn)在腦子里的就是 cpp,那我就想用 wpp,但是搜索發(fā)現(xiàn) wpp 有好多結(jié)果,可能會(huì)不利于以后的 SEO,于是就改了一個(gè)字母 wpy。所以最后框架就叫 WePY 了,實(shí)際上并沒(méi)有任何特殊含義,最重要的是 NPM 上這個(gè)名字還是沒(méi)有被注冊(cè)的。
WePY 作者龔澄(常用ID: Gcaufy)會(huì)在掘金開(kāi)發(fā)者大會(huì) · 微信小程序?qū)?chǎng),分享 WePY 開(kāi)發(fā)實(shí)踐。
演講內(nèi)容:本次分享會(huì)介紹 WePY 的開(kāi)發(fā)背景、設(shè)計(jì)思想以及編譯原理,同時(shí)也會(huì)直面 WePY 現(xiàn)在存在的問(wèn)題以及未來(lái) WePY 的設(shè)計(jì)規(guī)劃等等。 WePY 是一個(gè)從開(kāi)源社區(qū)不斷汲取養(yǎng)分,自我學(xué)習(xí)、不斷成長(zhǎng)的一個(gè)產(chǎn)物,也希望它能夠反哺開(kāi)源社區(qū),給予更多的小程序開(kāi)發(fā)者們開(kāi)發(fā)便利。
福利來(lái)了~
留言贈(zèng)票
- 活動(dòng)時(shí)間:即日起至 9 月 6 日 20:00 截止
- 參與方式:在本文評(píng)論區(qū)留言即可
- 獎(jiǎng)品設(shè)置:我們將從評(píng)論者中隨機(jī)抽取 3 名
- 注意事項(xiàng):門(mén)票可以轉(zhuǎn)讓,但不可退換現(xiàn)金
專(zhuān)屬優(yōu)惠
掘金開(kāi)發(fā)者大會(huì) ? 微信小程序?qū)?chǎng)現(xiàn)已開(kāi)始正式報(bào)名,現(xiàn)在正在 8 折優(yōu)惠中。掘金為讀者帶來(lái)了參與活動(dòng)的專(zhuān)屬福利:掃碼進(jìn)入小程序,輸入專(zhuān)屬優(yōu)惠碼:「wepy」,立減 99 元(限量 10 名)!活動(dòng)中,不僅有干貨滿滿的技術(shù)盛宴,還包眾多福利獎(jiǎng)品和價(jià)值 299 元的自助午餐哦!
活動(dòng)信息:
- 官網(wǎng):conf.juejin.im
- 時(shí)間:2018年9月16日(周日)
- 地點(diǎn):北京富力萬(wàn)麗酒店
- 人數(shù):600 名開(kāi)發(fā)者
購(gòu)票鏈接
票務(wù)咨詢
- 聯(lián)系人:王先生
- 電子郵箱:ticket@xitu.io
- 電話 / 微信:18561606818
總結(jié)
以上是生活随笔為你收集整理的WePY:在质疑中前进 | 文末福利的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 初识react(四) react中异步解
- 下一篇: Event Loop 其实也就这点事