中艺库平台项目一期代码问题分析总结
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个字符长度等,)。
分享到:
相关推荐
初步规划了从素材收集到最终上传的完整制作流程,并制定了专题计划,如《中国景德镇陶瓷企业100佳APP陶艺库》和《中国景德镇当代陶瓷艺术家500人》。 四、项目考核与业务拓展 该项目将作为独立部门进行考核,实行...
总的来说,ADS使用台积电0.13um CMOS工艺包为射频集成电路设计提供了精确、高效的设计环境,使得设计者能在设计初期就能对复杂电路进行深入分析和优化,降低了设计风险,提高了成功率。随着技术的不断发展,这样的...
这三款软件各有优势,RobotArt以其丰富的功能和对中国市场良好的适应性脱颖而出,RobotMaster则以其精确的仿真和广泛的机器人品牌支持而受到青睐,RobotWorks则凭借与Solidworks的紧密集成和高度定制化工艺库赢得了...
基于springboot大学生就业信息管理系统源码数据库文档.zip
基于java的驾校收支管理可视化平台的开题报告
时间序列 原木 间隔5秒钟 20241120
毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip
基于springboot课件通中小学教学课件共享平台源码数据库文档.zip
基于java的网上购物商城的开题报告
Delphi人脸检测与识别Demo1fdef-main.zip
基于java的咖啡在线销售系统的开题报告
基于java的自助医疗服务系统的开题报告.docx
内容概要:本文档全面介绍了Visual Basic(VB)编程语言的基础知识和高级应用。首先概述了VB的基本特性和开发环境,随后详细讲述了VB的数据类型、变量、运算符、控制结构、数组、过程与函数、变量作用域等内容。接着介绍了窗体设计、控件使用、菜单与工具栏的设计,文件操作、数据库访问等关键知识点。最后讨论了VB的学习方法、发展历史及其在桌面应用、Web应用、数据库应用、游戏开发和自动化脚本编写等领域的广泛应用前景。 适合人群:初学者和中级程序员,尤其是希望快速掌握Windows桌面应用开发的人群。 使用场景及目标:①掌握VB的基础语法和开发环境;②学会使用VB创建复杂的用户界面和功能完整的应用程序;③理解数据库操作、文件管理和网络编程等高级主题。 其他说明:Visual Basic是一种简单易学且功能强大的编程语言,尤其适合用于开发Windows桌面应用。文中不仅覆盖了基础知识,还包括了大量的实用案例和技术细节,帮助读者快速提升编程技能。
基于java的疫情期间高校防控系统开题报告.docx
基于springboot+vue社区老年人帮扶系统源码数据库文档.zip
基于java的超市商品管理系统的开题报告.docx
基于SpringBoot房屋买卖平台源码数据库文档.zip
xdu限通院23微处理器系统与应用大作业(两只老虎),适应于汇编语言keil软件,
<项目介绍> - 新闻类网站系统,基于SSM(Spring、Spring MVC、MyBatis)+MySQL开发,高分成品毕业设计,附带往届论文 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
基于java的学生网上请假系统的开题报告.docx