码上开学项目规划,你要来看看吗?

休假半个月结束,吃得好爽啊,大家久等了嘿嘿。


码上开学项目规划,你要来看看吗?_第1张图片

码上开学项目规划,你要来看看吗?_第2张图片

码上开学项目规划,你要来看看吗?_第3张图片

码上开学项目规划,你要来看看吗?_第4张图片

码上开学项目规划,你要来看看吗?_第5张图片

码上开学项目规划,你要来看看吗?_第6张图片

码上开学项目规划,你要来看看吗?_第7张图片

码上开学项目规划,你要来看看吗?_第8张图片

码上开学项目规划,你要来看看吗?_第9张图片

码上开学项目规划,你要来看看吗?_第10张图片

码上开学项目规划,你要来看看吗?_第11张图片

码上开学项目规划,你要来看看吗?_第12张图片

码上开学项目规划,你要来看看吗?_第13张图片

码上开学项目规划,你要来看看吗?_第14张图片

码上开学项目规划,你要来看看吗?_第15张图片


休完假,码上开学 ( https://kaixue.io ) 也要正式启动了。


目前为止,码上开学目前已经吸收了 37 位作者,项目规划基本定型。没什么问题的话,明天我们就要正式启动了。在启动之前,会再给出一天的时间吸收意见,主要是来自志愿作者们的意见,但如果 HenCoder 的各位读者们有意见,也可以在这里提,我也会认真考虑。


以下是项目规划的原文,或者你也可以点击下方的「阅读原文」来查看。有任何的意见或建议,都可以在下方留言来提出。





项目规划(第二版)

Kotlin 和 Jetpack 作为两个项目并行推进。

原则

  • 专注「上手」。

    技术的学习是一个进阶的过程,这个过程也需要分步进阶的教程。我们专注于「上手指南」,只写上手所需要的内容;但对于涉及到的进阶内容,可以给出简单的解释。

  • 面向中国的普通 Android 开发者。

    因此,尽量不要对读者的既有技能有过多的假设。具体来说:

    • 所有样例代码需要包含 Java 和 Kotlin 两种代码(KTX 之类特殊的模块除外)。

    • 但文章作者不要求掌握 Kotlin 。如果有需求,Kotlin 代码可以由其他辅助作者代为补充。

    • 不对读者的 Java 基础有过多假设。

      所以,对于 Java 的 I/O、多线程、虚拟机等方面的内容,在必要的时候可以插播一段简单的知识补充,以避免出现「你在教我高级技能,可我连初级技能都不会」的情况。

    • 不对读者的计算机基础有过多假设。

      涉及到操作系统、编解码等计算机知识的时候,最好附上一个简单的解释。

    • 不对读者的英文水平有过多假设。

      文章中引用的英文文段,最好配上中文的翻译或者大意。

    • 对于 Jetpack 的系列,额外地:不对读者的 Kotlin 语言技能有任何假设。

模块规划

Kotlin

选定一个 Kotlin 方向的负责人,由负责人来划分模块。

Kotlin 的全面上手涉及到很多的方面,这对于学习能力强的人,是一个很自然的「学习 → 使用 → 遇到障碍 → 再学习」的循环过程,慢慢就熟悉了。

但对于大多数人,解决障碍是个麻烦事,因此我们如果能根据自己的经验,提前设计好模块规划,让学习者在阅读学习的过程中就迈过大多数将来才会遇到的障碍,对于读者会是很大的帮助。

但模块的划分是很困难的,这一点我还没有确定的想法,目前的思路是,由一个对 Kotlin 较熟悉的领导者独自把模块划分好,其他人给出修改意见,得出最终方案。大家有什么意见,也可以讨论。

Jetpack

  • 直接按照 AndriodX 的每个功能模块来划分。

    码上开学项目规划,你要来看看吗?_第16张图片

    和作者们分享:Jetpack 和 AndroidX 是什么关系?

    一个通常的直觉是,Jetpack 就是 AndroidX。但在 Jetpack 的首页上看到的它的模块划分(就是上面这张图)中,其中一部分(例如 Download manager、Animation & transitions )并不属于 AndroidX 的内容。

    我有一阵对这件事十分困惑,跟身边的人讨论也没有结果,最后只好跑去问了谷歌的人。我在问的时候也抛出了我的猜测:Android Team 有了自己的最佳实践构思,但 Android SDK 只能提供一小部分支持,这之外还需要一些工具库来做支撑,所以把 support library 进行扩展并重新命名为 AndroidX,最终把这些最佳实践一起命名为 Jetpack。我的这个猜测得到了肯定的答复。

    所以:

    不过,鉴于国内外普遍认为 Jetpack = AndroidX,并且这种观点大多数时候也并不影响技术讨论,因此我们在 kaixue.io 的文章中也继续沿用这种观点好了。

  1. AndroidX 是新版的 support library pack。

  2. Jetpack 是一个最佳实践集合,它是 AndroidX 加上一些 Android SDK 中已有的最佳实践。

每个模块都有一个或一组负责的作者。例如:Room 由小张和小王写,KTX 由小李写。

不同的模块之间基本上是互相独立的,所以多个模块的文章可以同时写(例如,Room 和 KTX 可以由各自的作者同时写,互不影响)。

对于互相有关联的模块,作者之间建立联系或者由扔物线作为中转连接,在需要的时候进行沟通和配合。

例如:LiveData 文章作者在写作过程中的某一段内容会用到 Lifecycles 的代码,可以和 Lifecycles 文章作者沟通「这段代码怎么解释」「由谁来写解释」「写完之后放在谁的文章里」这些问题。

具体计划:

  • 模块划分:

    • Kotlin 用自荐和讨论的方式,定出一位领导者,负责 Kotlin 的模块划分和后续的规划工作。

    • Jetpack 直接按照 AndroidX 的不同模块来划分,但依然用自荐和讨论的方式,定出一位领导者,负责具体模块的划分(就算模块已经划好了,总得有人拍板吧?还得有人决定哪些先写哪些后写哪些先不写吧?)后续的规划工作。

  • 人员分配:

    模块划分完成后,每个模块作为一个项目。由:

    作者、审阅者、辅助作者都由自荐和讨论的方式来确定。

    • 一位作者来编写;

    • 至少一位审阅者来审阅;

    • Jetpack 的文章可以额外配备一位辅助作者,负责把示例代码的 Java 版本转换成 Kotlin 版本。

  • 时间分配:

    • 每个模块的撰写时间是 28 天,其中 14 天是第一稿完成的时间,剩下的时间是审阅者审阅、和作者沟通以及修改、多模块之间沟通与配合调整和最终的发布格式调整的时间。

    • 每个模块的人员配置完成之后, 3 天内启动计时。

  • 写的时候严格遵守格式规范

  • 任何一位项目总负责人、文章作者、审阅者、辅助作者,在临时有事的时候(例如公司突然赶工一周),都可以要求暂时挂起项目,在自己有空之后再继续;或者如果你希望,也可以主动退出。十分不建议各位因为码上开学影响自己的工作和生活。

  • 任何一位项目总负责人、文章作者、审阅者、辅助作者,如果输出质量过低,都可能会被替换,但绝不会受到任何指责,并且我会尽量用最低调的方式来替换人员。

  • 大家记得,这是个无偿项目,所以每时每刻,请互相保持一些理解。

  • 如果有人中途希望退出,一定第一时间告诉我。

利益:

  • Kotlin 和 Jetpack 项目各自的总负责人,在 kaixue.io 会有单独的个人介绍页面,包含由扔物线写的一段介绍和一段自我介绍,其中自我介绍部分内容不限,自我推荐、招聘广告都可以,并且可以在今后无限期、无次数限制地更新。

  • 每篇文章的作者可以附上一段自我介绍,内容不限,自我推荐、招聘广告都可以,并且可以在今后无限期、无次数限制地更新。

  • 每篇文章的审阅者和辅助作者可以附上一段一句话自我介绍。

  • 每篇文章的作者可以附上一个自己的微信二维码(除非个人坚持不加,否则建议附上)。

  • 每篇文章的作者可以附上一个自己的收款二维码,微信 / 支付宝 / 微信加支付宝都行(除非个人坚持不加,否则建议附上)。






就是这样。有意见的话来提吧,或者问问你的同事朋友有什么意见。

你可能感兴趣的:(码上开学项目规划,你要来看看吗?)