前言Preface為什么要寫(xiě)這本書(shū)2017年4月22日,我在知乎發(fā)起了一場(chǎng)“零基礎(chǔ)周末學(xué)習(xí)小程序開(kāi)發(fā)”直播,從當(dāng)晚8點(diǎn)開(kāi)始,我一邊撰寫(xiě)教程筆記,一邊與500多位學(xué)員在線(xiàn)互動(dòng)。教學(xué)從注冊(cè)賬號(hào)開(kāi)始,接著是下載微信開(kāi)發(fā)者工具,然后創(chuàng)建個(gè)quick start項(xiàng)目,最后編寫(xiě)后端代碼,并在微信上運(yùn)行和測(cè)試所開(kāi)發(fā)的小程序。從那天晚上到第二天凌晨4點(diǎn),我發(fā)出了7篇教程。
在這場(chǎng)直播中,我原本以為大家會(huì)提問(wèn)一些諸如頁(yè)面如何跳轉(zhuǎn)、數(shù)據(jù)如何緩存等技術(shù)問(wèn)題,但是大家提的卻大都是一些有關(guān)小程序的邊緣問(wèn)題,諸如如何下載和安裝小程序、如何獲得小程序內(nèi)測(cè)資格等。
不少學(xué)員尚不知道小程序已于2017年1月9日正式上線(xiàn);并且,個(gè)人也能注冊(cè)賬號(hào);所謂的200個(gè)小程序內(nèi)測(cè)資格已經(jīng)成為過(guò)去式了;而且小程序不需要下載安裝。
很多學(xué)習(xí)小程序開(kāi)發(fā)的學(xué)員甚至毫無(wú)編程基礎(chǔ),他們對(duì)如何開(kāi)發(fā)一款小程序一無(wú)所知。由此我意識(shí)到,小程序初學(xué)者最迫切需要的并不是復(fù)雜和高深的教程,而是一本簡(jiǎn)單而全面地介紹小程序開(kāi)發(fā)的圖書(shū)。全面與快速入門(mén)是其需求,基于此,筆者編寫(xiě)了本書(shū)。
小程序不是一門(mén)語(yǔ)言,它是一門(mén)新的綜合應(yīng)用技術(shù)。小程序無(wú)須下載,不用安裝,拿來(lái)即用,正所謂“事了拂衣去,不留身與名”。凡是接觸過(guò)原生iOS、Android應(yīng)用開(kāi)發(fā)的讀者,都能理解傳統(tǒng)開(kāi)發(fā)技術(shù)帶給開(kāi)發(fā)者的痛苦,如機(jī)型繁多、適配困難、審核周期長(zhǎng)(iOS應(yīng)用),等等。
達(dá)爾文說(shuō)過(guò),“自然界生存下來(lái)的,既不是四肢最強(qiáng)壯的,也不是頭腦最聰明的,而是有能力適應(yīng)變化的物種。”
國(guó)內(nèi)App的運(yùn)營(yíng)成本一直在增長(zhǎng),目前獲取一個(gè)新用戶(hù)的成本甚至高達(dá)30元人民幣。在這種環(huán)境下,微信的小程序應(yīng)運(yùn)而生。從小程序的更新歷史來(lái)看,微信之父張小龍打造新技術(shù)生態(tài)圈的決心是異常堅(jiān)決的。隨著小程序技術(shù)的成熟,開(kāi)發(fā)者社區(qū)的形成,在批小程序開(kāi)發(fā)者賺到桶金時(shí),這一新技術(shù)的火爆才剛剛拉開(kāi)帷幕。
2017年3月27日,微信小程序開(kāi)放了個(gè)人賬號(hào)申請(qǐng),從此以后,不是企業(yè)也能開(kāi)發(fā)小程序。
2017年3月28日,微信小程序開(kāi)放了藍(lán)牙、卡券、獲知訪(fǎng)問(wèn)場(chǎng)景、共享微信通訊錄等功能,并支持JS ES6新語(yǔ)法。
2017年4月17日,微信小程序代碼包的大小限制由1MB提升到2MB,開(kāi)放了第三方平臺(tái)開(kāi)發(fā)小程序的功能,開(kāi)放了數(shù)據(jù)分析接口。
2017年4月20日,微信小程序?qū)λ泄娞?hào)都開(kāi)放了關(guān)聯(lián)小程序的功能。
2017年4月25日,微信小程序開(kāi)放了公眾號(hào)推送文章可插入小程序的功能。
2017年5月19日,微信小程序可支持藍(lán)牙。
2017年6月21日,微信小程序開(kāi)放了打開(kāi)另一個(gè)小程序的功能。
2017年7月11日,微信小程序添加了富文本支持。
……隨著微信小程序不斷開(kāi)放新接口與新功能,小程序的開(kāi)發(fā)社區(qū)正在逐漸形成。學(xué)習(xí)一門(mén)新技術(shù)最好的契機(jī),正是其方興未艾之時(shí)。無(wú)論是初入校園的大一新生,還是剛剛走上工作崗位的職場(chǎng)新人,此時(shí)學(xué)習(xí)小程序技術(shù),正是最佳良機(jī)。你與有數(shù)十年編程經(jīng)驗(yàn)的老手站在了同一起跑線(xiàn)上,因?yàn)樾〕绦驅(qū)λ腥藖?lái)說(shuō)都是全新的技術(shù)。今天的菜鳥(niǎo),未必就不能成為明日高手。
根據(jù)我在小程序培訓(xùn)中的觀察,初學(xué)者最大的痛點(diǎn)是感覺(jué)技術(shù)太雜,要學(xué)的東西太多。買(mǎi)了一堆書(shū)堆在桌上,學(xué)完這個(gè)又學(xué)那個(gè),難于將其融會(huì)貫通。行程未遠(yuǎn),激情已耗大半。目前市面上還沒(méi)有一本書(shū)從前端到后端、全面介紹小程序的開(kāi)發(fā)技術(shù),已有的書(shū)籍有的介紹了小程序組件而未介紹JS語(yǔ)言,有的介紹了JS語(yǔ)言卻未講解如何開(kāi)發(fā)服務(wù)端程序,而本書(shū)首次全面介紹了小程序所需要用到的所有技術(shù),從小程序組件到WXSS樣式,從前端JS語(yǔ)言到后端Go語(yǔ)言,通過(guò)實(shí)戰(zhàn)案例,由淺入深地介紹小程序開(kāi)發(fā)涉及的所有內(nèi)容,幫助讀者快速成長(zhǎng)為一名真正的微信全棧工程師。
讀者對(duì)象高校畢業(yè)生,中專(zhuān)技校畢業(yè)生。
工作1~2年的、渴望獲得加薪技能的職場(chǎng)新人。
渴望以軟件開(kāi)發(fā)為謀生手段的自由“手藝”人。
準(zhǔn)備報(bào)名或已參加小程序開(kāi)發(fā)培訓(xùn)班的讀者。
有人說(shuō),大學(xué)里最美好的事情就是找到一個(gè)喜歡的人,認(rèn)認(rèn)真真地談一場(chǎng)無(wú)關(guān)名利的戀愛(ài)。但大學(xué)里不只有戀愛(ài),在新學(xué)期伊始就開(kāi)始學(xué)習(xí)小程序開(kāi)發(fā)吧,這將是送給四年后的自己最好的禮物。許多人后悔在2007年款iPhone發(fā)布時(shí)沒(méi)有開(kāi)始學(xué)習(xí)iOS開(kāi)發(fā),只能羨慕那些早期的iOS開(kāi)發(fā)者獲得平臺(tái)的初期紅利。現(xiàn)在小程序來(lái)了,企業(yè)市場(chǎng)對(duì)小程序的需求越來(lái)越旺,學(xué)好這門(mén)實(shí)用的技術(shù),畢業(yè)后就不怕找不到工作;如果向往自由的生活,不想在公司打工,還可以自己接單,做SOHO一族。如果學(xué)得好,那么在校期間就可以接單,成為一名自食其力的編碼“手藝人”。
如何閱讀本書(shū)本書(shū)主要包括四篇,內(nèi)容分布如下。
篇,即第1章學(xué)前準(zhǔn)備,講解了小程序開(kāi)發(fā)環(huán)境的準(zhǔn)備及賬號(hào)的注冊(cè)。完成第1章的學(xué)習(xí)相當(dāng)于取得了小程序技術(shù)殿堂的入場(chǎng)券。
第二篇,第2~10章,本篇是項(xiàng)目實(shí)戰(zhàn)部分,其中第2~6章講解小程序前端案例,使用了后臺(tái)地址但未涉及后臺(tái)編程;第7~10章在已有案例的基礎(chǔ)上添加了后端程序的支持。先學(xué)習(xí)前端,再學(xué)習(xí)后端,每次專(zhuān)注一個(gè)點(diǎn)學(xué)習(xí),更易理解和掌握。
第三篇,第11~14章,本篇詳細(xì)地講解了所有小程序組件的使用方法,所附示例幾乎全部都是生產(chǎn)可用的,這就大大降低了初學(xué)者在美工上的學(xué)習(xí)門(mén)檻。
第四篇,第15~17章,本篇是綜合練習(xí)部分,系統(tǒng)地介紹了JS語(yǔ)言、Go語(yǔ)言、WXSS樣式語(yǔ)法等必備知識(shí)與技能。這3章既可作為工具手冊(cè),以備開(kāi)發(fā)查詢(xún)之需;每一章節(jié)又都有獨(dú)立的練習(xí)代碼,可便于讀者利用課余或業(yè)余的碎片時(shí)間提高編碼水平。
學(xué)習(xí)指引:
1.讀者從第1章開(kāi)始到第14章,逐章學(xué)習(xí),并運(yùn)行測(cè)試所有的實(shí)例。每一章都附有源碼,讀者在學(xué)習(xí)的過(guò)程中如果遇到問(wèn)題,可以下載作者的源碼對(duì)照學(xué)習(xí)。
2.待前14章全部學(xué)完,進(jìn)入第15~17章的綜合學(xué)習(xí)。在這個(gè)階段的學(xué)習(xí)過(guò)程中,不妨直接用新學(xué)的知識(shí)直接深入修改前面業(yè)已完成的示例,將本書(shū)的示例變成自己的示例。如果有時(shí)間,建議將修改過(guò)程以博客的形式記錄下來(lái),并在社區(qū)發(fā)表,可以此加深印象。
小組學(xué)習(xí)我至今最為懷念的時(shí)光,便是大學(xué)里和兩位好友在機(jī)房里通宵學(xué)編程的日子。我們?nèi)齻(gè)人相互鞭策又相互欣賞,經(jīng)常比較誰(shuí)的代碼寫(xiě)得更優(yōu)雅,誰(shuí)的代碼執(zhí)行效率更高。
我希望每個(gè)讀者都能找到朋友或同學(xué)組成一個(gè)學(xué)習(xí)小組,或2人,或3人,共同學(xué)習(xí),相互激勵(lì),這樣學(xué)習(xí)的效率和動(dòng)力會(huì)高許多。孔子曰“三人行,必有我?guī)煛保\(chéng)不我欺。
勘誤由于作者水平有限,寫(xiě)作時(shí)間又很倉(cāng)促,書(shū)中難免有不妥之處,懇請(qǐng)讀者批評(píng)指正。
如果讀者在閱讀過(guò)程中發(fā)現(xiàn)了問(wèn)題,或者有什么疑問(wèn),歡迎與作者聯(lián)系。作者的郵箱是liyi rixingyike.com。
微信公眾號(hào)在學(xué)習(xí)本書(shū)的過(guò)程中,也歡迎加入作者的小程序微信群,關(guān)注微信公眾號(hào)“藝述思維”,回復(fù)“小程序”就能加入。未來(lái)作者會(huì)舉辦讀者線(xiàn)下交流會(huì),請(qǐng)留意群內(nèi)通知。
致謝感謝機(jī)械工業(yè)出版社華章公司的楊繡國(guó)老師,她的認(rèn)真和敬業(yè)令我折服。
感謝支持我進(jìn)行《藝術(shù)論》創(chuàng)作的老楊同志、何超超、云哥、琥珀人生、楊龍晨等微信好友,感謝李萌、李書(shū)衛(wèi)、南陽(yáng)著名甲骨文書(shū)法家郝新安、國(guó)畫(huà)家彭航、邯鄲著名書(shū)法篆刻家杜文平、開(kāi)封著名書(shū)法家王德云等130位日行一刻藝術(shù)天使們兩年來(lái)的默默支持。
感謝所有讀者,希望這本書(shū)對(duì)您的學(xué)習(xí)有所幫助。
石橋碼農(nóng)2017年7月于北京月亮河