Code Review Tips

来源:互联网 发布:cnc数控编程入门教程 编辑:程序博客网 时间:2024/06/06 05:30

问题1:Cascade Delete on 1:MLinks

新添加的Link没有设置级联属性,Cascade Delete,会在数据库中产生大量的垃圾数据。
有三种情况,解释如下:
Ø  On M:M links, the “Cascade Delete” property should be set to “None”.The deletion of the association row is automatic and the childis dependent on the “Inter Child Delete” property.
Ø  On 1:M links where the child BC has no other relationships, the“Cascade Delete” property should be set to “Delete”. This will avoid orphanedrecords.
Ø  On 1:M links where the child BC has other relationships, the“Cascade Delete” property should be set to “Clear”. This ensures that the FKon the child BC is cleared.

所以1:M的Links其属性Cascade Delete值不是“Clear”就是“Delete”。

问题2:Force Active属性

在BC一级和BC的Fields上都可以设置,但是一般情况下,这个属性是不需要勾选的,非常消耗性能。

问题3:计算字段

“SUM or COUNT”类似的计算字段及其影响性能,避免使用不必要的计算字段。

需要注意的是在List Applet中字段更是严重消耗性能。

问题4:Sort specifications和Search specifications 属性

BC上的’Sortspecifications‘或者‘Search specifications’建立在没有索引的字段上。
尤其是’Sort specifications‘指定的字段在多个时,字段顺序也要符合字段在索引中的顺序,
这样可以使数据库选择更合适的索引,甚至避免数据库在临时表中进行无谓的物理排序。
一定避免在‘Search Specifications’中使用Join来的字段。 

 问题5:Multi Value Link没有配置正确

在BC的Multi Value Link中没有配置正确的“Use PrimaryJoin” 和 “Primary Id Field

问题6:多个Fieleds对应同一个Table column

BC中多个Fieleds对应同一个table column,这个问题出现的较少。

问题7:Upgrade Ancestor属性没有设置

未设置“Upgrade Ancestor” 属性,复制OOTB的对象,最好都设置此属性。如果涉及
到升级情况,会出现非常多的问题。


问题8:大量的Inactive的对象没有删除掉

If custom object definitions are no longerused, it is better to delete them than to

inactivate them.

问题9:系统字段重复定义

如下系统字段是不需要在BC上重复定义的,可以直接使用

[Id], [Updated], [Updated by], [Created],and [Created by]

问题10:View的 Visibility 属性

View的 Visibility 属性配置错误,View Mode。这样会导致一些数据读取权限问题。

问题11:view的Thread properties属性

Thread properties 没有正确的配置,这样通过“History List”导航浏览时会出现问题。

问题12:对象命名规范和代码书写规范

这个几个规范是比较初级的规范,比如Service 和Workflow的名字,但是我们很多自己定制的对象命名还是很混乱。有必要自己去再看一看文档。
在代码书写上,在一些分支点,多一些判断,比如2条分支时else需要做什么,三条以上分支时是否可考虑用Switch;在Switch中的default语句处理需要怎样做容错处理。

在很多BS或者WF缺少异常处理,不仅仅是拉一条红线的问题,比如在WF中的红线与代码中的throw (e)配合。

问题13:出错时没有把异常写入Log文件

Log文件在后期我们的调试中会是奇兵的作用