自身开发库的积累.
自身的开发库, 肯定撇不开开源库, 然后, 将开源库抹去痕迹成为自己的库, 那也是不道德的, 也没有必要.
但是开源库, 如果不需要定制的, 直接依整maven的lib库, 肯定也不能完美满足自己的需求, 这个时候就需要定制
定制分小范围修改, 大范围重构性质修改.
- 小范围修改
一般是想与原仓库保持跟踪. 自己的修改另建一个分支, 要么PR到主库, 没法PR的, 那就放自己的fork里维护着.
这里就会出现一种情况, 主工程使用一个git跟踪, 各模块另有git跟踪, 主工程里的git又不想重复跟踪各模块的代码. 那么要怎么维护呢?
当然各模块自己新开发的代码同样也可以使用git单独跟踪, 这样一个场景是符合大团队, 多人合作开发的. 同样也跟组件式开发理念相符合. 最好是每个模块都可以单独运行, 也强制解耦.
这样的一种模式如何管理呢? aosp的项目就是这样模式, 我就要是借aosp 的项目管理手段来积累构建自己的开发库.
- 大范围修改
就直接另开一仓库维护吧.
前置技术
repo, git, python, shell, make, gradle
每一项技术给一份简明的介绍与操作指南, 更说细的教程与源码分析, 征求提交.
提供一个提交模板, 一是用来记录作者信息, 二是方便后续使用工具做信息汇总, 就像markdown 自动生成目录那样, 这是一份doc模板.
呼吁开源
像左耳朵耗子(陈皓, codeshell), 王垠, 云风, Milo Yip 这样的人, 不管有多少人黑, 黑的是还是不是, 都不影响他们对开源界做的贡献, 不影响他们善良的光辉.
使用git, linux一样的开源协议.
开源确实是促进人类共同体的一部分.
实现自身价值, 照顾好家人, 帮助善良的人, 为族群发声, 为国家争荣誉.
任意巅倒次序的人, 一般都不值得信任.
以自己的经历证明, 实现的过程确实是这样的. 虽然我还只是在第一步的路上.
但是这些不影响制定目标. 我的目标就是要促进人类进步而努力. 减少知识获取的门槛, 让更多人一起进步. 进步的人多了, 思想才会产生更高形态的进化.
打破开源的魔咒
开源是开放自己写的东西, 而不是将已有的开源重新实现一遍. 不要因为维护所谓的帐号, 强行开源一些重复的且无价值的东西.
newbie经常就会有这样的焦虑, 不管是在学习, 还是实现书上的练习, 或者看标准库的源码, 仿佛都是在抄抄抄, 我能开源什么呢?
学习是一件积累的事情, 急不得, 开源本身是一件输出的工作. 没有积累, 何来的输出, 靠天马行空的想象, 那是不靠谱的. 这就像教父中说的,先实现自身的价值, 才能去帮助善良的人.
不管是哪个行业, 抄是必免不了的, 想什么领域都想打上自己的印记, 这是异想天开. 所以, 前期老老实实地吸收前人已经探索过的知识. 等知识积累到一定的程度, 创新是自然而然的事情. 不满他人的设计, 实现, 在他人的基础上修改, 就是微创新. 微创新积累的够多了. 就是革新.
那么前其总得有一些驱动力, 加强练习基础能力: 如写作能力, 阅读能力, 口语表达能力, 这些都是后续输出的基本能力. 而且newbie在学习时候的困惑也是很宝贵的, 将之记录下来, 分享出来, 也方便后续的布道者探索出一条更加容易传播知识的道路. 设计出更加合理的学习路线.
因为, 人是健忘的, 很多在学习过程中的困惑, 等到后来解决了, 再想回过头来分享, 很容易就忘掉当时的思路. 所以, 教程经常给人一种, 易知, 显然可得的感觉, 但是这样对于新手来说是很不友好的.