反思——拓宽自我疆界
聊聊怎么想出来的
昨天信誓旦旦得开启了自己的框架思考,但是,今天我就反思出了问题。这个问题就是,如何把这个框架搞好。按照我的规划,这个框架是涵盖主要业务,又可以相互自我组装,同时又会以前端组件、服务组件、代码组件等多种形态出现。这是一个很大的生态,不可能由我一个人完成。如果真的只有我一个人参与,那等我搞出来了已经没有人用了。
怎么管理开源项目
这个问题,因为我最近的管理经验,让我感到有些不知所措。没想好怎么管,怎么让社区里的人按照一个大方向前进。因为没有真的参与过开源项目,所以对于这一切真的是太陌生了。但是,相关的问题倒是想出来了一大堆:怎么管理人员;怎么管理issue;怎么管理方向;怎么管理代码。所以,先参与一个开源项目取取经似乎是一个不错的选择。
找开源项目
其实,这个时候,我想起来之前看过的一些帖子和文章。有一些提到过,参加开源项目。当时,我觉得可能就是去开源社区贡献自己的力量,让整个生态更加健康得发展。如今看来,参加开源项目,可能是作为一个独立的技术人员提升技术能力,扩大自我视野的一个捷径。开源社区,有项目——开源项目本身,有大神——社区的贡献者,有案例——这个开源项目本身的管理就是最好的案例,有反馈——开源项目被用户使用从而反馈出来的bug、功能问题以及性能问题,这些是多么宝贵的资源呀,而我以前没有参与,可能是怕伤自尊吧。就像我总是捣鼓着自己搞一个什么项目,而不是参与别人的开源项目给团队提出建议,或者亲手贡献代码。这样会把自己暴露在别人面前,失败、不足无从躲避。我不能再这样了,我需要直面自己,知不足才能进步,失败了才能找到成功的路,不至于在失败的路上越走越远。
说远了,回到找开源项目上去。说实话,我对于想找的开源项目有这么一个期待:
- 有用:参与半天弄个没啥鸟用也没几个人用的东西,那就不如自己折腾了,效果反正差不多。
- 和我有关:虽然我在java上基本啥都涉猎,但是也是有侧重的,所以,参与的东西不能离我太远,得力所能及嘛。
- 上手难度可接受:这个词我仔细斟酌了下。不能说上手比较容易,那样的没啥挑战,也不能说上手很难,那样估计还没开始就结束了。
按照这个吧,我找了找。首先,我排除了spring生态的东西,感觉自己还是比较怵,而且,它的架构太大,上手慢,而且即使有进展,也是很有限的。后来吧,我就看上了mybatis。我基本上一直在用,很重要。和我之前说框架里要写的东西也很相关。但是吧,我一访问官网,被墙了。这就很尴尬了,恰逢最近风声比较紧,各路翻墙工具纷纷牺牲。还是选个国内比较稳定的吧。于是,我就找上mybatis plus了。这个框架近三年在oschina排名第一,而且,功能实用,框架小巧,非常适合现在阶段的我。在我翻他的生态的时候,我还发现了一个单点登录服务。这我才想起来,其实,这种像积木一样的框架一直都有,只不过人家是以更大的架构存在的,我一直都觉得复杂,就没有去深究了。还是自我设限了。
总结
这事,现在基本定版了。然后,我想起来吴军老师在《谷歌方法论》中说的了。工程师做事情应当遵循两条线和一条线索。上面那条线,是科学的极限,下面那条线是自身的基线,连接两条线的线索是工程中的方法。而我之前,总是读完书之后把那些东西用在代码里,力求对代码的极度控制。现在想来,我也因此拒绝了很多能够大幅提升生产力的东西。使用现有的能够解决问题的工具,而不是自己从头开始,这是在提高自己解决问题的基线。这句话在听的时候觉得自己很符合,现在想来其实不然。现成的工具可能和自己的思想并不是一脉相承的,这里面有自己需要折中的地方——适应新的工具,也有需要反思的地方——自己的想法是否太狭隘了,为什么它会用那样的思路建设。思考至此,心里忽然开阔。这些年,我把自己推得太高了,是时候卸下包袱从头出发了。