跳一跳流行的时候,我知道了小程序,那个时候只是和同事在一起PK玩玩。半年后,因工作需要,用到小程序,我自己注册了一个账号,从此开启了我的小程序编程之路。
刚开始,很疯狂,连着轴的读了三遍小程序开发的文档。拿着微信小程序的demo看了又看,除了自带的获取用户头像外,然并卵,我还是什么都不会,就搁置起来。
我不喜欢前端编程,但是喜欢前端华丽的界面。在学习编程语言golang的时候,因golang官方的网站手机上无法打开,我在想能不能把它搬到手机上。开始有意向使用html5,但因域名服务器及不喜欢前端等原因放弃了。这个时候,云开发已经推出。仔细看了下,有云函数、云存储及云数据库等功能,我这么简单的逻辑肯定够用了。我开始构思怎么去实现我的想法。这次我是下定了决心,要做成一个出来看看(事后才知道,有些事情很难,但你铁了心去做时,还是可以实现的,个人观点,勿喷)。
构思之后:
操作流程:
最终实现的界面如下:
前端使用Weui库,Markdown解析使用Towxml库。内容资源复制的golang的playground,那些天全部手动复制golang网站上的内容到Markdown文件,然后再上传到云存储。等弄完之后,手都是酸的。Weui全部使用的模板,我真的对前端不感冒,想稍稍改下样式都做不了,所以就在weui demo的模板上改改内容。Towxml入手很简单,第一它是真的简单,第二我用到它的功能简单,第三他的demo我完全可以复制。就这样,敲敲打打,简陋的第一版就上线了。
在上线之后,我又新增了两个golang库,还是复制黏贴,我发现现在的模式这样做太累了。
先来看看我的代码
没有看错,我就是那样写的。一个章节对应一个page,一个page对应一个file。手酸是有原因的。我新增一个章节,就得做如下操作,在书籍的data结构中添加章节数据,新建一个章节Page,建好之后,复制其它原有章节的代码,改下文件名称。再把写好的文件上传到云存储中。
手酸是活该的(哈哈)事后,我还在微信文档社区分享了我的经验
https://developers.weixin.qq.com/community/develop/article/doc/000082f9790060a3c5885a7f95d013
这里说第一个技巧,利用navigator的参数。
上面的链接里面说的很详细,我就不再叙述。改完之后,我只需要在书籍data中添加我新的章节数据,然后上传章节的Markdown文件到云存储就可以了。改之后的小程序包小了很多。
现在的小程序还是有缺陷的,我只能添加golang内容,不能添加java内容。因为它逻辑上只有两层:章节->内容。不能添加新的书籍,所以小程序需要再改,改成3层,在现有的界面前再添加一个书籍列表,后端不变。
改造之后的界面如下:
第二层
在上线之后,我发现一个新的问题,现在的小程序不能维护,不能在手机上添加内容,我有一个好的想法,或者一段自己感觉很厉害的代码,想分享给大家或想存储起来,我做不到,并且现在的内容是我复制的,网上一大片,除了做个搬运工,其它什么收获也没有。我现在的需求也在变化,我用它主要当工具来使用了,当我忘了某个类型写法时,上去看一眼,这时,感觉少了点东东,就是搜索,我又重新构建了一次。这次,前端使用漂亮的ColorUI。
这是最后实现的界面:
这次主要增加了关键的几个特性:
一、可搜索
章节内容可以根据关键字进行查询,查找自己感兴趣的内容。
二、可维护
可以添加内容,目前只能自己观看,若要分享,还需要到后台数据库更改状态才可以,这样也是为了保障内容的质量。
这次实现使用了云数据库。
在数据库中实现书籍-章节-内容之间的关系,不在像以前通过在小程序端写死了。增加了灵活性。
书籍,章节,内容之间的关系简单说下,书籍有标签,标签和现有编程语言对应,这个标签的作用就是在云存储中设置前缀文件夹的。章节绑定书籍ID,章节名称可以被搜索,章节ID为内容文件名。云存储中的文件路径就是标签+章节ID,文件内容是Markdown格式,暂不支持其它模式,Markdown中链接不起作用,图片需要用网络图片,且能访问才行。
因为没有文采,所以有点老太婆裹脚布 —— 又臭又长,构思了好多天,总感觉能写出很多东西,当落笔时,发现脑子里灰的。不管怎样,终于写完了。有志者事竟成,有了想法,Just do it!
辛苦了,小程序生态越完善码农我们过得才会越好
想法挺好的,刚试了下我提个建议,在每一章底部加入“下一节”按钮,现在看完要返回才能进入下一节