快速了解Aop

转载自知乎:

作者:技能树IT修真院
链接:https://www.zhihu.com/question/24863332/answer/478673303
来源:知乎

刚开始看到面向切面编程的时候,就觉得好神奇。

切面?立体几何吗,有没有面向挂面编程?

脑袋里面很难有这种概念,想像不出来什么叫做切面。

这种类似的东西挺多,包括Pipe,Port,Stream之类的。

所以倒底应该怎么样正确理解他们呢?

“想要学会,先要忘记” -by 暗灭大人

先忘记这是什么概念,我们先看看看存在什么问题。

是的,按照修真院一直推荐的【上帝视角】,我们先不管AOP是什么,先关注于要解决的问题是什么。

这要从日志说起。

对于后端而言,解决问题的方法有三种。

1 断点调试。
2 查看日志。
3 重启。

前端用断点比较多,可以不夸张的说,大部分前端都可以通过回放操作的方式来完成系统的调试。

而对于后端的工程师兄弟而言,这个难度就要大很多了。

因为后端是要部署到远程服务器的,在服务器上,往往同时要处理很多很问题。

所以是绝对不能断点调试的,其实有远程断点功能。

在我年少无知的时候,很Happy的试了一下。。。

你们猜发生了什么事情?

所有的请求都被挂起了。

反正我是被吓到了。

在线远程调试?算了,就是测试环境我也不会想,自己的本地环境还是可以考虑一下的。

所以,后端有一个很重要的解决问题的方式,就是查看日志。

怎么查看日志呢?

从收到用户的请求开始,调用了什么方法,数据发生了哪些变化,经历了什么分支,全部写的清清楚楚(在线上的话会做很多简化,毕竟日志是很耗性能的)。

所以每一个后端工程师,在某种程度上去有福尔摩斯的潜质。

要通过蛛丝马迹,呸,日志打那么清楚了还蛛丝马迹,要通过神迹,把事情发生的顺序,一点一点的在脑袋里回放。

image

嗯。月光宝盒!

这就是日志的作用。

但除此之外内,日志还有一个很重要的作用,就是用来记录响应时间。

你们去饭店,一定见过一个沙漏吧?

你可能感兴趣的:(快速了解Aop)