实践贴:第一次开发小程序后的分享
错过
刚开发完一个小程序,这是小程序正式发布3年来第一次实操。
2017年初,听说微信将要上线叫“小程序”的产品,内心充满向往和猜想。当时正赶上公司在讨论学生产学结合项目问题,我感觉发现了新商机,当天晚上酝酿了一份方案,第二天就和老板探讨要如何开展。后来我离职了,之后也并没有这小程序上投入精力。
2017年以前我一直很遗憾,2013年微信推出服务号开放接口时没有投入微信营销系统开发。那时候因为还没有拼多多、有赞、微盟这些依托微信开源功能崛起的公司。互联网圈外的人都对微信公众号商城,互动小功能很好奇,很多传统行业老板都赶潮落,花几千块钱搞一个公众号,觉得很高大上。众多小公司用开源源码嫁接到新公众号就卖几千到数万元。
有同事的前公司,是四五个南方人在宾县开的公司,1500一个月的工资雇几个客服,通过搜索引擎广告接单,一年有几千万的收入。
2017年面对微信小程序的推出,对于深度研究过公众号开放接口的我来说,知道这又是一波好红利。然而对于一直为眼前的苟且奔命的我来说,这三年前在小程序方面碌碌无为!
这三年,我研究过很多小程序的商业模式和落地营销问题。但一直没有真正实践过一次!!!当然了,这这种碌碌无为也发生在任何一件新鲜事物上,包括短视频、直播及众多新生的新媒体平台。
相识
小程序开发基于web前端技术,对于具备开发经验的人来说没有太多难度。这次疫情工作生活情况大变,有了机会实践开发小程序。我分享下最近这段时间开发过程中遇到的新鲜事和随想。
现在除了微信,支付宝、百度、今日头条都有了自己的小程序。
今日头条小程序在抖音和今日头条app上都可以打开。
百度小程序目前已经和他的信息流、百家号、搜索结果相结合,听说百度小程序和国内其他十几家互联网小巨头比如携程、快手相合作,实现小程序联合,而今结果怎样并不得知。
技术方面都基于web技术,都要用到JavaScript,甚至都是一样的框架思想。
因为我用用小米手机,因想要个型号完善一下手机功能,前几天研究了小米的“快应用”开发文档。就是小米左侧和下面负一屏的那些小图标,打开类似app又不是app的应用。
他的“快应用”也一样是使用web前端技术编写。其实“快应用”可以说就是小米MIUI的“小程序”。
微信小程序2020年之前只简单看过他的开发文档,同时也没使用过vue,只知道vue是一个JavaScript非常流行的框架。对于JavaScript的这种自下而上用法还是觉得很新奇。可能只是先入为主的原因,之前我对JavaScript编程思想还是比较狭隘。
请输入图片描述
思想
说起编程的开发思想的先入为主,我是先接触的前端,而后php的cms系统、php、数据库、网站开发、微信公众号开发、app开发、python数据分析、vb、再到微信小程序和vue,中途也了解过c++、安卓、java。每一次接触新的技术都会觉得“原来一切可以是这个样子”,发现之前对于技术的理解确实有些狭隘了。
很多次有人问我程序开发对个人有什么要求?开发难吗?不同编程语言有什么区别?
我都是寻找其中的共同点,笼统的概括,说做程序都是数学,编程主要靠逻辑思维和想象力,就是将人的逻辑用程序表达出来而已。
我觉得这样的回答是客观的,简要而又全面,很酷!
但其实把程序开发说的细化一点,说一说不同程序开发的区别,不同思想给人的启示,也是很酷的一件事。
2014年第一次接触微信公众号开发文档的时候,那时候第一次接触“接口”概念,当时的编程水平只停留在网站开发阶段,编程思想也就是前端、数据库、服务器这三个纬度,看微信的开发文档觉得简直是天书。
回想一下,那时候其实php程序员对于微信的接口分为两大类:
第一类,和我一样,之前没有进行过接口开发,对接第三方平台这类工作。
第二类,之前做过接口开发,比如硬件开发,自动化开发,医疗设备开发,或者淘宝接口开发。
第一类无经验的开发人员,多会觉得微信开发接口很复杂,觉得高大上,使得大部分的人都被拒之门外。
第二类会觉得稀疏平常,没什么了不起,同时也没勾起什么兴趣来。导致也傲慢与大意使其大部分程序员也被拒之门外。想必这也是2013、2014年从事微信商城开发的公司并不太多,直到四五年后才轮到拼多多把各种花样玩个遍。
所以对于一项新技术或者新商业模式的出现,能以一颗永远好奇的态度,投入点精力研究总是好的。就像是现如今大部分商城、app、软件服务公司、上游到小米这样的再开发安卓系统,下游到“客如云”这样的终端收银设备、电子秤。都有了强大开放接口。而互联网从业者们并不知道,很多技术与商业模式的出现都是四五年后才会广泛普及。这使得错失机会的我们来说倍感惭愧。
傲慢
随后的几年“玩弄”过几乎所有微信开放的功能,我也扬言每一个细小功能我都能写大量文章、出课程、编写出各类花样。显然我后来只是想想、说说罢了,没有去做。
2017年开始接触app开发,再一次满足了我的好奇心,觉得好玩的事情又多了许多。
关于手机app开发和其他开发的相比,要说它没有区别,其实确实都是数学而已,都是将人的思想用程序来表达。有人问我某某功能能不能实现,我都是高调地说,只要人能想明白的功能,程序就能实现。
但就像人活着每天就是吃饭睡觉一样,完全可以在看似一样的事情中挖掘出更多不同来,从中寻找出不同的快乐与意义。这也正是很多高端程序员都对艺术痴迷,甚至可以在很多程序设计中看到艺术的美一样。像苹果创始人乔布斯就是很懂艺术,听说他研究过中国的书法,现在用苹果的笔记本写下这些文字,也真是觉得苹果电脑的设计确实是个艺术品。
升级
正式参与app项目是2018年加入的外卖平台公司,从事产品经理。一年多的工作并没有什么成效,但个人来讲收获还是很大的。我认为退伍后2018年收获最多,当然2019年比2018年还要多。
单纯在技术角度来讲,app开发采用接口请求、json数据前后端交互、json解析渲染前端、版本管理、推送处理、系统权限、蓝牙设备对接、系统兼容性这些方面和web开发说不同的逻辑。当然这对于从安卓或ios入门编程的人来说觉得一切都“事情本该有的样子”,从web前端入门编程的来说觉得很有意思。
从此以后考虑程序的角度要更多具备空间立体思维。但从考虑的要素来讲,管理app项目比存web多了不值10倍。所以管理app项目非常操心,再加上还要考虑服务端问题、数据库问题、兼容问题、bug检测等,绝对会让公司成本越来越多,并且还会存在很多的隐患。也奉劝那些没事就考虑找个外包公司开发一个app的个人和企业,打消念头,慎重考虑。
要说乐趣,就好比之前玩的是跳棋、动物棋,这回终于能接触到象棋围棋来。工作丰富了许多,也有种掀开锅盖看到美食的感觉。
app项目除了这技术和编程思想上更加具备立体感以外,其实是让我知道了一个互联网产品的运营,团队管理实在是太重要了,远远超过程序本身。
不过程序其实也是团队管理的一部分,团队管理不到位是组建不起来一个技术团队的。至于管理有多重要,不亲身经历确实很难体会的到,就像没有吃过苹果的人是想象不到苹果的味道一样。
不过不得不说app处理兼容性很麻烦、测试很麻烦、版本迭代很麻烦、修复bug很麻烦、数据库优化很麻烦、服务器负载均衡很麻烦、ui设计细节非常多。而这些都是不做不知道的,这也大大增加了各个公司后续的成本。
当然更难的是如何让技术紧密的、精准的配合自己的商业模式。这点最重要,难度也最大,正所谓方向比选择更重要。
总之app产品的运营管理成功率是很低的,难度方面绝对是不做不知道。
发现
这份工作对于我个人来讲没有太多经济收获,但艰苦的过程还是值得回味的。让我有了较为丰富的项目管理经,对编程思想、项目管理等方面有了新的见识。过程中也想过每一种技术与模式存在的必要性,也想过如果有另外一个人类世界,一切会不会有全新的模式出现。
比如现在绝大多数的网络公司都是以自己的app为载体,所有的数据调用都是受他本身的布局UI限制的。比如知乎app、和快手app,我知道它里面有很多我未发觉的内容,但一切都被它平庸的搜索框和脑残的推荐功能所制约。有一种院内春光无限好,但怕红杏出墙来的感觉。但能不能完全换一种方式来交互,比如对所有有开发经验的人开放一些接口,让所人都可以根据需求个性化的获取自己想要的内容呢。
比如快手,有时候我真想只看看某一类最火的视频,能让我快速、精准的看到,但同时必会因为看了之后一段时间全是相关推荐。我相信如果一切可以重来,那么不一定非要像现在一样,网络公司盈利就是靠把用户圈到自己的app里,承受其狭隘的UI限制。
我相信一切我们习以为常的事物都可以换个角度重新做一次,就好比微信小程序框架、vue框架就是打破了JavaScript以往应该有的样子,换了个姿势,新添了不少魅力。下面不谈太多商业模式方面问题,主要再说说小程序技术方面的问题。
契机
小程序算是一种新的终端、一种新的UI规范、一种新的交互逻辑。重点提到微信小程序,我觉得它最大的好处就是和微信的血缘实在太浓了,可以说它是微信的一个器官。
好处就是性能兼容性强,页面设计方面很多问题微信官方都考虑到了,不用考虑全面屏、分辨率等问题。推送问题基于微信消息,支付、授权登录、手机权限等微信app本身都做好了兼容问题。与其他小程序、微信公众号可以实现非常好的信息数据合并与共享。不用考虑太多系统层面性能问题,比如是否会杀进程,蓝牙版本支不支持等这类问题微信底层已经定了,就不用再浪费精力调试啦。版本管理方面不用考虑多版本数据兼容问题,其实是一个实现产品快速迭代的好契机。
当然微信小程序不好的地方也很多。任何网络技术都是一把刀,到可以切萝卜,和可以做雕刻绣花。微信小程序的出现是研发了一种刀,会衍生出很多特有的用途。
今天这篇文章我是想要分析一下微信小程序技术问题,但写着写着还是觉得一切技术都不重要。发现确实一切都是数学问题,虽然各有差异但本质相同。可任何技术几天可以学会,但其应用的模式、思想、对其态度问题却是一辈子的事。围绕小程序问题我会持续研究,会参与开发一些实用的项目,会研究一些小功能,不定期写一些相关分享文章。
分享
下面整理一下最近一个月,亲身实践小程序的开发后,值得像技术同人分享经验:
第一,如果时间可以最好每个人或团队要有一套自己的架构。包括设计规范,json规范,以及是否适用自定义组件、构造器这些常见的。整个架构交互逻辑最好是自己的,不要往上购买个其他人指望后修改。因为小程序框架本身微信团队已经尽力完善了,而我们还去购买他人框架长远来看麻烦会很多。
第二,小程序流畅度上我觉得能得70分,和精细化开发等原生App没法比,但比很多小公司粗糙设计等原生App要好些,小程序既然属于快应用,那么最好不要走极简路线,不要过于臃肿。
第四,关于拷贝他人程序最好是逐个小功能下载,我发现功能越深细分越能满意,如果复制别人程序太多没有好的,并且浪费时间不值得。
第五,其实设计到的各类计算,我觉得还是交给服务端较好。既然是“小程序”,“快应用”就要把它的“小”和“快”发挥到极致,无论是客户体验还是产品维护迭代都是。小程序代码里面放太多绝对会大大降低迭代效率。
第六,这产品属性上讲,我觉得应用可以分为功能目标实现型和消遣型,小程序就是作为某种功能的快速实现最好了,不要指望客户将其当成消遣工具。
第七,编辑器ctrl+s就可以加载渲染预览,有他方便的地方,但因为方便总这样去做,也会浪费很多时间,所以要节制。
第八,很多组件的默认属性( css)样式很讨厌,有的很有用,有的很讨厌,并且清楚默认属性的方法和网页web有所区别,记得陷入误区时候尽快搜索解决办法,不要用蛮力。
第九,我觉得自定义属性、构造器这些功能能方便工作,以及大项目的管理,但如果并非必要可以不用,太浪费脑细胞了。
第十,纯网页web前端程序员,没接触过vue,没接触过小程序和app开发的伙伴们第一次接触可能会觉得有难度,但不要放弃,迈过这道门就是一个新世界。愿我们每一天都鄙视又尊重我们过往的岁月。
第十一,因为小程序的不确定性不是特别多,所以遇到的问题多数都可以查到解决方案。我想遇到问题不用蛮力,寻求他人帮助是十分好的品质。
第十二,小程序属于“麻雀虽小,五脏俱全”,应用价值大于技术价值,所以程序员实践一下没有坏处。
对于产品经理,互联网行业创业者而言分享一下我的经验和感触:
第一,不要问小程序和网站、公众号、app有什么区别。有这个问题本身就是问题,这就是一个思维误区,会使我们陷入外在形式本身而忽略问题本身。我们只要把所有精力放到我们要实现什么商业目的,希望解决什么问题才是核心。
第二,小程序绝对比app成本低很多,没有app运营经验或项目管理经验的创始人,同时也不是单单想“圈钱割韭菜”的话,还是不要上来就花大价钱开发app。另外不要找外包公司!不要找外包公司!不要找外包公司!
第三,如果产品经理或创业者不懂技术,但要了解一下小程序到底能实现什么功能,公众号能有什么功能,各个平台,都有什么功能,这些功能都有什么用处,这个对于所有互联网创业者和产品经理而言都是有十分好处的。否则就会想是黑夜里开车不开灯,每一寸都是践踏生命。
第四,产品经理和老板的指责是把一切问题都梳理清楚,世界的现实复杂性总是远远超出我们的想象。很多逻辑要走自己脑子里先梳理清楚,越透彻越好。就像沈腾主要的《飞驰人生》一样,要在脑子里模拟赛道无数遍。这样开发出来的产品会完全不一样,会省去大量的开发成本。
第五,一般而言初始技术团队,开发一个适用的小功能,一个服务端、一个前端、外加一个ui设计就可以了。当然那种一个人可以即做服务端又做前端的最好,其实这样的一个人全包并不比前后端两个人做慢,两个人会浪费很多沟通时间。
第六,第一版本要极简,并做好快速迭代的准备,同时要讲流程梳理的越清楚越好。我见过太多的项目会犯两类错误。一是,第一个版本做的功能臃肿,二是,还没想好就开始做。发现过程中问题越来越多,浪费时间不说还很容易走错方向。功能极简且清晰,考虑周密且深远。这两方面有些矛盾,但做到了就是艺术了。
第七,新时代每一种技术、概念离我们并不远。每一个人快速入门都并不难。比如数据分析,90%的创业者们要么不知道,要么只知道模糊的概念。其实深度研究一下是非常有必要的,如果讲数据分析慢慢的植入到你的小程序中,会对运营和产品迭代非常有帮助。
第八,小程序给创业和产品运营带来了诸多好处,提供了便利性,降低了开发和运维成本,但这应该是使得我们讲更多精力和成本放到产品的商业模式本身上,让我们回归商业与管理的本质上才对。有了一把好的刻刀,我们考虑的应该是如何更好的发挥我们的技艺,而非觉得刻刀可以取代技术。
下面针对实体行业老板给予一些忠告,如果你是从事餐饮服务,教育,销售代理等等行业的,利用你要怎么样更好的利用小程序。针对这方面问题下一步是我工作的重点,将来会用更多的篇幅进行分享。这里只解释一些你们可能存在的疑问,及切实可行的一些忠告:
第一,如果多少能挤出一点精力,也不差一年几千块钱的前提下,那么可以做尝试。
第二,最好先想好用它来干什么,是作为课程分享、是纯销售、是商城、是对接现有工作流程还是搞促销。当然做好了一个程序这些目的都能实现,但最初往往是目标越单一越好。
第三,关于目的性,虽然传统老板可能对互联网并不了解,但还是要能清晰地描述出你自己用小程序到底要实现什么,杜绝一切模糊的概念。如果说不清还是别做了,因为你根本没想好,并且你也没想真正的做好,你的努力将是徒劳的。
第四,如果单纯想靠它卖东西,还是推荐直接买有赞、微擎这两家,买个最低配就好了,其他小公司盗版的便宜,但常常会被骗,浪费感情让你对其失去信心。
第五,如果是做课程的,那么我看很多公司用“小鹅通”的,购买基本会满足你的大多数需求。
第六,不要相信很多“大师”课程给你推销的商业模式或者程序。虽然你可能不懂技术,但具体实现什么功能这方面最好不要超过你的认知范围。我相信脚踏实地,并且愿意尝试新事物并存是一种非常好的品质。
第七,先考虑我有什么东西要用网络来卖,我有什么信息想通过网络来传播,我有什么营销套路想要如何实现,这些都考虑好了再从一点出发。如果你是饭店,想做一个每天餐品秒杀的功能,你非常清楚这个功能做完后你怎么配合这个功能完成服务,确定你会长期开展这样的服务。这时你完全可以单独要这样一个功能的小程序,发现确实很好用,对经营有帮助了再逐步拓展。
第八,如果是大公司比如餐饮连锁,那么最好要找一个有商业思维的且懂互联网的产品经理来负责。但要遵循快速迭代,清晰简洁的功能规划,有效果评估体系,最好做实践之前做好流程演示考虑到任何意外状况。否则多半会让你失望……
第九,如果你购买的是有赞或者微擎,里面的小功能都可以尝试一下,但要一个一个尝试。每个用好了都会是屠龙刀、倚天剑,但用不好害人害己。
第十,初期假设先不要想我做成了会怎样,而是怎么能有点小成效。比如你是一个理发店老板,如果你想的是以后我就用小程序预约,请购商品,客户选择发型等等,而后你就开始购买或者定制程序,那么你几乎一定会失望。产品功能哪怕出来了你会发现你的小程序只是一个空壳子,只说摆设,根本无法和你现在的流程对接。你甚至会发现上传发型图片都是一件很难的事情,而预约也是摆设,完全不实用。所以现实的从一点入手,想一个小功能如何实现,这样一步一步完善。你才会领先于同行业发展。