一:从源码管理聊到一体化学习环境

一:从源码管理聊到一体化学习环境

2021-01-15  程序员LIYI

,阅读约需 7 分钟

这篇文章属于 我在极客时间录课的故事 的一部分,单击链接查看所有内容。

image-20210316140530180

昨天晚上忙了2个小时,不对,确切地讲,是今天凌晨忙活了2个小时,终于将《微信小程序全栈开发实战》所有已发布的源码链接,都在评论区发布了。今天早上起来,我看到大约165条评论被纳为精选。

现在读者看到的源码链接,是这样的:

每节课下面都有一个源码下载链接,如果想了解某节课对应的源码,直接从这个精选留言下载就可以了。

自己犯下的错误自己买单 #

昨天从零点到凌晨1点半,我干到了97课,评了93节,我是从171课倒数往前评的。有点困,就想去睡觉,刚和衣躺下,一想不对。现在这个点正是程序员们学习的时候,想我20多岁的时候,不都是这个时间点披星戴月写代码吗?倘若有人此时学习,因为我未及时置评放链接而抓耳挠腮,我罪过不是大了。

于是我又爬起来,从凌晨1点半干到2点半,终于将所有课程的源码链接都评上去了。这样一来,每节课读者只要看一眼评论区第一条置顶的评论,就知道这节课对应的阶段是哪个,不必再去仓库里费心查找了。

我在源码管理上犯下的迷糊 #

如果你问我为什么对这件事这么上心,是因为源码没有贴上去吗?

不是。源码都在仓库里。因为我第一次录课,经验不足,在源码管理这件事上几番周折,走了不少弯路。

最早的时候在第2章,我用git.weixin.qq.com管理源码,这是微信团队整的git仓库。使用它每次下载源码都要扫码登录。就是下载一个源码,你让我登录干啥?github、gitee什么时候干过这事啊?

体验很不友好。很快,第2章没录完,就就把源码切到了gitee上。开始了章节号码+标签说明+课程名称的时代。

这个时期录了十几课,后来考虑到在已发布课程的目录上,有3.1、4.2这样的章节编号,于是到了第3章,标签说明与课程说明我犯懒就去掉了。我心想,既然每节课都有编号,那直接读者带着课程编号找源码就好了。

但是事情不久就发生了变化,因为读者感觉3.1、4.2这样的章节编号混乱等原因,课程上只保留了一个从1开始开始统一编号和名称,不再有章节编号了。

而我后知后觉意识到这个问题的时候,源码标签当时已经变成了这个样子:

标签上什么都没有了,除了课程章节编号。这个章节编号在课程目录上还是不显示的。在这种情况下,读者怎么查找课程对应的源码呢?

所以,看到这个问题后我就睡不着觉了。有人可能会说,把源码标签修改一下,加上那个从1开始的序号数字不就可以了吗?

但是标签打上去就是历史了,是不能修改的。这也是使用标签的限制。还有人可能会质疑,为什么要让章节编号去掉呢?这个可以保留,但同时统一编号数字也应该保留,可能这样更好一点。但平台有平台统一的规范,所有课程只能用一个软件架构,不可能为某节课做定制功能的。所以这条路也是不通的。

再到后期,为了读者查找源码方便,也为我自己查找方便,我重新又严格要求自己,在打源码标签时,将对应的课程名称也打了上去。有了这个名称,即使章节编号对不上,依赖名称也能对上。

昨天晚上我自己过课,就是把课程自己听一遍,看看有没有问题,有什么需要改进的。能改进的点还是挺多的,最大的一点,我总觉得自己该减肥了。大脸把整个视频都盖上了,感觉学员看了都可能觉得我累。还有最重要的一点,就是源码。

我尝试做为一个读者,下载某节课对应的源码,从源码仓库链接点进去,切到tags标签下,150多个标签真让人眼光缭乱。基于上面我们已经聊到的原因,想依赖一个从1开始的10、30这样的统一数字编号,和一个课程标题名称,想从源码堆里翻出它的源码,真的不容易。

因为标签命名规则不统一,因为有的课程有源码标签、有的还没有,因为有的有标题描述、有的还没有,等等,想找一个源码真不容易。想到这里,所以我才睡不着了,即使已经很累了,1点半了又爬来了,把所有源码链接都评上去了。现在读者看到的源码链接,是这样的:

每节课下面都有一个源码下载链接,如果想了解某节课对应的源码,直接从这个精选留言下载就可以了。

学习是一个不断自我否定的过程 #

有人可能会讲,为什么每节课都要有一个源码链接呢?

这源于我自己的坚持。我觉得咱们人的学习,认识过程都是螺旋上升的,是像绕山公路一样盘旋而上的,并不是像电梯一样直入云霄的。基于这个认识,我认为在一个阶段,对应每节课,都应该有它的阶段性源码。

在《微信小程序全栈开发实战》这个课程里面,有明显的好几个地方是这样的:前面课程里面在讲另一个主题时,将一部分代码实现的并不完善,是有缺陷的,这个缺陷是在后面课程里面发现并完善起来的。我很高兴看到很多读者,纷纷在留言时留言,说某课某代码有问题,这说明他思考了,在真正的学习。

学习的过程,就是一个不断推翻旧认知、建立新认识的过程,这肯定是一个螺旋上升的过程,是一个包括了自我否定的过程。基于这一点考虑,所以课程里面的源码,一定要与课程对应,是阶段性的阶段。

并且我也鼓励读者在学习者,看当课对应的阶段源码,而不是git仓库里的最终源码。而当我发现,读者在学习时,不能很快找到阶段源码时,我就很着急了。

一体化的Electron学习环境 #

上面讲的是我在录课过程中,在源码管理方面犯的错误,接下来我想分享一下,如果我重头开始录课,我会如何管理源码。

可以使用分支,分支名称对应着从1开始的课程编号,在分支的仓库描述里面,直接放上课程名称。这样读者在学习的时候,基本只要用一个git指令就可以了:

git checkout $num

学习哪一课,就check哪一课的源码。这样多简单。

这样还有一个附加好处,分支是可以修改的,分支名称、分支描述都是可以修改的。即使课程编号有变化,也有补救的措施。不像源码标签,打了以后就不好修改了。打源码标签这种方式,适合大佬,非常有经验的大佬,十拿十稳的那种;像我等,适用使用分支。

此外,我还有一个“大胆”的想法。因为小程序与web都是在可以直接在页面上展示运行结果的,我们看一下微信的官方文档就知道了,我们可以将课程与源码,在网站上直接做一个对应,也就是说,我学到某课的时候,比如第100课,旁边自动就出来第100课的源码,并且直接就可以在线预览效果。如果读者愿意,还可以直接启动微信开发者工具,在本地进行修改。

怎么实现这个功能呢?做一个Electron客户端软件,既可以展示web页面,又能呼起本地软件,还跨平台,上面提供的功能大体都是可以实现的。这是一个立体的、一体化的学习环境。

唯一美中不足的是,Electron的编译简直就是一个噩梦,不然我真想业务找点时间写写这个软件。

我讲明白了没有,欢迎留言。

2021年1月15

后记:

昨天只算小忙。我有一次周未录课,因为那一周特别忙,白天一直给学生上课,根本没时间备课,周五晚上备课到第二天早上5点多,简单吃个早点,就打车去录音棚了。 不是我不想休息,也不是我贪财,是责任,答应的事,对读者做出的承诺,就要尽力做。 人都说老一辈人傻,有的人堵枪眼,有的人身体被火烧着了都一声不吭,有的人不怕疼用身体顶着炸药包炸桥梁。他们根本不是傻,是因为他们心里有信念,那信念像磐石一样不可动摇,为了维护信念,甚至不惜损害自己的健康,甚至牺牲生命。 我当然没有达到这种高度,但是如果我在那个年代,我很有可能就是那样的人。 包括疫情期间去武汉逆风支援的医生也是,我不是医生,我是医生我也会那样做。从这些年我干过的傻事来看,我肯定有这种傻劲。

最后,终于来到了这篇文章的重点,安利一下我们的课程。大家可以点下面的链接购买。运营的同学告诉我说输入一个推荐码(chengxu66)可以减 15 块钱,大家购买的时候可以试一下。

img

版权声明

与友分享

网站访问量(PV): ,你是第 位访客(UV)