开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 5586|回复: 11

[讨论] 多次重构代码的惨痛经历,业余程序爱好者请进交流

[复制链接]

0

精华

52

贡献

93

赞扬

帖子
90
软币
2314
在线时间
167 小时
注册时间
2013-6-8
QQ
发表于 2014-4-16 11:04:25 | 显示全部楼层 |阅读模式
    一直以来,我试图找到一种通用的、可扩展的操作办法来组织我的程序。至少到目前,我还没有成功。
    首先说一下我的软件组织历程:
    最开始,我采用DevExpress作为软件的皮肤,XPO访问数据库来处理一个小型的办公程序。不出意外,程序能较好的运行。但是,烦恼却来了:单位领导看到这个程序不错,说可以推广一下。可是我使用是盗版的控件,说出去没有底气,不能说是完全自主知识产权,另外,当数据流大了后,我没有做分页处理,没敢答应,只能说做下贡献,不敢推广。
    于是,我开始了又一次的重构。这次,我采用了CSLA.net作为我的数据访问引擎,并设计了一种通用的操作方法:C#的泛型。我花了大约两个月的时间,并使其健壮起来。每一个类(相对于数据库中的一个表),可以直接通过泛型方法来进行增、删、改、查,并结合了CSLA.net优秀的权限管理机能,框架能很好的运行!我太高兴了,准备进行下一步的开发。烦恼又来了:当一个表单需要跨几张表时,我的框架却无能无力!比如我有个项目信息,项目下面有很多的人员,我想在一个类中处理时,框架却不能工作了,他仅对单个数据库表起作用。
    这个打击对我来说非常大,两个月的努力白费了。看来,程序是不可避免的又要重构了。出错的原因是因为要跨几张表的类,较好的处理方法只能通过手工处理SQL来完成。C#的泛型处理增、删、改、查的方式显然不适用于较大型的程序。为了验证这个想法,我下载了大型游戏的服务端源代码进行分析,发现别人都是用SQL拼接的,速度快,且灵活。
    下次,我准备重构时,经过深入思考,我决定还是采用WCF+ CSLA.net配合SQL语句来进行开发,界面采用微软提供的原始控件,这样在版权方面就不会有问题了。这里任然有潜在的问题:CSLA的交互能力很差。
    很不甘心。因为我花了大量时间来熟悉DevExpressTreeList控件,而且又很难找到一个好的类似控件。没有办法,只能再硬着头皮再去学习了。
    经验教训:作为一名业余开发人员,应多注重知识的积累,不要把过多的精力放在第三方控件的收集与学习中,因为这种经验是无法扩展和通用的,另外还要多学习一下设计模式,组织良好的程序框架。

评分

参与人数 5贡献 +3 赞扬 +5 收起 理由
wangcaiok + 1 Thanks
testdl + 1 Thanks
miniprince + 1 感谢分享
yjjone + 1 Thanks
羽叶 + 1 赞一个

查看全部评分

回复

使用道具 举报

0

精华

2

贡献

0

赞扬

帖子
8
软币
74
在线时间
1 小时
注册时间
2014-3-22
发表于 2014-5-8 09:51:41 | 显示全部楼层
谢谢分享,请问你编译过DXPER吗
回复

使用道具 举报

0

精华

1

贡献

0

赞扬

帖子
7
软币
64
在线时间
0 小时
注册时间
2014-5-11
发表于 2014-5-11 18:31:34 | 显示全部楼层
发个帖在真难
回复

使用道具 举报

0

精华

10

贡献

42

赞扬

帖子
39
软币
458
在线时间
46 小时
注册时间
2014-6-18
发表于 2014-6-20 20:02:20 | 显示全部楼层
好经验啊,学习
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
173
软币
1823
在线时间
208 小时
注册时间
2014-4-19
发表于 2014-8-3 21:57:02 | 显示全部楼层
if you want to design the DAL, see more MetaData
or you can try other ORM tools
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
6
软币
91
在线时间
3 小时
注册时间
2014-9-15
发表于 2014-9-17 17:06:38 | 显示全部楼层
发个帖在真难
回复

使用道具 举报

0

精华

61

贡献

25

赞扬

帖子
77
软币
1852
在线时间
105 小时
注册时间
2013-6-8
发表于 2014-11-16 20:19:56 | 显示全部楼层
自学总是要有点过程的
回复

使用道具 举报

0

精华

411

贡献

4140

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
189
软币
9034
在线时间
554 小时
注册时间
2014-11-20
发表于 2014-12-8 12:38:59 | 显示全部楼层
说的有些道理~~~ 但要推广商业项目,花点钱买个正版的也应该的,也算是支持下原创~~
回复

使用道具 举报

0

精华

0

贡献

21

赞扬

帖子
18
软币
264
在线时间
33 小时
注册时间
2014-12-12
发表于 2015-1-16 14:19:53 | 显示全部楼层
哈哈框架大都给懒人用的,把简单的东西复杂话,复杂的东西就傻眼了
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
18
软币
98
在线时间
2 小时
注册时间
2015-7-23
发表于 2015-7-23 17:52:56 | 显示全部楼层
不错不错,赞一个
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
10
软币
71
在线时间
3 小时
注册时间
2015-7-25
发表于 2015-7-25 12:58:41 | 显示全部楼层
业余的惨痛经历……很久不写感觉啥也不会了……
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-5-17 08:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表