社区
分析与设计
帖子详情
请教业务功能扩展带来的软件修改维护问题.
dd_zhouqian
2019-10-25 10:48:26
请教个问题,项目已经发布了,客户在使用一段时间(1年)后,需要在原基础上进行业务功能的扩展(这里数据库的业务表中需要增加表字段),
并且客户亦需要保留历史业务数据的查询与统计,基于业务功能的扩展,我现在的项目需要修改数据库访问模块中的代码、界面显示模块中的代码、数据查询模块中的代码、数据统计模块中的代码等。
这样代码修改量好大,有没有好的设计方法?
各位一般如何处理这样的业务功能修改?
是否用框架设计的软件在进行该类型功能扩展修改时会很容易?
...全文
7271
11
打赏
收藏
请教业务功能扩展带来的软件修改维护问题.
请教个问题,项目已经发布了,客户在使用一段时间(1年)后,需要在原基础上进行业务功能的扩展(这里数据库的业务表中需要增加表字段), 并且客户亦需要保留历史业务数据的查询与统计,基于业务功能的扩展,我现在的项目需要修改数据库访问模块中的代码、界面显示模块中的代码、数据查询模块中的代码、数据统计模块中的代码等。 这样代码修改量好大,有没有好的设计方法? 各位一般如何处理这样的业务功能修改? 是否用框架设计的软件在进行该类型功能扩展修改时会很容易?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
左牵黄,右擎仓
2020-09-16
打赏
举报
回复
客户亦需要保留历史业务数据的查询与统计,代码修改量好大,有没有好的设计方法? 开闭原则,对扩展是开放的,对修改是封闭的。 依赖反转原则,应该在代码中多使用抽象接口,尽量避免使用多变的具体实现类。
我不懂电脑
2020-07-30
打赏
举报
回复
基本原则就是不修改老代码,可以用继承的方式增加新类处理
牧歌ing
2020-05-07
打赏
举报
回复
首先代码肯定会改的,越复杂的项目修改的地方越多,选择框架有用那是肯定的,但对于大型项目来说,用处不大,因为这框架也是人提出设计出来的,对于大项目来说都有自己的框架,这套框架是基于自己项目的业务逻辑来的。
outby
2020-02-02
打赏
举报
回复
代码量大?客户给你多长时间?给你多少钱?比如:给你一年时间,100万,一个人的工作量,这样代码量大吗?程序员要先讲钱,并且付出要和钱成正比,要让自己感觉爽才有动力做事情。 将客户的数据库复制过来,然后在原来的数据库升级,每一次对数据库更改或者增加什么删除什么,用东东记录下来,然后程序升级完了,再拿你记录的东东再更改客户的数据库,数据库改完了,然后再升级程序。
以专业开发人员为伍
2020-02-01
打赏
举报
回复
“尽量不动原先的表结构和代码”说实在的,这对程序员来说也许算是比较高级的东西,对用户和战略投资人来说则是粪土!程序员不能永远活在自己的孤芳自赏的象牙塔中,而是要跟自己所服务的组织保持平衡。而这种平衡就是用需求文档和工作日志的具体化、可操作化、精炼无废话、可以作为法律纠纷的证据来保证的。程序员又一大优势,未来社会几乎99%的行业的人都会失业,但是程序员的需求越来越多,这就是程序员的优势。所以程序员要学会把需求写成测试代码,学会测试驱动开发,不要永远只做最低级的拼凑“别人拿来的代码”的小工。
以专业开发人员为伍
2020-02-01
打赏
举报
回复
选择框架类库有一点作用,但是通常是比较初级的程序员才主要依靠的作用,一旦项目复杂、有创造性、比较多自己的核心技术,那么这条路其实也就不是什么主要的选择不大了。
回到编程本质,编程目的不是为了发布,编程的目地是为了通过测试。而测试的目的才是发布。发布以及培训的目地才是让用户良好地使用。那么当你感觉“工作量好大”的时候,往往是因为你没有一套长期积累的自动化测试机制,无法保证产品质量。
编写软件最基本的专业特征,初级的就要写大量的断言,高级的就是要写几百个甚至上千个自动测试。每当程序代码修改了,就要跑一下自动测试,每天重复、随机、并发地测试几万次,才敢提交发布。这样即使突发重大的事件需要修改代码中突发的几百个甚至上千个bug,也会非常从容。你看一个程序员此时是否有勇气,就知道是业余的还是职业的了。
ying1234
2019-12-24
打赏
举报
回复
我做过一个项目,用户连基本的功能都反复变来变去,他们自已都没定好,说好了一定不变的底层的业务规则,还是要改回原来的,你能怎么办?
ying1234
2019-12-24
打赏
举报
回复
项目开启之前没有和客户沟通好,这是扯淡的,没法完全沟通好,客户做一期项目的时候估计都不知道要有二期,1年后他们才想起来要做新的功能,怎么可能提前沟通好?现在能做的就是尽量不动原先的表结构和代码,按你说的,这新功能不是对原有功能的修改,而是新的功能,那就尽量不要动原来的表结构,建新表,代码尽量用新增类,而不是改原有的类。
HerryDong
2019-12-23
打赏
举报
回复
数据库表要增加字段,那么界面显示肯定要改了(比如多个按钮、文本框),界面显示的修改肯定也得牵连到后台代码(比如原先只需要根据姓名进行模糊查询,现在多加了一个时间字段,需要根据姓名和日期进行模糊查询),所以数据库表的结构修改有时候是牵一发动全身,只能一处处改
advance_coder
2019-11-09
打赏
举报
回复
单独开发一个历史数据查询系统。 当前系统继续维护开发。 需要考虑新数据跟历史数据是否需要一起统计。 你这种多半是项目开启之前跟客户没对接好,所以要常与用户沟通,先把需求设计尽量做足做好。 没其他的好办法,大家对你具体业务也不了解。
dd_zhouqian
2019-10-25
打赏
举报
回复
自己先冒个泡
ShopXO二次开发指南:不
修改
核心代码实现
业务
功能
扩展
在电商系统开发过程中,
业务
需求的频繁变更往往导致核心代码的反复
修改
,这不仅增加了系统
维护
难度,还可能引发兼容性
问题
。ShopXO开源商城(纵之格)基于ThinkPHP8框架研发,提供了完善的插件化
扩展
机制,允许开发者在不
修改
系统核心代码的前提下实现
业务
功能
的灵活
扩展
。本文将详细介绍如何利用ShopXO的插件系统进行二次开发,包括插件结构设计、核心API调用、事件钩子使用以及实际开发案例。 ## ...
软件
解耦与
扩展
:插件式开发方式(基于 C++ 与 C# 的实现)
文章摘要:插件式开发是一种将应用程序拆分为核心框架和独立插件模块的架构模式,通过接口契约实现高度解耦和动态
扩展
。本文探讨了插件式开发的优势(解耦、
扩展
性、可
维护
性)及核心架构(宿主程序、插件契约、插件实现),并分别展示了C#(利用反射机制)和C++的实现方法。该模式适用于需要灵活
扩展
的系统,如日志系统、游戏服务器等,支持独立开发、热插拔和技术栈混合使用。
Qt外场
软件
崩溃
问题
解决记录
软件
崩溃的
问题
很容易把开发人员搞崩溃,一是解决起来很困难,二是不解决是肯定不行的,三是不尽快解决也不行呀。解决崩溃
问题
的关键,一是要有搜集
软件
运行信息的手段,二是要和现场的人员及其他相关方多多沟通,发现一些有用的线索。在广泛搜集信息的基础上,做合理假设和有效验证,就可以搞定啦。
开闭原则 -- 不
修改
原有代码,进行
扩展
开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。开闭原则由Bertrand Meyer于1988年提出,其定义如下: 开闭原则(Open-Closed Principle, OCP):一个
软件
实体应当对
扩展
开放,对
修改
关闭。即
软件
实体应尽量在不
修改
原有代码的情况下进行
扩展
。 在开闭原则的定义中,
软件
实体可以指一个软
AI技术对
软件
开发
带来
的发展
展望未来,AI 在
软件
开发中的应用将更加深入和广泛。随着技术的不断进步,AI 可能会实现更自动化的
软件
设计,从需求分析到代码生成再到部署的全流程自动化成为可能。同时,AI 将更好地与其他新兴技术(如区块链、物联网等)融合,开发出具有更强大
功能
和更高可靠性的
软件
系统,为企业和用户创造更大的价值,但也需要不断应对新出现的挑战,确保 AI 驱动的
软件
开发健康、可持续发展。
分析与设计
13,189
社区成员
5,759
社区内容
发帖
与我相关
我的任务
分析与设计
.NET技术 分析与设计
复制链接
扫一扫
分享
社区描述
.NET技术 分析与设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章