中艺库平台项目一期代码问题分析总结
1. 系统性能问题
系统经常会在打开首页时超长,这在系统在多个查询点也会出现,这是个原因较多的性能问题,目前选择的一个解决方案是:使用Memcached分布式缓存,目前我已经搭建好了Memcached服务器,写DEMO测试运行正常。
2. ACL数据权限问题
最初的技术选择采用EMC做企业内容管理的重点是,以它ACL数据权限完整的解决方案为亮点,放弃了对其他开源项目的选择。但项目一年下来,没有看到任何数据权限实现的影子。这个问题我在去年9月和技术主管提到过,在软考论文中也写过。
3. 批量数据导入代理
批量数据导入项目选择WEBSERVICE实现,在代理子项目中也使用了多线程处理。这个技术选型是不合理的,如果是艺术网或拍卖系统的外部项目服务调用,可以考虑WEBSERVICE,而且批量数据导入是个耗时问题,WEBSERVICE的SOAP对象传输复杂而且又大又慢,如果只是项目内部处理,建议采用JMS异步调用。这个技术选型因为我住院遗憾没有参与。
4. 业务类事务问题
系统大量的业务类事务配置不正确,采用嵌套事务的类较多,查询方法也没有做只读配置。系统大量的DAO中也做了事务配置,必须清除。
5. 图片转换功能封装
图片转换功能封装在image-convert.jar,不知道是否满足两个要求:一是系统变动后它也要做变动,二是能不能放进其他系统中直接使用。当初改用Maven做多地部署实现时,就是因为这个jar包阻碍实现。
6. DCTM引用问题
系统开发引用的DCTM的一系列jar包,如果全部去掉,项目大量代码都有红叉报错。建议在设计模式上进行改进。
7. 文件上传控件
系统的文件上传控件采用FileUploadApplet.jar实现,对于Applet控件的安全性非常令人担忧,这个东西只适合Java初学者学习,系统中建议改用Javascript插件实现。
8. 界面操作友好度
系统在界面操作友好度上不是很好,Javascript前台开发程序员欠缺。同时系统没有采用Strusts默认的JSON插件,如果想改选JSON插件也应该挑选最优秀最快的,却选择了一个很古老的JSON插件。从这个小问题上提出忠告:以后系统需要添加JAR包前一定要开会讨论。
9. Sitemesh配置使用
右键点击系统页面查看源代码,会发现大量js或css文件重复引用2-3次,这样会严重影响系统性能,必须合理配置页面模版。
10. 代码质量检测缺陷
检查结果报告见:http://192.168.61.7:9000/dashboard/index/2。系统现存16893个代码质量缺陷,建议129个二级缺陷全部修复,6,532个三级缺陷部分修复以降低数量。四五级缺陷可以忽略不改。
同事A:
1. 性能:
使用memcached,是通过在内存中缓存数据和对象来减少读取数据库的次数到达减轻数据库负载,一期并不是数据库负载大而导致性能慢,个人还是觉得数据查询的逻辑设计得不太好,错综复杂的交错查询。
代码质量虽然会影响性能,但是也不至于导致性能特别慢,我们使用的客户也是特别少,代码上的性能问题我觉得达到了一个极高的使用数量才能明显的显示出来。
2. 数据权限:
非结构化:虽然将附件存得没了影子,但是导致的问题也是导出变得复杂,使用API导出到目录,然后复制改名,无形中对附件多进行了一步操作。管理好操作系统,我觉得数据就安全了。
结构化:分析数据库一样可以查出结构化数据,管理好数据库就是管理好数据。
3. 批量导入:
这个Webservice并没拿来传数据,只是接到命令,就对本机非结构化数据进行处理。耗时性能,所以才没放入到web中进行处理,算是第三服务器单独来处理,然后通过DCTM的API进行非结构化数据传输,我觉得一期是对这些结构化和非结构化的数据控制没做好。一直是知道一点做一点,后来又改,导致最终补不上来。这就是为什么表都设计成auction名称的原因。批量导入功能希望能当个单独的复杂功能来进行研究。
4. 事务
这里确实如上所讲,后来在代码中也发现了这些问题,也告诉过惠普方,没有进行重视和规范处理。
这个问题是从一开始架构就出现的,如sitemesh也是一样,从最初的用,到后来不用再到后俩用没用都不知道了。
5. 图片转换:没见以前他们写的,但是目前我写了一个,准备给二期使用,可动态配置graphicsmagick和imagemagick来使用。CMYK格式永远是个比较复杂的东西,判断图片是否CMYK比较耗时。
6. DCTM
7. 文件上传控件:js不可行,我们的文件太大太多,个人觉得使用active控件比较好。
8. 界面:前端工程师缺乏,望二期补一个
9. Sitemesh:这里js和css重复用确实存在。
10. 代码质量:要有标准,比如规定所有代码不许有警告等。
同事B:
1.由于人员流动性大(需求方和开发方)中间又没有标准的过程文档(需求规格说明书)及评审环节导致前后不一致,代码反复修 改出现了附件中的问题。
2.缺少设计,缺少的是规范化的业务逻辑设计。把功能模块全部割裂式开发,没有统一设计整体流程在分模块开发。个别设计考虑不到位导致性能等无法满足需 求。
3.使用新技术时调研不足,例如个别需求系统无法实现等(3000个字符长度等,)。
分享到:
相关推荐
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
金融支付:浅析如何用定期资产设计活期产品.docx
Excel模板个人简历文艺清新单页06.docx
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
吹瓶转线清线(清场)记录表.xls
支持win10,win11(21H2及以前版本)系统
Modbus Slave version 9.3.2 Build 2156, modbus 协议从机,非常好用,包括32位与64位
Excel模板个人简历稳重大气单页03.docx
11记录控制程序.doc
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
第一步安装.zip
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
C风险心理承受能力测试20210603.docx
HPLC实验报告.docx
Screenshot_20240517_181056.jpg