早上上班,路上走时,忽然想起不久前在Q群里数人为一事相争。
大意就是Hibernate,Mybatis等ORM框架哪个好用,哪个更值得学,哪个更好云云。
不久又杀出一派,说这些框架都不如直接JDBC,一条SQL语句搞定等等,支持其说者甚众。
然后变成用框架与不用框架之争。
混战中一人抛出一段话,前排提示,到重点了,他说:
“以前那些用框架的项目很多都没人管了,JDBC写SQL的老项目还有人在维护!”
我深觉此君一语中的。
略想一下,现在叫人去维护一个Struts的Web项目,他确实没什么热情,他觉得为什么不让我写Struts2,Spring,SpringBoot的,要搞这些时下流行的。
所以很多老项目被用新框架重构了,很多逻辑被套在新架构了重写了一遍,这种工作不少公司都在干,很多小组长小领袖认为这是应该的,因为这让以后很多事情方便了,因为新框架在代码复用等方面做得更好,未来加入的新兄弟来了之后工作更方便,毕竟我们这个行业流动性大,他只要掌握新框架,加入这个项目就会很快,即插即用。
然后他们似乎忽略了一个问题,几年后甚至没几年,这个框架又落后了,就像被替代的Struts,时下流行的框架也会被替代,然后学新的,一二三四,再来一次,周而复始,循环往复,WhileForDoWhile。
诚如上面那君所言:
“以前那些用框架的项目很多都没人管了,JDBC写SQL的老项目还有人在维护!”
这里我是要说JDBC吗?不是,我是说重点在于“写SQL”几字,还有上面说的 "很多逻辑被套在新架构了重写了一遍"中的“很多逻辑”。
两年前一位工作中的大师哥告诉我“框架都是工具,他们是工具”,我当时嗯嗯嗯哦哦哦了半天,觉得我知道,但真没有当下理解得更多。
“写SQL”,“写逻辑”才是“程序之骨”。
这些东西无关框架,永不过时。SQL 打开笔记本你就能写;逻辑即核心算法,任何语言最普通的操作就可以写。越底层越直接,越封装越抽象,参与者也容易加入这份工作,没有额外的技术栈要求,他不用学更多就能参与开发,寿命也更长,试想在未来,有位读者想来挖你这片矿,他一看这个不是用某个历史框架写的,而是用他知道的底层语言写的,他更愿意看你写的东西。
推进程序发展、扩充业务的根基正在于此,不在于用什么工具,当你用直白的语言完成了一个又一个功能块的开发,最后形成了一个完整的项目时,你就是一个真正的作者。
就像当下一部部小说被动画化漫画化电影化周边化一样,你写的项目一样会被别人用他们熟悉的框架封装重构为产品,那只是一个由“程序之骨”变为“程序之人”的过程。
所以现在你可以想想,你研究的问题到底是“怎么创造程序之骨”,还是”怎么让程序之骨变成程序之人更快”?