如果纯粹以兴趣驱动,不考虑任何外部因素的影响下,我会去做什么项目?

  诱惑实在是太多了,但就目前的情况来看,最适合也最想做的是Remix高数。

  起因有两个:一是现在大部分人的生活严重依赖手机。虽然网上的风气是移动互联网已经过时了,但客观来讲,在现有的软硬件条件下,移动应用无论是在功能还是体验上都还有极大的提升空间。而且按照目前的发展趋势,也一定会成为某些领域的生产力工具。在很多场合下,我们缺少让这个平台发挥更好作用的软件。既然已经离不开手机,为什么不用它改进生活呢?二是手机的交互模式可以提高学习效率。相比于书本,App能带来动态的交互体验,甚至是基于实时反馈的针对性教学。整个过程完全可以做的像游戏一样让人全情投入。最重要的是,它会让枯燥无聊的基础知识变得生动起来,让高效学习成为一种快乐的正反馈。

  这是一个伟大的构想。如果成功,它能帮助到不计其数的同龄人,甚至推动教学方式的改进。这些想法在脑海里萦绕许久,终于相对完善的确定下来之后,就有了去做的价值。然而在残酷的现实面前,确定什么时候去做,以及如何去做等花费了大量的时间。但这是必要的,越是基础性和方向性的东西,就越需要慎重的权衡。

  我希望能把这个项目做成一个典范,无论是在技术方面,还是商业方面。关于Remix高数,我有很多设想,确定的东西会在这个文档中随时更新。

  首先,也是第一次更新最重要的,我决定在这个项目上使用最先进的技术选型和企业级的生产要求。

目前的计划:

  • 后端: node.js(运行时) + egg.js(服务端框架) + MongoDB(数据库,egg官方插件) + GraphQL(新一代接口思路,egg官方插件)

  • 移动端:Flutter (For Android and IOS at the same time, has almost everything needed)

  这样的解决方案,其实是从零开始的自主开发。不使用BaaS来代替后端,在框架的基础上从头开发整个业务逻辑。服务器端很简单,除了为App提供数据接口外,只有一个后台用于社区管理和数据维护。耦合度很高,几乎是纯粹的定制系统。但是这个模式一旦被证明可行,整个架构则很容易推广到其他科目上。也正是因为设计方案比较独特,所以希望尽可能一切可控,以便于高效的试错和修改。

  至于客户端,虽然选择了Flutter,但初期也只会推出Android版本(主要原因是本人暂时还没钱买Mac,没有IOS的上线条件)。但既然选择它,就代表着对这种跨平台方案的认同。大部分UI和交互都是公用的,也就是说,后期IOS版本上线时,只需要做一些平台相关的工作。

  这次的技术选型于我而言,就像对这个项目整体的描述一样——非常激进。主要的原因是,要保证最高的开发效率和企业级的稳定性。所以直接选择了认知范围内最先进的技术思想和框架。当然,这个先进是指更适合本项目,并非是对技术或者框架的评判。

  我在想一个问题,独立开发节省下来的沟通成本,是不是足以支撑得起一个人同步完成设计和各方面的实现呢?

11.02 更新

  日子过得太快啦,转眼大半个月过去了。一切都在兵荒马乱,轰轰烈烈的进行着。

  好消息是,我已经拿到了人生中的第一台mbp,适应了两天之后正式把开发环境迁移了过来。因为已经使用了一学期的deepin,上手基本上没啥难度,终端里很多东西都是一样的。之前一直看网上说mac适合开发,此言不虚。对于前端和客户端的开发来说,确实是既有Linux的方便,又相当的舒适好看。

  坏消息,或者说对于这个项目的坏消息则是,我再一次开始考虑自己计划是否有不当的地方。

  

(…未完待续)