学习是需要规划的,是需要有个明确的目标以指导,不然很可能会陷入虎头蛇尾,达不成预想的效果。而且,对不同科目的学习,所处的阶段是不同的,阶段的不同决定了学习的内容,学习的方式,学习的目标都会有所改变。
在这里,做接下来6个月为做漂流书会所需要学习的内容和目标。该内容应该要随时间,实践推移有所调整,要隔断时间要回过来思考
目前阶段的所有学习都该以服务漂流书会为目标,他需要的就可以学,对他没有帮助的尽量避免。目前看有如下的项目需要
1.服务端技术选型。6/11
由于之前的java经验觉得不是那么好,而且对c++及新技术和性能有偏执,决定用rust做为服务端。计划每天3小时的学习实验,3周达到可以开始做漂流书会的后端开发的目的。学习的时候可以思考漂流书会需要的场景技术。
2. 数据库的选型。6/30
大概率会使用的技术是Mysql,避免分库分表的复杂性,如果场景分析会超过mysql的能力,可能需要考虑用更大的数据库。这里需要对支持目标做合理的估计和假设做决定。
除了mysql,我想elasticsearch也有较大概率会使用,因为搜索是个强需求,需要学习评估。
另外,不确定是否需要对之前的使用hbase经验做个总结或系统学习,我想如果漂流不需要,是不需要学习的了。总结可以安排做个。
除了这些自己比较熟悉的技术,其他的技术也需要根据场景评估下,数据库选型是地基,可以慢点,最迟在630之前要确定好。这个的选择要等漂流的业务架构确定后在考虑。
3. 跨平台的开发技术。 7/30
漂流需要的是一个跨平台的开发,可以肯定,最终的客户是以移动端为主,后端的管理是以web端为主,所以他需要一个快速的可以构建ios,android,web端ux技术,目前可能需要评估下flutter以及同事提供的支持。
4. 服务的运行环境。7/30
大概率用k8s+docker的形式运行,平时学习的时候可以考虑场景支持,也非常有可能使用更新的技术,保持开放性。如函数计算,api服务?
5. 服务的运维/运营 。8/30
要建立一套体系,可以支持开发和生产环境,并且可以方便的发布更新及做些平时运营需要的。如基本日志和监控。
6. 架构。 8/30
事物要长远发展,一定要有清醒的可维护的架构,这方面的能力是需要提高的。尤其要能可交流的文档。这是一个长期的过程,在真正的开发功能之前,这个是需要总结到位的。