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