为什么懂得一个个知识点 还是用不好框架?

楔子

很多初学者,包括我在最开始学习web后端框架时 专注于实战,完成开发流程,兴奋的解决一个一个遇到的问题,这样子很容易迷失在细节里。

更好的理解一个框架,需要有一个系统观,也就是我们常说的系统的学习,如果我们想深入理解框架和优化web框架,我们需要对框架的总体架构和关键模块有一个全局认识,然后再深入到具体知识点。

一个web框架应该包含什么

回答这个问题之前,我们先搞清楚另外一个问题,web框架是干什么用的。

我们知道,web开发有前端开发和后端开发,前端对后端发起调用,后端计算出结果返回给前端,前端渲染数据,也就有大家看到的页面。

显然,在这个过程中,后端的作用是计算和返回用户需要的业务结果。那后端具体是要做哪些事情呢,前端通过网络协议栈将参数传递给后端,后端则需要解析数据包参数,拿到数据包参数后,需要数据验证,验证无误后,开始业务逻辑处理,处理完以后,按照和前端约定的结构,组织数据,将结果返回给前端。

简单说就是如下图:

 image.png

每一个步骤具体涉及的知识点如下:

 image.png

也就是说框架只要实现如图中这些功能,框架就能解决基本的计算任务并返回结果,框架附带的功能,比如命令行支持,各种外部工具,各种客户端,格式解析函数等等,只是为了让框架更快速便捷,开箱即用。

  假设下,如果每次开发一个新的项目,我们都要重新造轮子,重写这些组建,那是多么费力费时的事情,从这个角度来说,框架的诞生是为了解决组件复用。

如何学好框架

有了框架之后,我们可以快速开发我们的应用,那是不是就意味着,我们直接使用框架的东西就好,不用考虑那么多了,这样的想法也是不可取的,框架的作用是为了方便,省时省力,但是应用在服务器上跑起来后,是否可用,性能足够好,可以应对业务需求方便扩展,框架是不能保证的,也就是我们常听说的三高问题,高可用,高性能,高可扩展。

如下图是web后端开发知识全景,红色标记为Django web框架实现的部分:

 image.png

图中我们可以看到,框架只是实现了一小部分,项目上线之后能否持续保持一个最佳状态,需要开发人员长时间的实践总结,除了实践之外,分析源码,也是一个很好的方式。

我们将web开发分为两大维度,四大主线,即系统维度,应用维度,将web开发的各个知识点分类,分层,学习框架时,以这种结构化的思考方式,可以帮助我们系统性的掌握框架,也就是说掌握框架的过程是自上而下的,当我们遇到具体问题时,就可以按照这个思路来排查解决问题。

事实上,在学习其他任何系统软件,均可以按照这种学习套路,读者不妨试一试,可能会事半功倍。


猜你喜欢

转载自blog.51cto.com/13176208/2674607