按照我们的计划,PCL CE 已经步入生命周期的后半段了。借此机会,我想谈谈我对这个项目的看法与收获。
起步
启动 PCL CE 项目的初衷非常简单————原版 PCL 更新速度实在是太慢太慢了,长期以来一直缺失很多关键功能。同时,GitHub 积压的 PR 也一直得不到统一的测试。于是 PCL CE 诞生了,它一开始是一个 PR Collection 的定位,但随着时间推移加入了越来越多的上游压根不做的东西。
一开始做这个项目其实也没啥大目标,基本可以说就是做着玩的。后来我做了个宣传片并发到了 B 站上,没几天就拿到 50w 播放,完了还涨了一堆粉,我才意识到这东西真的有很多人看得上。后来我们接入了 Mirror 酱,发现一个月的收入可以 cover 我们的很一部分支出(当然远远不够垫 Pysio 大佬赞助的那些云服务 Orz),这时候我们基本打算认真把这个项目做下去。后来 Mirror 酱的日活回报其实也说明了这个软件有很多人一直在用。
问题与解决
随着项目开发一步步推进,也有很多问题慢慢显现,技术与非技术两方面都有。
技术方面,Visual Basic + .NET Framework 的上古技术栈实在是难以维护,性能也比较烂,于是我们先是把整个项目搬到了 .NET Core 上,后来又借助 AI 神力成为天才程序员一口气把 VB 代码全部干掉变成 C#,以期保证项目长线发展的可维护性。
非技术方面,那支宣传片发出去以后,有大批用户涌入,我们得分出很一部分精力用于社群运营。由于当时人手不够,用户群基本上就可以和全体开发者 Face to Face,大家每天都挺忙的。
技术方面的问题我们当时尚且应付的来,不会只要边查边学就完了。但非技术方面要考虑的可就多了。用户规模不断扩大的另一面,就是有很多「小白用户」也一起进来了,这导致用户群坐堂的管理员不得不面对许多低质量反馈与搜一下就能得到结果的基础问题。晚些时候出于种种原因考虑加入的正版验证要求,也一度将 PCL CE 置于舆论漩涡的中央。
好在,不久之后,团队就加入了一大批人,我们得以分出一部分人手专门处理社群运营问题,而另一部分技术比较优秀的继续专注于开发工作。同时,更严格的正版验证要求也在客观上挡掉了一部分低质量反馈与神奇的问题。
为啥「跑路」
一开始我们打算一直把 PCL CE 做下去的。但为啥又决定跑了呢?除了「热情消退」以外,主要是以下几个问题:
许可证
这个问题在做决定的过程中十分关键。
PCL CE 是 PCL 的一个 Fork,根据许可条款要求必须使用相同的许可证,但这个许可证的本质是上游开发者龙腾猫跃保留所有权利(All Rights Reserved),这意味着我们写的(归属于这个许可证的)代码的著作权其实不在我们手上。虽然许可条款说明了在遵守其规定的情况下不会追究责任,我个人也还信得过开发者人品,但它从法律意义上毕竟无法保护我们的权利————总有一些开发者会有点膈应。另外,个性化功能受限与部分上游功能受限也是一个很难受的点。所以,就算要继续做启动器,我们也打算以另起炉灶的形式重新开项目造轮子。
我们也不是批评或指责上游,只是作为开发者,总会有点自己的想法与坚持。
项目规划
PCL CE 一开始的定位是原版 PCL 的 PR Collection,后来修改为「加入一些原版不会做的东西」。时至今日,PCL CE 的既定开发目标基本已经完成。接下来也大概只有 Bug 修复和一些重构之类的,不会有很大的功能更新了。换句话说,启动器能做的其实也就这点内容。
代码可维护性
虽然经过了大范围的重构,但 PCL CE 的一部分代码其实也已经堆成了石山。随着代码可维护性越来越差,这个项目开发放缓其实也是很正常的事。
展望
就我个人而言,我非常珍惜在 PCL CE 开发过程中结识的人们,不管是技术力爆棚的开发者还是有想法的用户都是。是你们的支持让这个做着玩的东西可以站到这个位置。我自己也在这个项目中学到了很多知识与经验,从开发到多人协作到社区管理都有。
虽然 PCL CE 已经没啥好做的东西了,但开发团队相互结识,现在足以启动第二个全新项目了。目前我们有了一些想法,有面向个人用户的日用小工具类的,也有面向开发者甚至是企业用户的基础设施类的。虽然现在可能还是新建文件夹,但也拭目以待吧。
未来可期。
If you enjoyed this, leave a comment~