timzaak / blog

8 stars 1 forks source link

keycloak 与产品 #45

Closed timzaak closed 5 years ago

timzaak commented 5 years ago

在遇到 keycloak 之前,我尝试玩耍了下 Openldap, 不管从 UI 上,还是易用性上感觉弱爆了。当时就想自己撸一个类似 keyCloak 产品出来,但思路是模糊的,产品最基本的概念也没整出来,而且由于懒惰吧,后续也就没了。

这半年一直在重写项目,算是有了结果,期间重构了几次,而重构的原因基本上是业务的内核逻辑不清楚,只是按照产品的术语敲代码, 然后崩掉了,各种复杂逻辑代码就来了。

今天花时间研究 keycloak 源码,再想想自己需要花多长时间能实现,一阵悚然。

keycloak 100w+ 行代码,1w+ 次提交。我就算每天极限输出一千行,再加上 debug/重构,怎么也得五年吧。而且工作这么多年,八千次的提交也没有。这半年重写的项目满打满算也没250次提交。就算用 scala 写,减半,也是需要两年半。

想了下自己,只能说:浮躁!浮躁!浮躁!

再梳理下 keycloak 的产品思路, 基本概念 清晰明了;实现多个协议规范,并通过 Adapter 等使其具有可拓展性。简直是开源产品的模范工程!

以后,不管再做什么产品,一定要先把基本概念写出来,然后在草纸上,梳理流程,最后再敲代码。工程只能帮你落实想法,但想法本身对与错,还是需要细细考量琢磨的(至于AB测试,在资源有限的情况下,忽略掉)。