引言
在软件开发中,对于编写独立的、基础的、业务无关的人来说,对编写出来的东西是工具和框架,往往会陷入无穷的纠结中。
我也如此,下面将我所理解的 工具、框架 概念/想法和大家交流一下。
什么是工具
在现实生活着,什么是工具?最常见的工具有哪些?
最直观的答案是:螺丝刀、菜刀、洗脸盆、牙刷…..
在代码世界中,什么是工具?最常见的工具又有哪些?
最容易想到的是:String、TextUtils、 MediaPlayer ….
你可能惊讶,现实中的好理解,但代码中的这些是工具?
是的,这些就是对微观世界的工具类。
我们一起来看一下工具的特点。
1、可以解决某些特定问题
2、使用起来方便
3、学习成本低
仔细想想,String、TextUtils 之流是不是这样的?
别把编程想想的特别复杂,实际上,软件世界只是对现实世界的抽象而已!
什么是框架
这个听起来,似乎很高大上啊,实则不然。
在现实生活中,我们在盖房子的时候,是不是经常听见搭框架?
是的,盖房子搭框架,就是把房子的大体轮廓和主要结构用钢筋混凝土之类结实物体的搭建起来,然后在用砖去填剩余的部分,最终把房子盖完。
在软件世界中,实际概念是一致的,
框架就是项目的基础部分,选定了框架后,整个的程序的形态已经基本确定,剩下的工作就是在该框架内实现自己特定的业务逻辑(补砖头)
举个例子,大家就知道了,Struts、Spring ….
我们一起来看一下框架的特点。
1、决定了应用程序的主体形态
2、使用起来复杂(相对于工具)
3、学习成本高(往往需要了解很多知识)
总结
通过上面对工具和框架在概念上的分析后,相信大家对这两个已经有一个全新的认识,
在开发中,通过对用户的使用场景来分析,权衡需要开发 工具 or 框架,以便更好的符合使用者的期望。