受苦受难的同行们,大家齐来分享项目中遇到的“不可理喻”的问题和经历, 好让我们少受折磨。
在项目进行过程中, 大家都会遇到一些问题和积累了一些经验。而这些经验由于太琐碎或者具有“中国特色”, 因此大多不会出现在任何的书籍中,所以我们好好总结一下的话会少走很多弯路, 希望大家不吝赐教, 以求不断进步。 我先开个头。
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. 当你在此处实现了下拉框选择的时候, 意味着你马上要实现多选功能。(“界面要合理嘛!”)