暑期实践:“林里寻物”小程序

前言

本次暑期社会实践,我加入了北林寻物项目组,对“林里寻物V1.0”小程序进行了内容的丰富、修改与页面重构,编写了“林里寻物V2.0”小程序。虽然身为计算机相关专业的学生,但我还尚未接触过微信小程序的开发,而且我没有团队项目开发的相关经历。所以这次暑期社会实践的经历对我来说可以算是一次全新的体验。

前期准备

为了提升自己的微信小程序的开发编程能力与方便在实践中直接上手操作,我参考了各种文献与资料,在项目启动之前便学习了微信小程序开发的相关知识。由于在专业课上已经学过WEB前端开发,所以对微信小程序的学习并不算很难。在微信开发者工具中,wxml、wxss和js分别对应了WEB前端开发里的html、css和js,而json相当于页面配置,决定页面文件的路径和窗口表现、设置网络超时时间、设置多tab等方面。而相比于WEB前端开发,小程序的优点在于开发门槛低、难度相对较小,以及克服了不同系统或手机版本的不兼容性。并且可以通过小程序自身封装好的一些组件和API,再配上Lin UI中已经封装好的组件进行开发,同时微信小程序有官方的参考文献,使得微信小程序的开发更加容易上手。所以对我而言,微信小程序开发的代码编写并不算一个难点。
        对我真正的难点在于团队项目的开发。我们团队采用的是微信开发者的代码管理作为软件项目的托管平台,因此便要求团队成员掌握Git的相关知识,以便于多人开发。由于我没有团队项目开发的经历,与团队成员一起开发让我有些不适应。项目启动前期,我经常打开微信开发者工具直接编写代码,所以导致了我因没有推送到远程仓库和从远程仓库拉取最新的记录而犯下不少错误。痛定思痛,我专门学习了一些Linux操作系统的命令,以便于对Git的使用。皇天不负有心人,随着项目的进行,我也养成了先拉取再写代码的好习惯。

遇到的问题

当然,在开发实战中,我也遇到许多问题。
        最头疼的莫过于JavaScript的异步问题。作为一名ACM集训队的成员,早已习惯了C++的编程模式,更不用担心什么异步问题,而JavaScript的异步问题让我十分头疼——例如,使用用canvas做的海报时图像总是不渲染到前端、好人榜的头像时有时无、总是有些数据调用不了、排序时未按所需要求排序。为此,我学习了async、await等将异步转化为同步的方法。async函数返回的是一个Promise对象。async函数(包含函数语句、函数表达式)会返回一个Promise对象,如果在函数中return一个直接量,async会把这个直接量通过Promise.resolve()封装成Promise对象。而await表达式会暂停当前async function的执行,等待Promise处理完成若Promise正常处理,其处理结果作为await表达式的值,继续执行async function。
        学习的过程中我时常会有疑惑,但我并没有因此放弃,而是自己编写了几个简单的小程序,以便于自己更容易理解,毕竟实践出真知。回到“林里寻物”小程序的编写中,我便发现其实异步问题没有我想象中的那么难。随着编译通过,彻底解决了这些异步问题时,那种骄傲与激动感油然而生。
        此外,一些BUG的出现也让我头疼不已。
        1、使用canvas做海报时遮罩层会出现穿模问题:需要将遮罩层的catchtouchmove属性设置为true。否则即使出现海报,依然能够滑动页面。
        2、下拉刷新时刷新页面无法停止:对于下拉刷新,微信设置了下拉事件 onPullDownRefresh,在事件对应的函数中请求一次最新数据即可,如果默认动画没有显示,可能是和窗口背景色一样,重新将提示动画设置为另一种颜色模式即可。数据异步请求结束之后要调用动画结束函数wx.stopPullDownRefresh,否则动画会一直出现不停下。
        3、Lin UI组件无法使用:一些Lin UI组件需要在所在的wxml文件下加上特定语句。例如要启动标签时要加上<l-action-sheet bind:linitemtap=“linItemtap”/>,否则无法启动。
        4、·搜索页面未输入内容点击证分类目录会显示全部的物品:未考虑所有的字符串都包含””,因此搜索””时会出现所有内容。需要对搜索””时特殊判断一下。即若搜索的内容为””,则continue。
        ……
        虽然不是什么严重的BUG,但还是告诫我编写程序时不能过于随意,要大胆同样也要谨慎,微小的细节也不能忽略。

结语

林里寻物,是我第一次参与团队项目开发。通过本次社会实践,让我对微信小程序的开发有了重新的认识,也让我体验到团队合作开发项目的乐趣,同时,也增长了我对编程的喜爱。总之,这是一次收获颇丰的暑期社会实践,让我对以后相关方面的工作有了一定的了解,受益匪浅。

下图为“林里寻物”二维码,欢迎各位大佬莅临指导!

“林里寻物”小程序——暑期实践心得相关推荐

  1. 小程序学习 - 02 微信小程序案例实践

    案例实践 创建一个页面,展示请求接口获取的数据. 申请接口 测试用接口可以使用: 自己开发: 例如使用 Express 模拟接口(Mock API):例如 rap2 第三方接口 本例使用 和风天气开发 ...

  2. 新闻资讯小程序开发实践

    新闻资讯小程序开发实践 在腾讯小程序上线一周年之际,公司又决定把App产品部分内容在小程序上实现.就在小程序刚上线的时候,公司也有一款产品进行了小程序的研发,但后续没有持续的维护.这过了一年的时间,微 ...

  3. 腾讯在线教育小程序开发实践之路

    前言: 小程序是一种新的开放能力, 开发者可以快速地开发一个小程序,便可以在微信内被便捷得获取和传播,同时具有出色的使用体验.随着近两年来小程序风口的爆发,越来越多的开发者.企业开始接入小程序,那么在 ...

  4. 微信里的小程序怎么制作

    自小程序普及以来,除了公司企业,很多的个体户商家都会想了解微信里的小程序怎么制作的,毕竟小程序能解决很多经营上的需求.那么就给大家讲解微信里的小程序怎么制作的流程,希望大家对此能有了解. 流程一.制作 ...

  5. 区块链软件公司 区块链怎样在各个职业里担任小程序的人物?

    区块链软件公司 区块链怎样在各个职业里担任小程序的人物? 现在区块链在职业发展的初期,但它已使用到一些职业中,并展示了巨大的优势.未来的使用前景更是不行估量! 并不是每个职业都需求区块链,而一些职业在 ...

  6. 对象存储OSS(微信小程序直传实践)

    对象存储OSS(微信小程序直传实践) 一.配置Bucket跨域访问 客户端进行表单直传到OSS时,会从浏览器向OSS发送带有Origin的请求消息.OSS对带有Origin头的请求消息会进行跨域规则( ...

  7. 小程序工程化实践(上篇)-- 手把手教你撸一个小程序 webpack 插件,一个例子带你熟悉 webpack 工作流程...

    本文基于 webpack 4 和 babel 7,Mac OS,VS Code 小程序开发现状: 小程序开发者工具不好用,官方对 npm 的支持有限,缺少对 webpack, babel 等前端常用工 ...

  8. DingTalk「开发者说」|钉钉小程序开发实践

    移动Web的特点   钉钉小程序开发的应用分布很广泛,下面列举了四个常用的钉钉小程序:钉钉投票.传图识字,以及集成在钉钉客户端中的自定义平台和考勤打卡. 通过对比桌面设备,移动Web的特点体现在以下三 ...

  9. 微信小程序总结总结心得

    今天小程序项目完结了,总结一下自己学习的个人心得. 首先从官方文档给的框架说起,微信小程序官方文档给出了app.js, app.json, app.wxss. 先从这三个文件说起. - app.js ...

最新文章

  1. [QA]Python字节码优化问题
  2. HDLBits 系列(10)(Mux256to1)多路选择器的固定思维,你别想太多!
  3. android标题 折叠效果,Android TextView仿微信可折叠效果
  4. ZeroCopyLiteralByteString cannot access superclass
  5. Python 懂车帝全车系销量排行榜
  6. bzoj1131: [POI2008]Sta
  7. SpringMvc-@ModelAttribute注解
  8. Facebook全面实施GDPR 用户Pages页面被随意锁定
  9. unity3d烘焙教程 持续更新中【2020】
  10. 数学建模学习之模糊评价法
  11. SVM-支持向量机算法概述
  12. Windows 10升级无法选择保留个人文件、设置问题解决
  13. 百度CTO李一男:未来五年电子商务是关注重点
  14. 手游服务器微信互通,9月14日部分服务器数据互通公告
  15. Android方法数methods超过65536
  16. 机器学习苹果识别——python+opencv实现物体特征提取
  17. 快递e栈控制台版实现心得
  18. grabcut利用matlab如何实现,matlab_grabcut-master 用 实现了 的图像分割的源代码供参考 OpenCV 272万源代码下载- www.pudn.com...
  19. OSPF的NBMA环境建立邻居及排错,理论+实战讲解,干货分享
  20. w10计算机无法打印,win10提示“无法打印 似乎未安装打印机”怎么办

热门文章

  1. javascript面向对象——Math对象
  2. IntelliJ IDEA学生免费申请 遇到的一些坑
  3. java搬砖问题流程图,搬砖问题 c++
  4. python之路--Day1
  5. python模拟按键网游_Python实现windows下模拟按键和鼠标点击的方法
  6. 【Android的从零单排开发日记】之入门篇(十六)——Android的动画效果
  7. word中插入excel文档(以图标的形式)
  8. java版真女神转生系列_《真女神转生》适合新手融合的仲魔表
  9. 广联达 BIM5D 云平台---《建筑信息模型标准》解读
  10. 安装完CentOS 7 后必做的七件事