千万不要在module里扩展较多逻辑,很容易引起项目异常。
NOP项目
为保持紧跟NOP更新,项目组坚持不改NOP源码。
以触发器,插件化开发为拓展模式
NOP自定义好的接口或完全独立的新拓展功能很容易插件化。
但部分功能要在NOP原项目上扩展修改在不改源码的要求下非常不易。
能改原码也就10分钟的事,但因为死守不改源码的规定,逻辑要更绕,更费精力,工作量更大,并且有很多风险。
为了扩展将部分逻辑写在Module里,Module严重影响性能。
功能开发前,个人的建议,是直接改某处,写日志,后期有更新再按日志改就可以,这种修改的量不会太大。
项目组不接受,因此提出可以改全局module来扩展。
之后爽歪歪,各种绕,起初只写一小部分逻辑,后期不断的添加。
今日报错。
因采用IIS全局模式。
module内有选择或cookie或session的操作一部
JS,CSS静态页面,api,也经过module,但此两类访问,无cookie session。
初版忘记加静态页验证,导致访问静态页时,因null异常,静太文件无法加载,导致页面样式和效果全丢失。
api更是诡异,api也曾因session报错,其本身无session属性,但古怪之处在于,如果以一个普通的账号登陆。再经module调用api,那么session是有值的。
当然,此session与api无关,除了由同一台终端访问。
api的session原本为空,不可调用
但若在同一终端以账号登陆,则session有值,且=此用户的session
现是全局正则检测是否为静态文件(损性能,且可能会有遗漏不说)
并验证是否有session。
JS和静态页面经Module的问题,后期可以配置nginx静态缓存来避免访问web服务(也就在走module前直接从nginx拿到)
插件开发,只需对自已的插件负责,即使错,也只是在小范围。
搞Module开发,一个未考虑到的小错就会出现大量错误,以致网站崩溃,费力且严重不讨好。
PS,公司项目新上,但尚无独立的测试环境。
千万不要在module里扩展较多逻辑,很容易引起项目异常。的更多相关文章
- 利用Visual Studio 2017的扩展开发(VSIX、ItemTemplate) 快速实现项目的半自动化搭建
目录 0.引言 1.什么是Visual Studio项目模板 2.IWizad接口 3.通过Visual Studio扩展开发实现领域驱动开发 3.1 使用VSIX+ProjectTemplate创建 ...
- (转)硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍
场景:最近在学习Linux的基础知识,不可避免的设计到Linux的磁盘分区,以前做过总结,但是那种总结就是复制别人的文章,总结完就不想看第二遍,所以很容易就遗忘了!清楚明白的理解分区后,我就可以在自己 ...
- Linux主分区,扩展分区,逻辑分区的联系和区别
主分区,也称为主磁盘分区,和扩展分区.逻辑分区一样,是一种分区类型.主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑磁盘(在这一点上主分区和逻辑分区很相似,但主分区是直接在硬盘上划分的 ...
- [转]硬盘的那些事(主分区、扩展分区、逻辑分区、活动分区、系统分区、启动分区、引导扇区、MBR等)
http://xu3stones.blog.163.com/blog/static/205957136201210309424303 主分区,扩展分区,逻辑分区,活动分区,系统分区,启动分区..... ...
- Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)
这篇博客 是在Scala IDEA for Eclipse里手动创建scala代码编写环境. Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) ...
- 控制面板里找不到“应用程序server”这个项目,Windows XP中金蝶安装时无“应用程序server”的解决的方法
要注意先安装IIS,再安装VS2008. 我们会常常在控制面板里找不到"应用程序server"这个项目.我们须要依照以下的步骤来操作就会Ok. 1.下载IIS6,放置到D盘根文件夹 ...
- angularJS module里的'服务'
首先,为了举栗子,先写好如下的模型,控制器,html: html: <!DOCTYPE html> <html ng-app="serviceApp"> & ...
- angular学习笔记(十五)-module里的'服务'
本篇介绍angular中的模块:module 在笔记(二)http://www.cnblogs.com/liulangmao/p/3711047.html里已经讲到过模块,这篇主要讲模块的 '服务' ...
- Python如何在子类里扩展父类的property?
<python cookbook>8.8节讨论子类扩展property时,一开始都晕了,思考了半天才勉强弄懂一点,赶快记下来.废话不多说,先上代码: class Person: def _ ...
随机推荐
- mybatis框架快速入门
通过快速入门示例,我们发现使用mybatis 是非常容易的一件事情,因为只需要编写 Dao 接口并且按照 mybatis要求编写两个配置文件,就可以实现功能.远比我们之前的jdbc方便多了.(我们使用 ...
- kindle关闭自动同步
登录网页,在我的“管理我的内容和设备”里,关闭自动同步设置
- TF分布式问题
碰到一个没解决的问题. 用tensorflow 分布式异步更新模式训练模型, 模型中带正则项, 每个batch的损失函数为 \[\lambda \|W\|_1 + \frac 1 {N_j} \sum ...
- 3.redis认证
redis认证方法 1.redis.conf requirepass PASSWORD 2.redis-cli auth PASSWORD redis清空数据库 flushdb //清空当前数据库 f ...
- java 中static关键字注意事项
1.内存中存放的位置:(static修饰的方法和属性保存在方法区中,但是方法区也是堆的一部分) 内存的分区 2.什么样的属性可以定义为静态数据 例如: class person{ public Str ...
- java使用ZipOutputStream批量压缩文件,并将文件分别放置不同文件夹压缩
package cn.cnnho.backstage.controller;import java.util.ArrayList; import java.util.List; import java ...
- 人工智能必备之Python3.8.1-安装
1_下载Python 2_下载Python 3_下载Python 4_下载Python-选这里下载:Windows x86-64 executable installer 5_安装Python 6.自 ...
- goweb-处理静态资源
处理静态文件 对于 HTML 页面中的 css 以及 js 等静态文件,需要使用使用 net/http 包下的以下 方法来处理 1) StripPrefix 函数 2) FileServer 函数 3 ...
- JSP中request对象常用方法汇总
setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name):返回由name指定的属性值 getAt ...
- μC/OS-II中使用软件定时器
在试着将μC/OS-II移植到ARM7芯片(LPC2138)上的过程中,发现使用OSTmrCreate创建的OSTmr始终都不能执行CallbackFunction,OS版本是v2.85,最后是这么解 ...