受苦受难的同行们,大家齐来分享项目中遇到的“不可理喻”的问题和经历, 好让我们少受折磨。

Hyphoon 2003-07-30 04:25:13
在项目进行过程中, 大家都会遇到一些问题和积累了一些经验。而这些经验由于太琐碎或者具有“中国特色”, 因此大多不会出现在任何的书籍中,所以我们好好总结一下的话会少走很多弯路, 希望大家不吝赐教, 以求不断进步。 我先开个头。

1. 需求、分析和设计阶段
1.1. “数量”是“数”和“量”的组合,设计时就要考虑数值加中文单位的情况,甚至处理单位的转换, 别企望客户能同意你类似“一打”不就是12的说法。(世事无绝对,我就碰见过填“一式两份”的数量, 立马晕倒!)
1.2. “日期”则通常表现为“开始日期”和“结束日期”,而且不是每个地方都要精确到日子的,更别说时间了。(“我能不能输入农历啊?” 某人吐血中 ……)
1.3. 了解清楚客户的系统某模块的使用频率, 当你花了很大心血精心设计好了一个模块后, 才发现这部分客户一年才用一两次!(呕心沥血的感觉就是好!)
1.4. 系统最复杂的部分很可能并不是客户最关心的部分,搞清楚客户关心的部分,把其弄得尽善尽美。(又有人高呼我的努力没人知道了!)
1.5. 在客户没见到具体的系统时,贪婪的本能总是要求什么都有,但真正实现出来时,嫌流程烦的人有的是。(还要替对方着想! 苦命啊!)
1.6. 客户通常只有告诉你正常流程的耐心,但如果你忘了问逆向或者特殊流程的话 ……(“这个系统我们怎能验收呢!”)
1.7. 客户通常觉得电脑是聪明的、智能的、什么动能干的!如果你告诉他事实并非如此,你将 …… (“那我要你这个电脑系统干嘛?!”)
2. 编码(Delphi版)
2.1. 静态字段的Value属性和As×××的最大区别是Value没有转换null的情况。(如果你不加任何判断就用来计算, 你将听到“你的程序几天前还好好的,怎么今天就出错啦, 真是不稳定!”)
2.2. 当前网格成焦点,如果在不失焦点的情况下新增一条记录,但同时又在没有进行任何改动后就让网格失去焦点, 数集将会自动Cancel。(如果有人高呼“我为何有时能添记录, 有时不行的!”你就该注意这问题了。)
2.3. 千万别做出一个标新立异的窗体或功能出来。(否则, 你将听到“请你把所有的模块都变成这样吧,谢谢!” 被同事群殴的感觉真是 ……)
2.4. 当你在此处实现了下拉框选择的时候, 意味着你马上要实现多选功能。(“界面要合理嘛!”)
...全文
59 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
cscer 2003-08-01
  • 打赏
  • 举报
回复
受益匪浅!

努力!奋斗!
Dreamer9 2003-08-01
  • 打赏
  • 举报
回复
我没项目经验,多谢你的提醒
ZyxIp 2003-08-01
  • 打赏
  • 举报
回复
to Hyphoon(间接点球)

任何事情都不是绝对的,用这样的方法做和你的项目有很大关系的,而且很多所谓的灵活都是在系统开发和使用中总结出

来的,也许我们的项目有点特殊吧!我的系统其实从第一个版本(VB)到现在我看都重写了三次了后两个DELPHI版本我都参

加了开发。

刚来公司是因为要将VB的程序用DELPHI重写,那时对业务不熟悉,技术还处在只是想法实现的水平上,于是开发的时候根

本就不理会什么业务,后来对业务了解了,程序也写过一次,自己觉得结构也不合理,没有充分使用OOP的思想,于是就将自己的代码重写了,回过头来再看还是有不合理的地方就又改,就这样改来改去,有时觉的模块这样化分好象是合理的,那样化分也是合理的,到底如何组织才“最合理“? 这样的问题其实是没有答案的,一人一个看法。


对于刚毕业,在开发组只是编码,没有做过项目分析的朋友来说,如果你觉的项目的那个模块设计不合理你自己就可以去重新分析,实现,就相当于一个小的项目分析让你来做一样,将自己实现拿出来让大家分析一下是不是合理,这样可以锻炼自己,对整个项目也是很有好处的。

反正我是如果发现实现或业务上有什么不合理的地方就要改,改的太多就要想想是不是重新全盘重新分析了。

现在我正在将代码全部重写,数据库重新定义了,因为现在对业务很熟悉了,我敢保证业务在变化也只能是数据的表现方式不同。程序结构的设计让它每次的修改影响的范围会控制在最小。

不过并不是所有的项目都能向我们的项目这样有较宽松的时间。在两年来给每个用户都定制一个产品。我们的目标是下一个用户要定制我们只用做少量的修改,而且尽量不用重新编译,这样能减少出错。


当然,你要做改动在别人没有认可的情况下只能是个人行为,不能影响到以计划好的项目进度,违背现有的项目规定,防止被人痛扁了。
l_xiaofeng 2003-08-01
  • 打赏
  • 举报
回复
DWGZ() 和 ZyxIp(绝望中...) 的意见和建议很不错,正是提醒了我们(主要是我哦)。铭记!(其实我很少写全局变量的,一个小系统一般只有一两个全局方法)
smuwcwt 2003-08-01
  • 打赏
  • 举报
回复
深有感触,我也碰到过一些问题,但不知该怎么说才好,等我想出来了再发表出来共享
feng_me 2003-08-01
  • 打赏
  • 举报
回复
客户真能玩死你,妈的!
尤其是日本客户~考!

做一个项目恨不得改八十次。
Hyphoon 2003-08-01
  • 打赏
  • 举报
回复
to ZyxIp(绝望中...):

真佩服你的那份坚持, 能孜孜不倦的改进你的程序。 看来你已经把《重构》的思想都体现到你的代码中了(失败的我还在等那本书的中文版 ^_^)。你说得很有道理, 虽然很认真地看过《设计模式》,平时也整天把它挂在嘴边, 但真正编码想应用相关的模式时, 却变得迷惘和不知所措, 最后还是那样为了应付而应付。 重写自己对了“很久很久”的代码是提高自己的最好办法。
  • 打赏
  • 举报
回复
再来蹭点分。
Hyphoon 2003-07-31
  • 打赏
  • 举报
回复
to ZyxIp(绝望中...) :

果然是高人!谢谢你能无私的分享你的经验! 但这样做起来会增加不少的“当前工作”量吧! 如果你不是项目经理(或其上司)的话, 可能你的伟大杰作还未完成, 就被人痛扁了!

而且有些东西很难在界面上不作出相应的改变的,就拿字段说明,难道我们用中文字段名? 又会被人痛扁了!(你不会告诉我建一个中英文字段对照表的XML文件吧?!)
Hyphoon 2003-07-31
  • 打赏
  • 举报
回复
to DWGZ():
1。但如果“英文高手”们帮你起了些不伦不类的名字, 你会欲哭无泪!
2。那就要求那个人为每个变量写中文注释! 或者改正!
3。装个CodeFormater之类的东西, 可以帮上一点忙!
4。我以前都是啊!(该打!)现在发誓不写全局变量、全局方法。

to blueshrimp(下着沙-软件民工) :
做ASP就很少变态需求吗? (我是不是该学好ASP.Net呢? )

to jingpingyi(jingpingyi) :
要他帮你买手写输入板!(可以为公司拉生意哦!)

to bluemeteor(挂月||╭∩╮(︶_︶)╭∩╮) :
先让他送你正版的Word 、Excel、刻录机!你也不能用盗版帮尊重版权的人写程序嘛!





fangzhouyu 2003-07-31
  • 打赏
  • 举报
回复
接分
火猴 2003-07-31
  • 打赏
  • 举报
回复
苦命的人民一起努力啊
bluemeteor 2003-07-31
  • 打赏
  • 举报
回复
影响最深的是:

某次与客户进行需求讨论,客户曾经提出一个让我铭记终生的需求

XXXX财务报表要求可以按EXCEL/WORD/TXT等类型导出,可以自定义压缩比例
faint的是:

可以选择存到 "本地硬盘/网络/3.5"盘/CDwrROM"
开始我没留意最后一个选项,后来问客户的时候客户说

“我们刚买了可写ROM,你可以把数据直接写到光盘里”

我靠,我说你用nero不是一样么?

客户白眼一翻“我们不用盗版的东西,那个不就是物理copy么....”
stargazer 2003-07-31
  • 打赏
  • 举报
回复
深有感触。
ZyxIp 2003-07-30
  • 打赏
  • 举报
回复
用户大多数都不知自己想要什么,都是想到那就说到那,让我们去忙忽。

所以我将各个功能模块都尽量设计成独立的,很多逻辑都写在配制文件中。XML文件是做为配置文件的最好格式比INI,注册表,表,自定义文件都好用。

用户的业务对与我们来说只不是些数据流向的不同。但数据的处理方法一般都是确定的方法公式。

我反正不在程序中写一句SQL语句,就用存储过程。汇总计算都用存储过程完成。

报表(我们用CELL华表)也是通过配置文件来填充,现在的报表只要做好模板写配置文件就可以了,用户要改报表加报表最少也不用重新编译程序。


程序设计时我们都认为用户都只是初学计算机者.




ZyxIp 2003-07-30
  • 打赏
  • 举报
回复
不用哭,找出是谁写的代码,海扁一顿,让他滚蛋。
DWGZ 2003-07-30
  • 打赏
  • 举报
回复
我碰到以下情况我就想哭

1。窗体上的控件命名没意义: Button1, Butto2, Edit1, Edit2, 我哭
2。变量命名不区分大小写从字面上看不出任何意义, 我哭
3。代码编排不规范, Tab大小不一致, 左一段右一段, 注释的代码一大堆(不知还有没用, 多个修改的结果大致如此), 我哭
4。单元间交叉串联,全局变量左一个右一个, 我哭
我快哭死了, Save me!!!!!!!!!!
things 2003-07-30
  • 打赏
  • 举报
回复
回复人: jingpingyi(jingpingyi) ( ) 信誉:100 2003-07-30 17:25:00 得分:0


如果使用的人不会打字,连拼音也不会,甚至不知道单击鼠标,..... 玩死你。



=====================================
呵呵,有过这个经历,我都不知道该怎么办了,当了一段培训老师
blueshrimp 2003-07-30
  • 打赏
  • 举报
回复
我的感受跟楼主差不多了,那次我都提出了辞职。真对不起经理,其实不是他的错。后来把问题简单化了,我且活了下来


还好,现在做的是ASP,嘻嘻
jingpingyi 2003-07-30
  • 打赏
  • 举报
回复
如果使用的人不会打字,连拼音也不会,甚至不知道单击鼠标,..... 玩死你。
加载更多回复(8)

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧