Release Notes

2018/10/24

说明

本次改动较大,难免会有所遗漏与不足。大家遇到问题请及时反馈,我将尽快完善并更新,谢谢~

命名空间

DFC_BIM

原命名空间 DFC_BIM,现修改为 DFC,同时保持长久兼容。(因为影响太大)

DFC_BIM::SYSTEM

原命名空间 DFC_BIM::SYSTEM,现已废弃,会保持一定时间的兼容。

DFC_BIM::DFC_Floor

原命名空间 DFC_BIM::DFC_Floor,现修改为 DFC::FloorInfo,同时保持长久兼容。(因为影响太大)

DFC::Common::CurrentFloor::SetCurrentLocation

原命名空间 DFC::Common::CurrentFloor::SetCurrentLocation移除
相关方法移动到 DFC::Common::CurrentFloor,同时保持长久兼容。(因为影响太大)

DFC::Common::Lib_M::DFC_Lib

原命名空间 DFC::Common::Lib_M::DFC_Lib移除
相关方法移动到 DFC::Common::Lib未做兼容。(因为影响太大)
去除常量 MAT_LIBPRODUCT_LIB

DFC::Common::Material::SU_MaterialManage

原命名空间 DFC::Common::Material::SU_MaterialManage移除
相关方法移动到 DFC::Common::Material,同时保持长久兼容。(因为影响太大)

失效接口

原抽象类 DFC_BIM::ModuleInterface 接口已废弃,利用 ruby 鸭子类型解决。

DFC_BIM.module_interface 接口已废弃,现为 DFC::ModuleInterface

module_interface

需全局修改的代码

defined? 的问题

曾经为了防止文件重载时常量被重写,而引入了 defined?

但后来已被证实会带来难以排查的 bug,所以请大家移除。

还有,PathHelper 已经修改为 PathHandler,请查看文档。

如实在需要防常量重载,请使用 const_defined?

defined

命名风格

类、模块

帕斯卡(Pascal)命名法(大驼峰命名法)

方法

下划线命名法

常量

大写字母用下划线分割

总结

修改内容

  1. 尽量把 DFC_BIM 修改为 DFC(保持长期兼容,所以不着急)

  2. DFC_UI 修改为 DFCUI(短期兼容,暂时是 1 个月)

  3. DFC_BIM::SYSTEM 这个命名空间已废弃,所有命令的更换详看开发文档(短期兼容,暂时是 1 个月)

  4. DFC_BIM::PATH 修改为 DFC::Path

  5. DFC_BIM::SYSTEM::DFC_PathHelper 修改为 DFC::PathHandler(因为移动了 PathHelper 的位置,导致如果不改名会造成大面积冲突)

  6. 移除 if not defined?(PathHelper)

  7. 抽象类 DFC_BIM::ModuleInterface 已废弃,采用 ruby 鸭子类型处理

  8. DFC_BIM.module_interface 接口已废弃,现为 DFC::ModuleInterface

  9. DFC::PathDFC::PathHandlergetUserDataPath 修改为 get_user_data_pathgetPath 修改为 get_path

  10. DFC::SYSTEM::DFC_Observer::DFC_Observable 修改为 DFC::Observable

  11. 楼层设置观察员添加方法由 LB_InitiFile::InitiFileDlg.add_observer 修改为 DFC::FloorParams.add_observer

  12. 楼层设置观察员抽象类由 DFC::SYSTEM::DFC_Observer::DFC_FloorInitializeObserver 修改为 DFC::FloorParamsObserver

  13. 当前位置观察员添加方法由CurrentFloor::SetCurrentLocation.add_observer 修改为 DFC::CurrentPosition.add_observer

  14. 当前位置观察员抽象类由 DFC::SYSTEM::DFC_Observer::DFC_CurrentAreaObserver 修改为 DFC::CurrentPositionObserver

一点小建议

  • 基本上所有的方法都保持兼容旧方法,如果启动 DFC 的时候没有报错,那么基本没问题,可以慢慢改过来。

  • 善用佳软,可以通过文件内容寻找,批量文件替换等工具快速处理,比如:RubyMine、FileLocator 等