{"_id":"@bluemind/knitjs","_rev":"3-398dd2e37f096f0131371b106ef1f46f","name":"@bluemind/knitjs","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bluemind/knitjs","version":"1.0.0","description":"An Javascript library for AOP(Aspect Oriented Programming)","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/bluemind7788/knitjs.git"},"author":"","license":"ISC","bugs":{"url":"https://github.com/bluemind7788/knitjs/issues"},"homepage":"https://github.com/bluemind7788/knitjs#readme","gitHead":"91e270f354eed509e641d8969343f97181270a5d","_id":"@bluemind/knitjs@1.0.0","_shasum":"3cf626c94fe88b142d7f3924d6d2c8fc7c898672","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"bluemind","email":"669380499@qq.com"},"dist":{"shasum":"3cf626c94fe88b142d7f3924d6d2c8fc7c898672","tarball":"https://registry.npmjs.org/@bluemind/knitjs/-/knitjs-1.0.0.tgz","fileCount":7,"unpackedSize":6279,"integrity":"sha512-Z18gJcnbRP4j3oL7YWoNmz5WIPn4cphfFuf6Nd5HsN5EsOviE5lAsx9+i2DaCI8Ip1rDkghp4p+Jhnj9Y2/n2g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH57r5PEUCtxfRR+2Z6utF4OTAoVyAWOD83/UQdGsNsuAiEAtRtnn59Vl7TLEZz/lg9Um34qUQpb7MgQsNo79W3CmTc="}]},"maintainers":[{"name":"bluemind","email":"669380499@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/knitjs_1.0.0_1520333066701_0.6695249921501891"},"_hasShrinkwrap":false}},"time":{"created":"2018-03-06T10:44:26.617Z","1.0.0":"2018-03-06T10:44:26.745Z","modified":"2022-06-12T15:23:26.943Z"},"maintainers":[{"name":"bluemind","email":"669380499@qq.com"}],"description":"An Javascript library for AOP(Aspect Oriented Programming)","homepage":"https://github.com/bluemind7788/knitjs#readme","repository":{"type":"git","url":"git+https://github.com/bluemind7788/knitjs.git"},"bugs":{"url":"https://github.com/bluemind7788/knitjs/issues"},"license":"ISC","readme":"# knitjs\n### Why面向切面编程AOP\n在编写业务代码的时候，我们常常需要加入日志输出、统计数据、性能监控、权限过滤、安全检查等逻辑，这些逻辑不是垂直的业务逻辑，而是公共基础的设施。如果把它们混合写到业务代码中，就违反了单一指责和关注点分离原则，业务增多之后，会存在大量的重复代码。   \n要实现这些公共基础逻辑与业务逻辑的解耦，我们可以用面向切面的编程思想。如果一个程序是一个管道系统,AOP 就是在管道上钻一些孔, 在每个孔中注入新的代码流。实现AOP的关键就是将切面的逻辑嵌入到主体的业务程序之中。\n### AOP的编程模型\n- 接入点（JointPoint。程序执行过程中特定的点，一般是方法调用\n- 增强处理（Advice）。定义针对连接点所做的增强处理，定义了“是什么”（增强处理的内容）以及“何时”（前置、后置、返回、异常、环绕）；\n- 目标对象（Target）。被增强处理的对象\n","readmeFilename":"README.md"}