前言这本书的特点和特点可能是我一直不喜欢很多编程书籍开头列出知识点的做法。入行八年以来,每次看技术书籍,看到概念理论就头疼。接到清华大学出版社的邀请后,我想了很久,想怎么整理小程序开发这本书的写作思路,写一本自己喜欢读的书。如果读者能够沉浸在开发一个近乎真实的项目中并在他们知道之前学习 小程序开发,那就太好了。幸运的是,小程序不是语言。它不需要列出像 Java、Python、JavaScript 和其他基本语言这样的基本语法。学习它的最好方法是本书中的“实践”学习。因此,本书会用一个比较完整的“案例项目”来“连接”小程序的各个知识点,在做项目的同时学习小程序的开发。本书的目的是在完成一个项目后开始使用小程序。我喜欢这种“实战”学习带来的“代入感”(如果你玩过各种角色扮演游戏,就会明白什么是代入感)。跟着本书一步一步的编码,你不仅会收获知识,还能直接完成一个像样的小程序,这种成就感是学习编程的最大动力。就算你是基础不错的开发者,只有阅读官方文档,你才能了解小程序的开发。我仍然建议你仔细阅读这本书,因为这本书会为你节省很多“试错”的时间。
很多时候,这本书并没有直接给出一个问题的最优解,而是先给出一个看似愚蠢的想法来解决这个问题。因为这是我们最直接的想法,也是最简单的解决方案。通过分析该方案的不足之处,最终给出更好的解决问题的方案。我认为这符合我们编程中“重构”的概念。与直接给出最优解相比(实际上编程中很难有最优解,但相对“优秀”),增量解题可以让读者领略优秀解的优势,避免死记硬背。. 我一直认为这本书的写作思路也是程序员自学的思路,从点到面,从具体到抽象。工作中遇到问题,想办法解决问题,查阅资料学习问题的相关知识点,最后把这些知识点总结归纳,形成自己的知识体系。这是一个通用的学习“例程”。编程语言和框架太多,技术发展速度快得惊人。即使有十几个具有相似功能的框架,我们也很难像经典数学、基础物理学和现代经济学一样先学习。理论再付诸实践。Coder 有时有勇气面对未知:先解决,后学习,再忽略。这本书虽然是针对入门的,但也不乏一些小程序的高级知识,主要体现在微信开放界面。学习微信开放接口不仅需要你有前端知识,还需要有一定的服务器编程经验。不然你会很难理解微信为什么要这样设计开放接口的调用流程?为什么需要如此复杂的签名和令牌系统?退一步说,看不懂也没关系。当您遇到类似的问题和功能时,您只需要知道如何解决它们。你会很难理解微信为什么要这样设计开放接口的调用流程?为什么需要如此复杂的签名和令牌系统?退一步说,看不懂也没关系。当您遇到类似的问题和功能时,您只需要知道如何解决它们。你会很难理解微信为什么要这样设计开放接口的调用流程?为什么需要如此复杂的签名和令牌系统?退一步说小程序制作小程序开发,看不懂也没关系。当您遇到类似的问题和功能时,您只需要知道如何解决它们。
在编程中,有太多我们不理解的东西。谁能保证我们将做的项目和产品的每一个细节都看得一清二楚?有时记住如何做比为什么做更重要。清楚的认识只是一个相对的概念。没有人能准确地定义理解的程度称为“清晰的理解”,也没有人能将深度理解的程度解释为“深度学习”。所以,选择性地学习原理,更多地专注于解决问题,我认为是一个正确的选择。本书中,遇到不熟悉的知识体系,没关系,先写出来实现这个功能。以后有更多经验的时候,可以回去看看这些知识点。本书的详细程度让你即使不了解某个知识点也能完成整个Orange Can项目。小程序开发必备的前置技能如果不考虑服务器,小程序开发只有开发人员需要有JavaScript和CSS的知识。有很多文章说开发者需要掌握 Vue 和 AngularJS 才能开发小程序,这对于一些强者来说是很难的。小程序确实与 Vue 和 AngularJS 有很多相似之处,主要体现在数据绑定上。但是 Vue 和 AngularJS 远比微信小程序复杂。为了开发一个简单的小程序,没有必要学习一个比这个简单的东西复杂得多的框架。从先到先得的角度来看,
但对于既没有开发过小程序,也没有任何 AngularJS 或 Vue 经验的开发者来说,这种先到先得的概念对你来说毫无意义。不管怎样,自然优先学习简单的,然后是高级复杂的框架。如果你是从 iOS 和 Android 转型过来的开发者,就没有必要关注 Vue 和 AngularJS。小程序开发 中的很多想法相信你在自己的 iOS 和 Android 领域都有经验。如果只开发小程序的前端部分,没必要学习NodeJS。前端就是前端,服务器就是服务器。令人惊奇的是,我们可以做到极致。如果你想自己开发一个完整的小程序,没有要求服务器语言必须是NodeJS。选择您喜欢的服务器语言,PHP、NodeJS、Python、Java、C#、Ruby 都可以。小程序开发需要掌握的东西在我看来是个伪命题。小程序应该成为初学者学习前端(学习和实践)的首选开发平台,因为它足够简单,与当前主流的MVVM框架非常相似,学习曲线非常流畅。它应该是开始使用其他更复杂和强大的框架的“垫脚石”。对于传统的web开发者来说,写小程序只需要注意以下两点:(1)小程序中没有DOM,请放弃“先获取DOM,再操作”的想法DOM”。在我看来,需要掌握的是一个伪命题。小程序应该成为初学者学习前端(学习和实践)的首选开发平台,因为它足够简单,与当前主流的MVVM框架非常相似,学习曲线非常流畅。它应该是开始使用其他更复杂和强大的框架的“垫脚石”。对于传统的web开发者来说,写小程序只需要注意以下两点:(1)小程序中没有DOM,请放弃“先获取DOM,再操作”的想法DOM”。在我看来,需要掌握的是一个伪命题。小程序应该成为初学者学习前端(学习和实践)的首选开发平台,因为它足够简单,与当前主流的MVVM框架非常相似,学习曲线非常流畅。它应该是开始使用其他更复杂和强大的框架的“垫脚石”。对于传统的web开发者来说,写小程序只需要注意以下两点:(1)小程序中没有DOM,请放弃“先获取DOM,再操作”的想法DOM”。因为它足够简单,与目前主流的 MVVM 框架非常相似,而且学习曲线非常流畅。它应该是开始使用其他更复杂和强大的框架的“垫脚石”。对于传统的web开发者来说,写小程序只需要注意以下两点:(1)小程序中没有DOM,请放弃“先获取DOM,再操作”的想法DOM”。因为它足够简单,与目前主流的 MVVM 框架非常相似,而且学习曲线非常流畅。它应该是开始使用其他更复杂和强大的框架的“垫脚石”。对于传统的web开发者来说,写小程序只需要注意以下两点:(1)小程序中没有DOM,请放弃“先获取DOM支付宝小程序开发,再操作”的想法DOM”。
前端最难的是前端web框架和类库太多要学。但是,小程序中的JavaScript是“裸奔”的,我们在web开发中常用的各种框架/类库都不能在小程序中使用。jQuery、Zepto、AngularJS、HightCharts、ECharts,这些都是Web前端学习中的大山,小程序都被“杀”了——小程序运行在一个JSCore中,本身不支持window和DOM Web 中的对象。一些 JavaScript 库仍然可以使用,但实际上没有必要,小程序已经提供了一个简单的框架和内置功能,以避免使用这些框架。例如,
你只需要掌握 JavaScript 和 CSS,原则上不需要学习各种框架和库。这无疑减轻了很多初学者的负担。其次,applet 本身就是一个为轻量级应用程序设计的平台。无论是开发工具、设计规范,还是API设计,都散发着一种“极简主义”的气息。您只需要从官网下载一个开发工具,即可立即开始开发小程序。没有复杂的安装环境,没有复杂的目录结构,没有复杂的打包部署过程。很多近乎死板的小程序规范无疑减少了开发者的工作量(没给你选择,自然简单)。关于对开发者的限制,仁者见仁,智者见智。有人喜欢它的简单,有人讨厌它的“不自由”。我什至认为,对于那些没有编程经验,想进入前端开发领域的人来说,小程序可以成为最好的入门平台。完全可以从小程序入手,通过小程序流畅的学习曲线,熟悉编程逻辑后,再逆向学习web前端庞大的知识体系,从而进入这个行业。处于早期阶段的小程序,自2016年9月22日发布后,短短3个月内就已经更新到8个版本,更新速度非常快。不过,2017年1月9日正式开放后,版本迭代速度逐渐放缓。预计正式上线后,小程序界面将逐步稳定。该小程序还处于非常早期的开发阶段,但其主要框架和API已经形成,不影响我们的学习。
本书无法保证出书前使用的API在出书后不会调整,这是我无法控制的。本书所描述的小程序的知识和行为仅在130400版本中经过测试和验证,不保证以后小程序会改变这些行为。事实上,从最初的内测版本到现在的130400版本,小程序不仅调整了API,还经常改变一些MINA框架的运行机制和行为,这会导致可以正常运行的代码突然出现问题. 需要重新调整。另外,本书中的Orange Can项目是一个接近真实项目的小程序,但还是有一定的复杂性,我不能保证不会有“任何”的bug。实际上,没有人能保证他们的项目不会有“任何”错误。我们能做的就是严格测试,尽量减少bug,一发现就改正。虽然不能保证书中的代码和API完全不会改变,但我会通过微信公众号、知乎专栏等方式与读者交流,并保持本书的在线更新。同时,橙罐示例项目的源代码将持续维护,以保证项目的正确稳定运行。截至本书出版,最新版本的小程序是0.14.140900。在130400到140900的版本变更中,没有再出现版本更新带来的问题,项目代码运行良好。
本书与官方文档的区别 本书不想成为官方开发文档的“搬运工”。除了一些非常必要的地方会引用官方文件的说明外,本书几乎不会大段复制官方文件。本书使用较多的官方API文档完成一个项目小程序制作小程序开发,对官方文档的主要内容进行了详细的补充说明,并附有文档内容的实证总结。官方 API 文档通常定位为工具而非教程的快速参考。当然,对于开发功底深厚的开发者来说,一个小程序项目只需要开发文档就可以完成,但通常需要很长时间。开发文档只告诉开发者有哪些能力可用,但如何使用这些能力需要开发者自己去探索。本书可以告诉开发者如何使用官方API来完成我们自己的业务逻辑,并在过程中逐渐熟悉官方API,从而达到小程序入门和自己开发小程序的目的。另外,目前小程序的开发还存在很多“坑”。本书力图为开发者提前踩点和填好这些“坑”,帮助开发者专注于业务开发,减少浪费在小程序bug上的时间。一本书永远无法取代官方的 API 文档。即使你想成为官方文件的替代品,这是不可能的,因为最新最全的信息总是由官方文件最先发布,而书籍总是会有一定的滞后性,这也是我在这本书中没有大量引用官方文件的原因。原因。本书的价值在于让开发者快速上手小程序,讲解小程序的各种特性,降低开发者的学习成本,快速上手开发自己的应用。
总的来说,官方文档还是很全面很优秀的,但是也有很多不清楚的地方。对于官方文档中没有明确说明的错误、遗漏或地方,本书将做详细的补充说明。建议开发者结合官方文档阅读本书。学习阶段以本书为主,文档为辅;而在开发阶段 系统定制开发 ,以文档为主,并辅以本书的补充说明。此外,官方还为所有开发者准备了一个非常详细的demo,大家可以在微信中搜索关键词“小程序示例”。官方demo源码下载地址:下载项目资源文件和源码。一本书很难把小程序的所有知识点都详细讲解清楚,也无法解答开发中的所有问题,应对不断更新的小程序版本更是难上加难。这是互联网时代。我们会尽量以书籍+网络的方式维护本书,并对小程序的最新改动进行代码修改,以保证我们的示例代码能够正常运行。读者朋友也可以通过我的微信公众号给我反馈,接收书籍更新和源代码更改。另外,我的知乎专栏会经常发表一些关于编程和互联网的文章。所有项目源代码、资源文件等内容将在微信公众号中提供下载地址。读者可以从我的微信公众号获取项目效果图和最新版本源代码。代码包括Orange Can项目的小程序代码和部分功能的服务器端PHP代码。● 微信公众号:小楼昨晚入秋 ● 知乎专栏:小楼昨晚入秋 ● 知乎ID:夏七月 读者可访问地址:(注意区分数字和英文字母)获取本书源代码.
如果您在下载过程中遇到问题,请发邮件至,邮件主题设置为“微信小程序开发入门与练习本资源”。本书如何阅读 如果你是一个有多年丰富开发经验的开发者,并且已经对小程序有一定的了解,建议快速浏览章节目录,找到你感兴趣的话题,然后只阅读本小节。如果你有一定的前端开发基础,但没有开发小程序的经验,建议从头开始Orange Can项目,深入理解书中的每一个开发技巧。建议先看各个页面的效果图,或者下载最新的源码。熟悉功能后,尝试自己写项目函数,然后对比源码的实现。也许你的项目代码比本书中的更好。如果你想用小程序上手前端,那么请先熟悉一下 JavaScript 和 CSS 的基础知识,然后把 Orange Can 项目当成一个真正的项目,实践一下你所学的 JavaScript 和 CSS 知识在做的时候。如果你遇到一些你不太理解的事情,试着去理解它。如果你真的不明白也没关系。先把它写下来,等你有经验后再回来。但无论如何,请务必完成 Orange Can 项目的文章和电影部分。如果您是纯技术开发人员,请直接从第 2 章开始阅读。一般的建议是,对于橙罐项目的文章和电影,你应该按照书本小程序制作小程序开发,逐步实现这两个核心功能;对于“设置”页面,您可以通过源代码“了解”本书的内容。
当然,如果你能打出整本书的每一行代码,相信你收获的不仅仅是小程序开发的知识点。另外,对于橙罐项目的 CSS 样式,建议开发者不要完全照搬本书的 CSS 样式。每个人对编写 CSS 样式都有不同的想法。本书不能保证所有的 CSS 样式都是“有意义的”,少数 CSS 样式是为了“防御性”而写的。重点是小程序相关的知识点和JavaScript代码。微信官方开发者社区 微信官方开通了开发者社区,开发者可以在社区中向微信官方反馈bug和提问。开发者社区地址:致谢 感谢我的老朋友蒋建明对本书提出的许多宝贵意见。感谢 Graphite Documentation 联合创始人陈旭为本书撰写序言。感谢清华大学出版社王金柱教授的支持,我“拖”了将近三个月才写完这本书。雷磊 2017 年 2 月 8 日
更多 >
本站声明: 本文章内容来源于互联网,文章内容仅供用户参考。本公司不能完全保证文章内容的准备性、时效性。如果因本文章对用户造成了任何损失或者损害,本公司将不会承担任何法律责任。如果涉及到版权问题,请提交到wikins@nbyuyuan.com