LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

开发中的常见问题

admin
2010年8月13日 18:24 本文热度 4417
一.不定义常量(constant),代码中随意使用数字,并且不加任何注释
症状和例子:
判断"chipType == 2" - 2是什么意思?为什么不定义一个常数 "REALMONEY = 2",然后使用这个常数?
恶劣后果:
旁人不知道该数字什么含义,时间一长包括自己在内都不知道其准确含义。代码重构不可能(无法替换某个常数所有的出现之处、无法稳妥改动数值)
正确做法:
代码中任何常数都必须被定义。不要随手使用数字

二.代码对一些仅用于标识事物种类的数值敏感(not agnostic to number value that represents type information)
症状和例子:
随意指定一些值,以标识一些事物的不同种类。目前常常用来作为客户端与服务器端的协议,各端往往需要对数值的含义作出分析,然后执行相应的动作。此外数值的指定非常随意,无规律、无准则
恶劣后果:
代码完全没有robustness,一个数值的改变即可导致程序出错
正确做法:
对于代表种类信息的数值、或者是代表个体的数值,或者称之为"标识型"数值,程序应该尽量做到对具体数值不敏感。如果数值影响算法,那么应该明确数值生成的规则,有一定规律,而不是两个开发人员私下协议"我给你个1你就应该做什么"(如果需要这样的话,证明是协议需要设计)

三.不使用枚举类型
症状和例子:
用一堆整数来代表一些事物的类别
恶劣后果:
因为不能做到type safe,很容易错误使用而不被检测。如果写代码时cut and paste一些类似的赋值语句,则很容易把完全风马牛不相及的值赋予给变量。此外一堆整数虽然都是为了标识一类物体的不同种,但这种关联无法贯彻。此外定义一堆水果种类与定义一系列交通工具,彼此无本质区别,代码编译时都是整数
正确做法:
在Java中,应该使用Enum枚举类型。在Actionscript中,没有Enum的情况下,可以定义一个类,然后用这个类的实体(instance)作为标识,如:

* 定义一个叫Fruit的类
* 构建多个Fruit实体,分别赋予多个全局变量(global、static),每个变量名为某种水果如: APPLE、ORANGE
* 把上述对象当作常数使用

四.不支持国际化
症状和例子:
在代码中写死文字信息,比如简体中文
恶劣后果:
网站和客户端都需要i18n支持,一旦代码中到处都是写死的文字信息,非常难改变过来
正确做法:
现代IDE中对国际化、ResourceBundle等的支持已经非常好,需要做的事情就是学会使用

五.所有条件判别代码挤在一个庞大的函数中
症状和例子:
所以if...then或者switch...case语句,把所有情况判断后的处理代码塞在一个地方
恶劣后果:
首先,这种做法让代码阅读、检查不舒服,太长太不好理解;其次,也是最主要的缺陷:完全没有可扩展性。每次多一中情况的发生,就必须去改这个庞大的函数。虽然说改动也许可以只局限于一个函数,但实际上这个函数所在的类(文件)已经被修改,所以严格来说这个类及其一切相关代码都需要被重新测试
正确做法:
使用Command pattern;或者最简单是把对应某个条件的处理代码抽离到独立的类,把这个类更进一步抽象出通用接口。这样每次有新的条件需要处理,我们可以增添新的处理逻辑到新的类里面,然后把这个类通过polymorphism传递给中央处理程序

六.参数写死在代码中
症状和例子:
最常见的问题是把URL写死在代码中,基于当前有限的理解,对系统和商业领域作了很多假设
恶劣后果:
导致代码的兼容性极差,完全没有portability。系统从一个环境挪到另一个环境,问题就会不断出现
正确做法:
细心、不怕麻烦、抽象出可配置的参数,设计时考虑部署和运营的方便

该文章在 2010/8/13 18:24:44 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved