读代码

2018-09-16  本文已影响38人  贾老师和他的朋友们

经常听程序员说不愿意看别人代码,比自己写花时间。我有不同的看法,读代码和阅读一样,可以开阔视野。读好的代码,是学习写代码的最快途径;读差的代码,是一种工作,也能快速提高能力,这个方面我做得不好,没有主动review,都是修改错误。以后要加强review的工作。

我的第一段读代码的经历是01年,我刚开始做java架构设计,好不容易有一本关于java web 编程的书,是jive bbs的例子,涉及几个常用的设计模式,其中单例的我一直用到现在,查询翻页也是来自他的设计,已经用了18年,也是时候改进了。

如果说jive让我入门,那么turbine则是我作为程序员最重要的基础。turbine的设计到现在我认为都是很经典的,虽然没有和strut一样成为流行很广的框架,但是他的设计思想还是很有代表性的。service的思路很简练,而且能够对mvc深入理解,mvc到现在仍然是应用最广的设计模式,尽管目前很多声音说mvc过时了,一些新的结构出现,但是不能否则mvc影响力和使用范围仍然是最广的。当时的基础比较低,jive让我入门,但是对于turbine这个完整的开发框架我还是很辛苦,因为我不是拿过来用,而是在基础上改,所以必须对他很了解。一定要坚持,迈出3步就不是问题了。那之后的几年是我写代码最快的,有两个原因,一个是turbine本身是一个完整的web开发框架,我基本上把关键代码都读了,也学会了几个常用的设计模式;一个是无知者无畏,敢写,现在看当时写的代码有点丑陋,尽管也运行到现在,我觉得基础还是不错的,非常感谢turbine对我的帮助。

之后一直做业务,一般的事都能应付了,大面积读代码很少了,最多是一个个片段,这种不是技术,是应用层面,也非常重要,互联网让开发变得容易,变得高效。说到这里,我非常感谢写技术文章的人,论坛中回到问题的人,他们创造了知识食粮。我却没有什么贡献,深感惭愧。

写上面这些话的缘起是昨天晚上读一段别人的代码。我一直认为自己对sso很理解了,还写过一篇jwt的文章,收获几十个赞,所以写个sso中间件应该很快。但是真正写起来,却发现自己的理解不成体系,是应用层面的,而且现在写代码没有10多年前快了,当时有些初生牛犊不怕虎的意思,现在考虑的比较多,不想再自己写,应该以某个流行框架为基础(spring是我们公司未来主推的技术基础),然后有成熟的尽量使用,因为这样可以保证技术的连续性,更重要的是减少对新员工的培训。之前读了xxl-sso的代码,xxl的特点是思维清晰,我用了他的xxl-job,也分析过xxl-conf,后来转到百度的disconf,昨天又计划用携程的那个,忘了名字。xxl给我的启示是逻辑思维清晰非常重要,细节可能不够好,但是至少能做出一个条理清晰的东西,然后再打磨也有空间。昨天晚上主要看青豆的kiss,把主代码看了一遍,才真正理解kiss,的确可以说是一把瑞士军刀,之前一直没有真正理解kiss是什么,尽管文档看了好几遍,还是读代码最直接。即时我不采用kiss,也会在kiss的基础上改写。

希望给其他程序员一些帮助,读代码,很重要,很高效。

上一篇下一篇

猜你喜欢

热点阅读